【问题标题】:Limitations of work-item load in GPU? CUDA/OpenCLGPU中工作项负载的限制? CUDA/OpenCL
【发布时间】:2012-09-04 16:25:10
【问题描述】:

我有一个计算密集型图像算法,对于每个像素,需要读取许多远处的像素。距离取决于编译时定义的常数。我的 OpenCL 算法表现良好,但在某个最大距离处 - 导致更重的 for 循环 - 驱动程序似乎退出了。屏幕变黑几秒钟,然后命令队列永远不会完成。一条气球消息表明司机很不高兴:

“显示驱动程序 AMD 驱动程序停止响应并已成功恢复。”

(在 OpenCL 1.1 上使用 AMD FirePro V4900 (FireGL V) Graphics Adapter 运行它。)

  1. 为什么会出现这种情况?
  2. 是否可以事先告诉司机一切正常?

【问题讨论】:

    标签: cuda opencl gpu gpgpu


    【解决方案1】:

    这是 Windows 下的一个已知“功能”(不确定 Linux) - 如果视频驱动程序停止响应,操作系统将重置它。除此之外,由于 OpenCL(和 CUDA)是由驱动程序实现的,因此耗时过长的内核看起来就像一个冻结的驱动程序。有一个看门狗计时器可以跟踪这一点(我相信是 5 秒)。

    您的选择是:

    1. 您需要确保您的内核不会太耗时(最好)。
    2. 您可以关闭看门狗定时器:Timeout Detection and Recovery of GPUs
    3. 您可以在未连接到显示器的 GPU 上运行内核。

    我建议你选择 1。

    【讨论】:

    • 谢谢! TDR 确实是问题所在。现在我会坚持#2,但#3很有吸引力。我想在没有连接显示器的情况下,GPU 甚至可以运行得更快一些。
    猜你喜欢
    • 2012-01-26
    • 2013-05-02
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 2022-12-07
    • 2013-04-07
    相关资源
    最近更新 更多