2016-04-14 30 views
1

У меня есть Nvidia Tesla K80, сидящий в коробке LINUX. Я знаю, что внутри Tesla K80 есть два графических процессора. Когда я запускал программу OpenCL на этой машине, перебираю все устройства, я вижу четыре устройства (4 Tesla K80s). Вы знаете, почему это может произойти?Tesla 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

Что говорит «клинфо»? –

+0

clinfo также показывает 4 устройства – user1274878

+0

в командной строке, запустите 'nvidia-smi' и вставьте (отредактируйте) вывод в свой вопрос –

ответ

0

Скорее всего, 2 представляют собой 32-битные реализации, 2 представляют собой 64-битные реализаций из нескольких драйверов. Возможно, старые драйверы необходимо очистить с помощью программного обеспечения для удаления драйверов дисплея. Проверьте битту каждой реализации устройства.

Или есть виртуальные службы gpu (GRID?), Оставленные активными, вызывающие дублированные устройства, поэтому, возможно, вы можете деактивировать виртуальный gpu, чтобы решить эту проблему.