11

我对 NVidia+OpenCL 的独占计算模式有疑问。

我可以在 nvidia-gpu 上使用 nvidia-smi 设置独占计算模式(cuda 编程指南 3.0 的第 74 页)。这意味着,只有一个程序可以在 gpu 上进行计算。

cuda 运行时比应用程序自动调度。

但是在这种情况下我对 opencl-programs 有一个问题:如果一个应用程序在设置了独占计算模式的 gpu 上运行,而第二个 opencl-program 调用clGetDeviceInfo(..., CL_DEVICE_AVAILABLE, ...)使用相同的 GPU 是result == CL_TRUE. 之后,如果 opencl-app 尝试在此设备上创建上下文,则正在运行的应用程序(两者)都会崩溃。

如何使用 OpenCL 找到可用的 GPU?

谢谢。

4

2 回答 2

1

clGetDeviceIds 返回设备数量及其设备 ID。然后您可以检查每个设备是否可用。我不确定它是否会解决崩溃。

于 2010-06-07T06:38:20.650 回答
0

我有一个类似的问题,我想在列表中找到最好的 OpenCL 设备。我找不到解决方案,所以我自己写了一个。它将尝试在设备上创建上下文。如果不能,它将尝试下一个。

它还支持多个 OpenCL 平台。您可以在 nvidia (gpu only)、amd (gpu & cpu)、intel (cpu) 和 apple (gpu & cpu) 之间进行选择。

你可以在 github 上找到它:https ://github.com/nbigaouette/oclutils/

不过,我仍在寻找更好的锁定机制。

于 2011-07-26T00:55:51.967 回答