"计算能力"对CUDA意味着什么?

D P*_* P. 8 cuda definition

我是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);      
}
Run Code Online (Sandbox Code Playgroud)

结果:

Device 0 has compute capability 4199672.0.
Device 1 has compute capability 4199672.0.
Device 2 has compute capability 4199672.0.
.
.
Run Code Online (Sandbox Code Playgroud)

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

dia*_*ler 12

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

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


ein*_*ica 5

正如 @dialer 提到的,计算能力是 CUDA 设备的一组与计算相关的功能。随着 NVidia CUDA API 的发展,“计算能力”的数量不断增加。在撰写本文时,NVidia 最新的 GPU 为计算能力 3.5。您可以通过查看维基百科上的此表来详细了解这些差异的含义。

正如@aland 所建议的,您的调用可能失败,您得到的是使用未初始化变量的结果。你应该cudaGetDeviceProps()用某种错误检查来包装你的调用;看

使用 CUDA 运行时 API 检查错误的规范方法是什么?

讨论执行此操作的选项。