2016-11-19 13 views
1

Предположим, что у меня установлена ​​система с одним графическим процессором, и предположим, что я также установил последнюю версию CUDA.Какую утилиту/двоичный код можно вызвать для определения возможности вычисления nVIDIA GPU?

Я хочу определить, что вычислительная способность моего GPU. Если бы я мог компилировать код, который будет легко:

#include <stdio.h> 
int main() { 
    cudaDeviceProp prop; 
    cudaGetDeviceProperties(&prop, 0); 
    printf("%d", prop.major * 10 + prop.minor); 
} 

но - предположим, что я хочу сделать это без компиляции. Могу я? Я подумал, что nvidia-smi может мне помочь, поскольку он позволяет запрашивать информацию обо всех устройствах, но, похоже, он не позволяет получить вычислительную способность. Может, есть что-то еще, что я могу сделать? Может быть, что-то видимое через /proc или системные журналы?

Редактировать: Предназначен для работы перед сборкой в ​​системе, которую я не контролирую. Таким образом, он должен иметь минимальные зависимости, запускаться в командной строке и не требовать привилегий от root.

+1

, так что вы просто хотите выполнить сценарий оболочки? что вы делаете с этой информацией, когда у вас есть это? Вы не можете скопировать свой исполняемый файл на эту систему? –

+0

Лучшая практика при установке CUDA заключается в компиляции образцов кода - это довольно тривиально. Если они скомпилированы (т. Е. «Предварительно построены»), вы можете запустить 'deviceQuery'. –

+0

@RobertCrovella: Я не могу предположить, что у людей будут образцы 1. установлены и 2. скомпилированы ... – einpoklum

ответ

1

К сожалению, похоже, что ответ на данный момент «Нет», и что нужно либо скомпилировать программу, либо использовать двоичный файл, скомпилированный в другом месте.

Edit: я приспособил обходной путь для этой проблемы - самодостаточный bash script, который компилирует небольшой встроенный в программу C, чтобы определить возможности вычислений. (Особенно полезно позвонить с помощью CMake, но может просто запускаться независимо.)

Кроме того, я подал feature-requesting bug report по телефону nVIDIA.

+1

Я бы предложил подать RFE с NVIDIA, чтобы сообщить о возможности вычислений, добавленных в 'nvidia-smi'. '--query-gpu' может сообщать о многочисленных свойствах устройства, но не о возможностях вычислений, которые выглядят как надзор. Они должны поддерживать '--query-gpu = compute_capability', что сделает вашу задачу сценариев тривиальной. – njuffa

+0

@njuffa: Я сделал запрос функции, см. Edit. – einpoklum

+0

Это похоже на путь, спасибо. Две незначительные примечания: (1) в системе отчетов об ошибках NVIDIA, все отчеты являются конфиденциальными и видны только разработчику и разработчикам, рассматривающим проблему, поэтому предоставление ссылки не помогает; вы можете упомянуть номер ошибки вместо этого, если люди хотят сравнивать заметки. (2) Правильное написание названия компании - NVIDIA, т. Е. Все-шапки. – njuffa