Как программно получить спецификации карт в CUDA - PullRequest
12 голосов
/ 16 апреля 2011

Я только начинаю с CUDA. Есть ли способ получить спецификации карты программно?

Ответы [ 2 ]

20 голосов
/ 16 апреля 2011

Вы можете использовать API cudaGetDeviceCount и cudaGetDeviceProperties .

void DisplayHeader()
{
    const int kb = 1024;
    const int mb = kb * kb;
    wcout << "NBody.GPU" << endl << "=========" << endl << endl;

    wcout << "CUDA version:   v" << CUDART_VERSION << endl;    
    wcout << "Thrust version: v" << THRUST_MAJOR_VERSION << "." << THRUST_MINOR_VERSION << endl << endl; 

    int devCount;
    cudaGetDeviceCount(&devCount);
    wcout << "CUDA Devices: " << endl << endl;

    for(int i = 0; i < devCount; ++i)
    {
        cudaDeviceProp props;
        cudaGetDeviceProperties(&props, i);
        wcout << i << ": " << props.name << ": " << props.major << "." << props.minor << endl;
        wcout << "  Global memory:   " << props.totalGlobalMem / mb << "mb" << endl;
        wcout << "  Shared memory:   " << props.sharedMemPerBlock / kb << "kb" << endl;
        wcout << "  Constant memory: " << props.totalConstMem / kb << "kb" << endl;
        wcout << "  Block registers: " << props.regsPerBlock << endl << endl;

        wcout << "  Warp size:         " << props.warpSize << endl;
        wcout << "  Threads per block: " << props.maxThreadsPerBlock << endl;
        wcout << "  Max block dimensions: [ " << props.maxThreadsDim[0] << ", " << props.maxThreadsDim[1]  << ", " << props.maxThreadsDim[2] << " ]" << endl;
        wcout << "  Max grid dimensions:  [ " << props.maxGridSize[0] << ", " << props.maxGridSize[1]  << ", " << props.maxGridSize[2] << " ]" << endl;
        wcout << endl;
    }
}

Если вы установили GPU Computing SDK , взгляните на проект deviceQuery, который можно найти в каталоге %NVSDKCOMPUTE_ROOT%\C\src. В нем показано, как запрашивать все свойства устройства с помощью вызовов API CUDA Runtime.

Руководство по программированию CUDA более подробно описано в разделе 3.2.3.

1 голос
/ 16 апреля 2011

В этом PDF-документе описывается, как это сделать: http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CUDA_Developer_Guide_for_Optimus_Platforms.pdf

(я гуглил для [cuda get gpu возможностей].)

В частности, cudaGetDeviceProperties выглядит интересно.

...