CUDA 7中每个块的线程

时间:2015-08-23 18:45:25

标签: cuda gpu

我读了' 编程大规模并行处理器(第2版)

  

每个线程块在CUDA 3.0及更高版本中最多可包含1024个线程。一些早期的CUDA版本在块中只允许最多512个线程

我最近下载了CUDA 7.0工具包,想知道上述信息是否与现在的版本相关。

this问题似乎也有过时的信息(2012年上述书出版时已经过时)

2 个答案:

答案 0 :(得分:3)

CUDA 7仅支持计算能力2.0及更高版本的CUDA设备。所有这些设备每个块最多可支持1024个线程。

512号码与计算能力1.x的设备有关,而CUDA 7不再支持此类设备。

请注意,计算能力和CUDA版本是两个不同的概念。

答案 1 :(得分:1)

您可以使用cudaGetDeviceProperties函数查找GPU支持的每个块的线程数:http://developer.download.nvidia.com/compute/cuda/4_1/rel/toolkit/docs/online/group__CUDART__DEVICE_g5aa4f47938af8276f08074d09b7d520c.html

#include <stdio.h> 

int main() {
  int nDevices;

  cudaGetDeviceCount(&nDevices);
  for (int i = 0; i < nDevices; i++) {
    cudaDeviceProp prop;
    cudaGetDeviceProperties(&prop, i);
    printf("Device Number: %d\n", i);
    printf("  Device name: %s\n", prop.name);
    printf("  Max threads per block: %d\n", prop.maxThreadsPerBlock);
  }
}

此代码改编自http://devblogs.nvidia.com/parallelforall/how-query-device-properties-and-handle-errors-cuda-cc/