当我在控制台登录时,我的OpenCL程序可以找到GPU设备,但是当我使用ssh远程登录时,无法找到GPU设备。此外,如果我在ssh会话中以root身份运行程序,程序可以找到GPU。如何在Mac上远程登录时在GPU上测试OpenCL?
该电脑是一款带有GeForce 9400 GPU的Snow Leopard Mac。
如果我从控制台或以root身份运行的程序(见下文),输出如下(注意“的GeForce 9400”线):
2 devices found
Device #0 name = GeForce 9400
Device #1 name = Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz
,但如果它仅仅是我,过ssh,没有GeForce 9400条目:
1 devices found
Device #0 name = Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz
我想测试我的代码在GPU上,而不必是根。那可能吗?下面简化GPU发现程序:
#include <stdio.h>
#include <OpenCL/opencl.h>
int main(int argc, char** argv) {
char dname[500];
size_t namesize;
cl_device_id devices[10];
cl_uint num_devices;
int d;
clGetDeviceIDs(0, CL_DEVICE_TYPE_ALL, 10, devices, &num_devices);
printf("%d devices found\n", num_devices);
for (d = 0; d < num_devices; ++d) {
clGetDeviceInfo(devices[d], CL_DEVICE_NAME, 500, dname, &namesize);
printf("Device #%d name = %s\n", d, dname);
}
return 0;
}
编辑:我基本上是发现被要求在nvidia's forums同样的问题。不幸的是,唯一的答案是“这是错误的论坛”。
感谢您的提示。我以前没看过那个文档。针对Linux提供的解决方案涉及更改/ dev/nvidiactl上的权限。不幸的是,我无法在Mac上找到该设备,也没有其他任何暗示。 Windows解决方案归结为使用VNC,这听起来像一个伟大的建议。不幸的是我尝试了VNC到Mac,但它仍然没有帮助。控制台上的相同桌面可以找到GPU。通过VNC,找不到GPU。除非我是根。大概有一个许可的地方... –
Mac桌面不是基于XWindows - 设计和架构是完全不同的。在系统盘上实际上有一个名为X11的单独软件包,您可以安装该软件包来支持X应用程序(即许多传统的Unix应用程序),这些应用程序位于本机Mac窗口系统内。 – gavinb