CUDA 7 中每个块的线程数
Threads per block in CUDA 7
我在“大规模并行处理器编程(第 2 版) 中读到
Each thread block can have up to 1024 threads in CUDA 3.0 and later. Some earlier CUDA versions allow only up to 512 threads in a block
我最近下载了CUDA 7.0工具包,想知道以上信息是否适用于现在的版本。
this 问题似乎也有过时的信息(在 2012 年提到的书出版时已经过时了)
CUDA 7 仅支持计算能力 2.0 及更高版本的 CUDA 设备。所有此类设备每个块最多可支持 1024 个线程。
512 编号与具有计算能力 1.x 的设备有关,CUDA 7 不再支持此类设备。
注意计算能力和CUDA版本是两个不同的概念。
您可以使用 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/
我在“大规模并行处理器编程(第 2 版) 中读到
Each thread block can have up to 1024 threads in CUDA 3.0 and later. Some earlier CUDA versions allow only up to 512 threads in a block
我最近下载了CUDA 7.0工具包,想知道以上信息是否适用于现在的版本。
this 问题似乎也有过时的信息(在 2012 年提到的书出版时已经过时了)
CUDA 7 仅支持计算能力 2.0 及更高版本的 CUDA 设备。所有此类设备每个块最多可支持 1024 个线程。
512 编号与具有计算能力 1.x 的设备有关,CUDA 7 不再支持此类设备。
注意计算能力和CUDA版本是两个不同的概念。
您可以使用 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/