在进行CUDA编程前,可以先检查一下自己的GPU的硬件配置,这样才可以有的放矢,可以通过下面的程序获得GPU的配置属性:
int dev = 0;
cudaDeviceProp devProp;
cudaGetDeviceProperties(&devProp, dev);
cout << "使用GPU device " << dev << ": " << devProp.name << endl;
cout << "SM的数量:" << devProp.multiProcessorCount << endl;
cout << "每个线程块的共享内存大小:" << devProp.sharedMemPerBlock / 1024.0 << " KB" << endl;
cout << "每个线程块的最大线程数:" << devProp.maxThreadsPerBlock << endl;
cout << "每个EM的最大线程数:" << devProp.maxThreadsPerMultiProcessor << endl;
cout << "每个EM的最大线程束数:" << devProp.maxThreadsPerMultiProcessor / 32 << endl;
本人的笔记本是华为的Mate book14,具体配置如下:
使用GPU device 0: GeForce MX250
SM的数量:3
每个线程块的共享内存大小:48 KB
每个线程块的最大线程数:1024
每个EM的最大线程数:2048
每个EM的最大线程束数:64
具体可参阅下面的文章: