2016-08-03 2 views
1

Я пытаюсь установить CUDA-7.5 на Ubuntu 14.04, и у меня есть как GTX950, так и Tesla K40, вставленные в мою материнскую плату.Установите CUDA-7.5 на компьютер с использованием GTX950 и Tesla K40

и lspci | Grep -i NVIDIA команда дает следующий результат:

01:00.0 3D controlloer: NVIDIA Corporation GK110BGL [Tesla K40c] (rev a1) 
02:00.0 VGA compatible controller: NVIDIA Corporation GM206 [GeForece GTX 950] (rev a1) 
02:00.1 Audio device: NVIDIA Corporation Device 0fba (rev a1) 

Я думаю, что я успешно установил CUDA-7,5 на моем компьютере, потому что я могу на самом деле запустить ./smokeParticles образец в NVIDIA_CUDA-7,5 _Сэмплы/bin/x86_64/linux/release/.

Но у меня есть один вопрос:

  • Как я могу быть уверен, что я на самом деле с помощью Tesla K40? Потому что образец образца также успешно после того, как я отсоединяю материнскую плату от Tesla K40 от . (Я предполагаю, что GTX 950 работает с образцом ...)

Есть ли команда или что-то, что может мне сказать, я использую Tesla K40?

ответ

0

В образце cuda, deviceQuery используется для проверки правильности установки cuda и отображения базовой информации о каждой карте. Это сообщит вам номер устройства каждого устройства cuda.

Например, я запустить его на моем сервере:

$ ./deviceQuery |egrep '^Device [0-9]+' 
Device 0: "GeForce GTX 980 Ti" 
Device 1: "GeForce GTX 980 Ti" 
Device 2: "GeForce GTX 980 Ti" 
Device 3: "GeForce GTX 980 Ti" 

В приложении Cuda, используйте cudaSetDevice(), чтобы выбрать карту для запуска. Посмотрите на образец источника, чтобы узнать, как его использовать.

+0

Спасибо, вы только что спасли мой день !!! Другой вопрос: когда я использую GTX 950 на Sample ./nbody, в командной строке печатается «Использование устройства 1: GeForce GTX 950> Compute 5.2 CUDA device: [GeForce GTX 950]», а Tesla K40 печатает «Использование устройства 0: Tesla K40c> Вычислить устройство CUDA 3.5: [Tesla K40c] ". Можете ли вы сказать мне разницу между этим «Compute 5.2/3.5 CUDA device»? – Emma

+0

@CHEN Nvidia объясняет эти термины cuda в своих документах, особенно «Руководство по программированию CUDA C».Вы можете найти его на веб-сайте nvidia cuda zone. Прежде чем продолжить свое путешествие по образцам cuda, нужно научиться этому трудным путем, читая. – halfelf

2

Я хотел бы продлитьhalfelfs Ответ. Его предложенное решение наверняка правильно, но я не считаю его общим. Просто в зависимости от номера жесткого кодированного устройства, который был возвращен из командной строки, может стать ловушкой один раз - по какой-либо причине - ОС изменяет ранее присвоенный номер устройства.

Мое предложение заключается в следующем:

int getDeviceNumberByName(const char * deviceName) 
{ 
    int deviceCount; 
    cudaGetDeviceCount (&deviceCount); 
    for (int currentDevice = 0 ; currentDevice < deviceCount ; ++currentDevice) 
    { 
     cudaDeviceProp deviceProperties; 
     cudaGetDeviceProperties(&deviceProperties, currentDevice); 
     if (0 == strcmp(deviceProperties.name, deviceName) 
     return currentDevice; 
    } 
    return -1;  // not found 
} 

С помощью этой функции вы очень гибкий и даже при смене базового оборудования она работает.

Описание:

Получить общее количество установленных устройств NVIDIA и прочитать свойство каждого устройства. Проверьте, совпадает ли имя устройства с указанным именем устройства и если он возвращает номер устройства, в противном случае возвращает -1, если не найден.

 Смежные вопросы

  • Нет связанных вопросов^_^