请问,怎么知道GPU上最大的block数啊?

请问,怎么知道GPU上最大的block数啊?

手册有API

nvidia cuda c programming guide 里的附录里有,根据附录A的显卡型号查计算能力,再根据附录G的计算能力查参数。3.2是这样的。

发现了,用cudaGetDeviceProperties()。
#include <stdio.h>
#include <stdlib.h>
#include <cutil.h>

int main()
{
int dev;
cudaDeviceProp prop;
if(cudaSuccess!=cudaGetDevice(&dev))
{
printf(“cudaGetDevice() err!\n”);
return -1;
}
if(cudaSuccess!=cudaGetDeviceProperties(&prop,dev))
{
printf(“cudaGetDeviceProperties() err!\n”);
return -1;
}
printf(“device name:%s\n”,prop.name);
printf(“compute ability:%d.%d\n”,prop.major,prop.minor);
printf(“maxGridSize:%d,%d,%d\n”,prop.maxGridSize[0],prop.maxGridSize[1],prop.maxGridSize[2]);
printf(“maxThreadPerBlock:%d\n”,prop.maxThreadsPerBlock);
printf(“maxThreadDim:%d,%d,%d\n”,prop.maxThreadsDim[0],prop.maxThreadsDim[1],prop.maxThreadsDim[2]);
printf(“multiProcessorCount:%d\n”,prop.multiProcessorCount);
printf(“resPerBlock:%d(K)\n”,prop.regsPerBlock/1024);
printf(“sharedMemoryPerBolck:%d(K)\n”,prop.sharedMemPerBlock/1024);
printf(“totleGlobalMemory:%d(M)\n”,prop.totalGlobalMem/(1024*1024));
printf(“warpSize:%d\n”,prop.warpSize);
printf(“constanMemory:%d(K)\n”,prop.totalConstMem/1024);
getchar();
return 0;
}