當我在控制檯登錄時,我的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