#include <cuda_runtime.h>
#include <cuda.h>
#include <device_launch_parameters.h>
bool CUDA_initial(void)
{int i;
int device_count;
if( cudaGetDeviceCount(&device_count) )
{
printf(" There is zero device beyond 1.0/n");
return false;
}
else
{
printf("There is %d device beyond 1.0/n",device_count);
}
for(i=0;i<device_count;i++)
{
struct cudaDeviceProp device_prop;
if(cudaGetDeviceProperties(&device_prop,i)==cudaSuccess)
{
printf("device properties is :\n"
" device name is %s\n"
"/t totalGlobalMem is %d\n"
"/t sharedMemPerBlock is %d\n"
"/t regsPerBlock is %d\n"
"/t warpSize is %d\n"
"/t memPitch is %d\n"
"/t maxThreadsPerBlock is %d\n"
"/t maxThreadsDim [3] is %d X %d X %d\n"
"/t maxGridSize [3] is %d X %d X %d\n"
"/t totalConstMem is %d\n"
"/t device version is major %d ,minor %d\n"
"/t clockRate is %d\n"
"/t textureAlignment is %d\n"
"/t deviceOverlap is %d\n"
"/t multiProcessorCount is %d\n",
device_prop.name,
device_prop.totalGlobalMem,
device_prop.sharedMemPerBlock,
device_prop.regsPerBlock,
device_prop.warpSize,
device_prop.memPitch,
device_prop.maxThreadsPerBlock,
device_prop.maxThreadsDim[0],device_prop.maxThreadsDim[1],device_prop.maxThreadsDim[2],
device_prop.maxGridSize[0],device_prop.maxGridSize[1],device_prop.maxGridSize[2],
device_prop.totalConstMem,
device_prop.major,device_prop.minor,
device_prop.clockRate,
device_prop.textureAlignment,
device_prop.deviceOverlap,
device_prop.multiProcessorCount);
break;
}
}
if(i==device_count)
{
printf("\nGet the propertites of device occurred error\n");
return false;
}
if(cudaSetDevice(i)==cudaErrorInvalidDevice)
{
printf("\nSet Device occurred error\n");
return false;
}
}
int main()
{
if (CUDA_initial() == true)
printf("CUDA initial successed!\n");
getchar();
return 0;
}
本文介绍了一个简单的CUDA程序,用于初始化CUDA环境并获取GPU设备的相关属性信息,如设备名称、全局内存大小等。
1038

被折叠的 条评论
为什么被折叠?



