Я только начинаю с CUDA. Есть ли способ получить карты спецификации программно?
Как программно получить спецификации карт в CUDA
Ответ 1
Вы можете использовать cudaGetDeviceCount и cudaGetDeviceProperties API-интерфейсы.
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 API.
Руководство по программированию CUDA более подробно описано в разделе 3.2.3.
Ответ 2
В этом PDF-документе описывается, как это сделать: http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CUDA_Developer_Guide_for_Optimus_Platforms.pdf
(I Googled для [cuda get gpu возможностей].)
В частности, cudaGetDeviceProperties выглядит интересным.