2016-04-14 15 views
1

私は、LINUXボックスに座っているNvidia Tesla K80を持っています。私は内部的にTesla K80に2つのGPUがあることを知っています。そのマシンでOpenCLプログラムを実行し、すべてのデバイスをループすると、4つのデバイス(4つのTesla K80)が表示されます。なぜこれが起こっているのか知っていますか?ここテスラK80とOpenCL

は、ホスト・コードである:ここ

ret = clGetPlatformIDs(0, NULL, &platformCount); openclCheck(ret); 
platforms = (cl_platform_id*) malloc(sizeof(cl_platform_id) * platformCount); 
ret = clGetPlatformIDs(platformCount, platforms, NULL); openclCheck(ret); 
printf("Detect %d platform available.\n",platformCount); 
for (unsigned int i= 0; i < platformCount; i++) { 
    // get all devices 
    ret = clGetDeviceIDs(platforms[i], CL_DEVICE_TYPE_GPU, 0, NULL, &deviceCount); openclCheck(ret) 
    devices = (cl_device_id*) malloc(sizeof(cl_device_id) * deviceCount); 
    ret = clGetDeviceIDs(platforms[i], CL_DEVICE_TYPE_GPU, deviceCount, devices, NULL); openclCheck(ret) 
    printf("Platform %d. %d device available.\n", i+1, deviceCount); 
    // for each device print critical attributes 

for (unsigned int j = 0; j < deviceCount; j++) { 
     // print device name 
     ret = clGetDeviceInfo(devices[j], CL_DEVICE_NAME, 0, NULL, &valueSize); openclCheck(ret) 
     value = (char*) malloc(valueSize); 
     ret = clGetDeviceInfo(devices[j], CL_DEVICE_NAME, valueSize, value, NULL); openclCheck(ret) 
     printf("\t%d. Device: %s\n", j+1, value); 
     free(value); 
     //more code here to print device attributes 

が出力される。

Detect 1 platform available. 
Platform 1. 4 device available. 
1. Device: Tesla K80 
    1.1 Hardware version: OpenCL 1.2 CUDA 
    1.2 Software version: 352.79 
    1.3 OpenCL C version: OpenCL C 1.2 
    1.4 Parallel compute units: 13 

2. Device: Tesla K80 
    2.1 Hardware version: OpenCL 1.2 CUDA 
    2.2 Software version: 352.79 
    2.3 OpenCL C version: OpenCL C 1.2 
    2.4 Parallel compute units: 13 

3. Device: Tesla K80 
    3.1 Hardware version: OpenCL 1.2 CUDA 
    3.2 Software version: 352.79 
    3.3 OpenCL C version: OpenCL C 1.2 
    3.4 Parallel compute units: 13 

4. Device: Tesla K80 
    4.1 Hardware version: OpenCL 1.2 CUDA 
    4.2 Software version: 352.79 
    4.3 OpenCL C version: OpenCL C 1.2 
    4.4 Parallel compute units: 13 
+0

「clinfo」とは何ですか? –

+0

clinfoはコマンドプロンプトで4台のデバイス – user1274878

+0

を表示し、 'nvidia-smi'を実行して出力を質問に貼り付けます –

答えて

0

おそらく2 2は、複数のドライバから64ビット実装され、32ビット・インプリメンテーションです。おそらく、古いドライバは、いくつかのディスプレイドライバアンインストーラソフトウェアによって清掃される必要があります。各デバイス実装のビット数を確認してください。

または仮想gpu(GRID?)サービスがアクティブなままになっているため、重複したデバイスが発生します。これを解決するために仮想GPUを無効にすることができます。

関連する問題