#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;
}