【问题标题】:What does 'compute capability' mean w.r.t. CUDA?“计算能力”是什么意思?库达?
【发布时间】:2012-08-11 23:26:35
【问题描述】:

我是 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);      
}

结果:

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

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

【问题讨论】:

  • 当然是您机器上 CUDA 的主要和次要版本。 divms.uiowa.edu/help/linux/cuda.html
  • 这很可能意味着您对cudaGetDeviceProperties 的调用失败。检查其返回值是否等于cudaSuccess

标签: cuda definition


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    正如@dialer 所提到的,计算能力是您的 CUDA 设备的一组与计算相关的功能。随着 NVidia 的 CUDA API 的发展,“计算能力”的数量也在增加。在撰写本文时,NVidia 最新的 GPU 是 Compute Capability 3.5。您可以通过查看 Wikipedia 上的 this table 来了解这些差异的含义。

    正如@aland 所建议的,您的调用可能失败,而您得到的是using an uninitialized variable 的结果。您应该使用某种错误检查来包装您的 cudaGetDeviceProps() 调用;见

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

    讨论执行此操作的选项。

    【讨论】:

      猜你喜欢
      • 2018-10-22
      • 2013-05-07
      • 1970-01-01
      • 2019-03-03
      • 2013-11-04
      • 2015-05-11
      • 2019-09-13
      • 2021-02-03
      • 1970-01-01
      相关资源
      最近更新 更多