首页 文章

'compute capability'是什么意思w.r.t. CUDA?

提问于
浏览
4

我是CUDA编程的新手,对此并不了解 . 你能告诉我“CUDA计算能力”是什么意思吗?当我在大学服务器上使用以下代码时,它向我显示了以下结果 .

for (device = 0; device < deviceCount; ++device) 
{ 
    cudaDeviceProp deviceProp; 
    cudaGetDeviceProperties(&deviceProp, device); 
    printf("\nDevice %d has compute capability %d.%d.\n", device, deviceProp.major, deviceProp.minor);      
}

RESULT:

Device 0 has compute capability 4199672.0.
Device 1 has compute capability 4199672.0.
Device 2 has compute capability 4199672.0.
.
.

cudaGetDeviceProperties返回两个主要和次要字段 . 你能告诉我这个 4199672.0. 的意思吗?

2 回答

  • 1

    计算能力是设备的“功能集”(硬件和软件功能) . 您可能听说过NVIDIA GPU架构名称为“Tesla”,“Fermi”或“Kepler” . 这些架构中的每一个都具有以前版本可能没有的功能 .

    在硬盘驱动器上的CUDA工具包安装文件夹中,查找文件 CUDA_C_Programming_Guide.pdf (或谷歌),然后找到附录 F.1 . 它描述了不同计算功能之间的功能差异 .

  • 8

    正如@dialer所提到的,计算能力是您的CUDA设备's set of computation-related features. As NVidia'的CUDA API开发,'Compute Capability'数量增加 . 在撰写本文时,NVidia最新的GPU是Compute Capability 3.5 . 您可以通过检查维基百科上的this table来获得差异意味着什么的一些细节 .

    正如@aland建议的那样,你的电话可能会失败,而你得到的是using an uninitialized variable的结果 . 您应该使用错误检查功能或宏调用来包装 cudaGetDeviceProps() 调用;看到

    What is the canonical way to check for errors using the CUDA runtime API?

    讨论最佳方法 .

相关问题