OpenCLプログラムは、コンソールにログインしているときはGPUデバイスを見つけることができますが、sshを使用してリモートでログインしているときは見つけることができません。さらに、sshセッションでrootとしてプログラムを実行すると、プログラムはGPUを見つけることができます。
コンピューターは、GeForce9400GPUを搭載したSnowLeopardMacです。
コンソールから、またはルートとしてプログラム(以下を参照)を実行すると、出力は次のようになります(「GeForce9400」行に注意してください)。
2 devices found
Device #0 name = GeForce 9400
Device #1 name = Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz
しかし、それが私だけの場合、sshを介して、GeForce9400エントリはありません。
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のフォーラムで尋ねられているのと本質的に同じ質問を見つけました。残念ながら、唯一の答えは「これは間違ったフォーラムです」という形式でした。