cuda第二个程序
2013-11-13 20:22
225 查看
第二个程序的目的是点看我电脑上的gpu的基本信息。查询设备。
文件存为cuda_1.1。
更改如下:
// Add vectors in parallel.
//cudaError_t 是cuda错误类型,取值为整数。
cudaError_t cudaStatus;
int num = 0;
cudaDeviceProp prop;
cudaStatus = cudaGetDeviceCount(&num);
for(int i = 0;i<num;i++)
{
cudaGetDeviceProperties(&prop,i);
printf( " --- General Information for device %d ---\n", i );
printf( "Name: %s\n", prop.name );//名称
printf( "Compute capability: %d.%d\n", prop.major, prop.minor );设备计算功能集的主版本号以及次版本号
printf( "Clock rate: %d\n", prop.clockRate );时钟频率
printf( "Device copy overlap: " );一个布尔类型值,表示设备是否能同时执行一个cudaMemory()调用和一个核函数调用。
if (prop.deviceOverlap)
printf( "Enabled\n" );
else
printf( "Disabled\n");
printf( "Kernel execution timeout : " );内核执行超时
if (prop.kernelExecTimeoutEnabled)
printf( "Enabled\n" );
else
printf( "Disabled\n" );
printf( " --- Memory Information for device %d ---\n", i );
printf( "Total global mem: %ld\n", prop.totalGlobalMem );设备上全局内存的总量,单位为字节。
printf( "Total constant Mem: %ld\n", prop.totalConstMem );总常量MEM
printf( "Max mem pitch: %ld\n", prop.memPitch );
printf( "Texture Alignment: %ld\n", prop.textureAlignment );
printf( " --- MP Information for device %d ---\n", i );
printf( "Multiprocessor count: %d\n",
prop.multiProcessorCount );
printf( "Shared mem per mp: %ld\n", prop.sharedMemPerBlock );
printf( "Registers per mp: %d\n", prop.regsPerBlock );
printf( "Threads in warp: %d\n", prop.warpSize );
printf( "Max threads per block: %d\n",
prop.maxThreadsPerBlock );
printf( "Max thread dimensions: (%d, %d, %d)\n",
prop.maxThreadsDim[0], prop.maxThreadsDim[1],
prop.maxThreadsDim[2] );
printf( "Max grid dimensions: (%d, %d, %d)\n",
prop.maxGridSize[0], prop.maxGridSize[1],
prop.maxGridSize[2] );
printf( "\n" );
}
multiProcessorCount:GPU大核数,一个大核(专业点称为流多处理器,SM,Stream-Multiprocessor)包含多个小核(流处理器,SP,Stream-Processor)
调用cudaGetDeviceCount(&num);可以对每个设备进行迭代 ,并查询各个设备的相关信息。cuda运行时候将会返回一个cudaDeviceProp结构的,其中包含啦设备的相关属性。
文件存为cuda_1.1。
更改如下:
// Add vectors in parallel.
//cudaError_t 是cuda错误类型,取值为整数。
cudaError_t cudaStatus;
int num = 0;
cudaDeviceProp prop;
cudaStatus = cudaGetDeviceCount(&num);
for(int i = 0;i<num;i++)
{
cudaGetDeviceProperties(&prop,i);
printf( " --- General Information for device %d ---\n", i );
printf( "Name: %s\n", prop.name );//名称
printf( "Compute capability: %d.%d\n", prop.major, prop.minor );设备计算功能集的主版本号以及次版本号
printf( "Clock rate: %d\n", prop.clockRate );时钟频率
printf( "Device copy overlap: " );一个布尔类型值,表示设备是否能同时执行一个cudaMemory()调用和一个核函数调用。
if (prop.deviceOverlap)
printf( "Enabled\n" );
else
printf( "Disabled\n");
printf( "Kernel execution timeout : " );内核执行超时
if (prop.kernelExecTimeoutEnabled)
printf( "Enabled\n" );
else
printf( "Disabled\n" );
printf( " --- Memory Information for device %d ---\n", i );
printf( "Total global mem: %ld\n", prop.totalGlobalMem );设备上全局内存的总量,单位为字节。
printf( "Total constant Mem: %ld\n", prop.totalConstMem );总常量MEM
printf( "Max mem pitch: %ld\n", prop.memPitch );
printf( "Texture Alignment: %ld\n", prop.textureAlignment );
printf( " --- MP Information for device %d ---\n", i );
printf( "Multiprocessor count: %d\n",
prop.multiProcessorCount );
printf( "Shared mem per mp: %ld\n", prop.sharedMemPerBlock );
printf( "Registers per mp: %d\n", prop.regsPerBlock );
printf( "Threads in warp: %d\n", prop.warpSize );
printf( "Max threads per block: %d\n",
prop.maxThreadsPerBlock );
printf( "Max thread dimensions: (%d, %d, %d)\n",
prop.maxThreadsDim[0], prop.maxThreadsDim[1],
prop.maxThreadsDim[2] );
printf( "Max grid dimensions: (%d, %d, %d)\n",
prop.maxGridSize[0], prop.maxGridSize[1],
prop.maxGridSize[2] );
printf( "\n" );
}
multiProcessorCount:GPU大核数,一个大核(专业点称为流多处理器,SM,Stream-Multiprocessor)包含多个小核(流处理器,SP,Stream-Processor)
调用cudaGetDeviceCount(&num);可以对每个设备进行迭代 ,并查询各个设备的相关信息。cuda运行时候将会返回一个cudaDeviceProp结构的,其中包含啦设备的相关属性。
相关文章推荐
- 第二个cuda程序——图像拉伸
- 深入浅出谈CUDA-[第五章][ 第二个CUDA程序]
- 第二个CUDA程序
- cuda入门——第二个 CUDA程序
- 零基础学python-1.7 第二个程序 猜数字小游戏
- 【CUDA】利用NVIDIA SDK生成dll程序详解
- [Go语言]我的第二个Go语言程序
- 在VS2012下的CUDA程序中出现错误error : identifier “atomicAdd” is undefined
- c++编程:编写程序,任意输入一个字符串,将其中的最大字符放在字符串的第二个
- CUDA: 程序优化的15个策略
- 重新学习之spring第二个程序,配置AOP面向切面编程
- CUDA从入门到精通到精通_笔记3:第一个CUDA程序及其代码详解
- 自己所开发的彩票程序使用cuda加速后所获得的加速比
- 根据输入显示一个人的出生日期(我的第二个python程序)
- 深入浅出谈CUDA-[第三章][第一个CUDA程序]
- 偶写的第一个CUDA程序——向量加法
- Cuda 学习教程:Cuda 程序初始化
- 详解第一个CUDA程序kernel.cu
- 用CUDA来判断素数程序
- java程序练习:尝试创建一个父类,在父类中创建两个方法,在子类中覆盖第二个方法,为子类创建一个对象,将他向上转型到基类并调用这个方法。