首先,我甚至不是OpenCL的新手 - 我知道它是什么,但我没有写一行代码。但是,我在一个非常简单的开源项目中查看了一些OpenCL,并且理解代码的结构似乎非常简单,因为它非常像C,我是C / Obj-C开发人员。
上述开源项目存在一个问题。它希望在具有完全GPU优先级的OS X机器上运行。这意味着当我运行应用程序时,我的Mac仍然可以运行,但处于非常恶化的状态。
有没有什么方法可以轻松修改应用程序并设置一些标志来降低应用程序的GPU优先级?
我可能不知道OpenCL API,但是如果有一个简单的函数调用或者我可以放在应用程序初始化函数中,我可以自己解决这个问题。
答案 0 :(得分:1)
调用clEnqueueNDRangeKernel可能是该应用程序中用于在GPU设备上启动OpenCL内核的调用。您可以尝试调整传递给此方法的work_dim,global_work_size和local_work_size的值,并查看响应性是否有所改进。请注意,如果编写它的人指定或假设这些大小,则内核可能会停止运行。在这种情况下,您需要编辑内核才能实现这一点。
您可以使用OpenGL extension viewer检查每个参数的允许值范围,以便进行硬件设置。