`

CUDA-设备属性

    博客分类:
  • CUDA
阅读更多
struct cudaDeviceProp
{
  char   name[256];                  /**< 设备的ASCII标识 */
  size_t totalGlobalMem;             /**< 可用的全局内存量,单位字节 */
  size_t totalConstMem;             /**< 可用的常量内存量,单位字节 */
  size_t sharedMemPerBlock;          /**< 每个block可用的共享内存量,单位字节 */
  int    regsPerBlock;               /**< 每个block里可用32位寄存器数量 */
  int    warpSize;                   /**< 在线程warp块大小*/
  size_t memPitch;                   /**< 允许的内存复制最大修正,单位字节*/
  int    maxThreadsPerBlock;         /**< 每个block最大线程数量 */
  int    maxThreadsDim[3];           /**< 一block里每个维度最大线程量 */
  int    maxGridSize[3];             /**< 一格里每个维度最大数量 */
  int    clockRate;                  /**< 时钟频率,单位千赫khz */
  int    major;                      /**< 计算功能主版本号*/
  int    minor;                      /**< 计算功能次版本号*/
  size_t textureAlignment;           /**< 对齐要求的纹理 */
  int    deviceOverlap;              /**< 判断设备是否可以同时拷贝内存和执行内核。已过时。改用asyncEngineCount */
  int    multiProcessorCount;        /**< 设备上的处理器数量 */
  int    kernelExecTimeoutEnabled;   /**< 内核函数是否运行受时间限制*/
  int    integrated;                 /**< 设备是不是独立的 */
  int    canMapHostMemory;           /**< 设备能否映射主机cudaHostAlloc/cudaHostGetDevicePointer */
  int    computeMode;                /**< 计算模式,有默认,独占,禁止,独占进程(See ::cudaComputeMode) */
  int    maxTexture1D;               /**< 1D纹理最大值 */
  int    maxTexture2D[2];            /**< 2D纹理最大维数*/
  int    maxTexture3D[3];            /**< 3D纹理最大维数 */
  int    maxTexture1DLayered[2];     /**< 最大的1D分层纹理尺寸 */
  int    maxTexture2DLayered[3];     /**< 最大的2D分层纹理尺寸  */
  size_t surfaceAlignment;           /**< 表面的对齐要求*/
  int    concurrentKernels;          /**< 设备是否能同时执行多个内核*/
  int    ECCEnabled;                 /**< 设备是否支持ECC */
  int    pciBusID;                   /**< 设备的PCI总线ID */
  int    pciDeviceID;                /**< PCI设备的设备ID*/
  int    pciDomainID;                /**<PCI设备的域ID*/
  int    tccDriver;                  /**< 1如果设备是使用了TCC驱动的Tesla设备,否则就是0 */
  int    asyncEngineCount;           /**< 异步Engine数量 */
  int    unifiedAddressing;          /**< 设备是否共享统一的地址空间与主机*/
  int    memoryClockRate;            /**<峰值内存时钟频率,单位khz*/
  int    memoryBusWidth;             /**< 全局内存总线宽度,单位bit*/
  int    l2CacheSize;                /**< L2 cache大小,单位字节 */
  int    maxThreadsPerMultiProcessor;/**< 每个多处理器的最大的常驻线程 */
};

 示例:

 

#include "stdio.h"
#include <cuda_runtime.h>
int main(){
   cudaDeviceProp prop;
   int count;
   int i;
   cudaGetDeviceCount(&count);
   fprintf(stderr,"CudaDeviceNumber======%d\n",count);
   for(i=0;i<count;i++){
     cudaGetDeviceProperties(&prop,i);
     fprintf(stderr,"---General Infomation for device %d---\n",i);
     fprintf(stderr,"Name:  %s\n",prop.name);
     fprintf(stderr,"Total global mem: %ld\n",prop.totalGlobalMem);
     fprintf(stderr,"Total constant mem: %ld\n",prop.totalConstMem);
     fprintf(stderr,"Shared mem per mp: %ld\n",prop.sharedMemPerBlock);
     fprintf(stderr,"Threads in warp: %d\n",prop.warpSize);
     fprintf(stderr,"Max threads per block: %d\n",prop.maxThreadsPerBlock);
    }
  return 0;
}

  运行结果:

 fangbing@casis-node1:~/test$ nvcc readDeviceProp.cu -o readDeviceProp

fangbing@casis-node1:~/test$ ./readDeviceProp 

CudaDeviceNumber======4

---General Infomation for device 0---

Name:  Tesla K80

Total global mem: 12079136768

Total constant mem: 65536

Shared mem per mp: 49152

Threads in warp: 32

Max threads per block: 1024

---General Infomation for device 1---

Name:  Tesla K80

Total global mem: 12079136768

Total constant mem: 65536

Shared mem per mp: 49152

Threads in warp: 32

Max threads per block: 1024

---General Infomation for device 2---

Name:  Tesla K80

Total global mem: 12079136768

Total constant mem: 65536

Shared mem per mp: 49152

Threads in warp: 32

Max threads per block: 1024

---General Infomation for device 3---

Name:  Tesla K80

Total global mem: 12079136768

Total constant mem: 65536

Shared mem per mp: 49152

Threads in warp: 32

Max threads per block: 1024

 

分享到:
评论

相关推荐

    生锈的 CUDA 包装器

    目前认为安全的事物示例:从未初始化的 GPU 缓冲区读取到主机内存一些无效的libcuda操作会导致libcuda停止接受任何 API 调用设置可能对整个设备产生副作用的各种属性写入只读设备内存支持的功能设备管理上下文管理...

    Hands-On-GPU-Accelerated-Computer-Vision-with-OpenCV-and-CUDA:Packt发布的具有OpenCV和CUDA的动手GPU加速计算机视觉

    本书涵盖了以下令人兴奋的功能:了解如何从CUDA程序访问GPU设备的属性和功能 了解如何加快搜索和排序算法 检测图像中的线条和圆形等形状 使用算法探索对象跟踪和检测 在Jetson TX1中使用不同的视频分析技术处理视频...

    cuda:我的自定义 CUDA 示例

    此示例列举了系统中存在的 CUDA 设备的属性。 带宽测试 此示例针对传输大小为 3KB、15KB、15MB 和 100MB 的可分页、页面锁定和写入组合内存测量主机到设备和设备到主机复制带宽,并以 CSV 格式输出它们。 吉特 此...

    CUDA与cuDNN安装及tensorflow-gpu2.1下载

    1、CUDA 1.1、查看电脑显卡及驱动...更新步骤如下:桌面右击此电脑打开属性—&gt;打开设备管理器—&gt;打开显示适配器—&gt;双击NVIDIA••••••—&gt;点击驱动程序—&gt;点击更新驱动程序—&gt;点击自动搜索更新的驱动程序软件,即

    AIDA64 Premium 1.61.apk

    - PCI,USB,CUDA,OpenCL设备列表 - 传感器轮询 - 已安装的应用程序,编解码器和系统目录列表 - Android Wear模块:手表的本机应用程序 破解信息: PREMIUM功能已解锁 如何安装 ? 1.卸载以前的任何版本(如果...

    安卓手机硬件检测工具 AIDA64 1.72 中文多语免费版.zip

    AIDA64 安卓版是适用于基于 Android 的设备的硬件和软件信息实用程序。...– PCI,USB,CUDA,OpenCL 设备列表 –传感器轮询 –已安装的应用程序,编解码器和系统目录的列表 – Android Wear 模块:手表的本机应用

    Optix光线追踪开发SDK完整包

    图形 硬件 : CUDA 3.0 能力 的 计算 设备 ( “ 开普勒 ” 或 更 高 ) 被 支撑 在 GeForce , Quadro , NVIDIA Tesla 或 类别 产品 。 费米 GPU 不再 支持 类 图形 驱动程序 : Windows 7 / 8 : 驱动器 版本 368.86 ...

    基于GPU和均匀栅格法的光线追踪算法研究.pdf

    本研究中,我们基于NVIDIA公司的CUDA(计算统一设备体系统结构)环境,采用均匀栅格法作为加速结构,实现了光线追踪算法。实验结果表明,该计算模型相对传统基于CPU的光线追踪算法具有更快的整体运算速度,GPU非常...

    基于GPU的雷达成像实时仿真技术研究.pdf

    CUDA是NVIDIA公司推出的统一计算设备架构,旨在将计算过程并行化以加速程序的运行,满足了雷达成像对实时性的要求。基于CUDA的雷达成像仿真算法可以有效地提高仿真速度和精度。 知识点5: 并行计算技术在雷达成像...

    Any Video Converter Ultimate v5.5.6简体中文注册版.rar

    软件介绍: Any Video Converter Ultimate是一款集视频转换、视频录制与播放于一体的视频转换软件。可以将DVD光盘/DVD...支持GPU加速,X264/H264视频编码时使用OpenCL加速,使用NVidia设备进行CUDA编码加速。

    一种基于GPU的粒子系统火焰模拟.pdf

    该方法还使用全局存储空间存储粒子信息,避免了因使用纹理存储而产生的反复绑定开销,同时结合GPU强大的通用计算能力,通过采用CUDA编写的并行算法,实现基于GPU的拉格朗日插值并行求解及并行计算、更新粒子属性。...

    FaceEngine:面对大规模杀伤性武器

    该项目包括面部检测/对齐/ 5或68或106地标检测/面部属性检测(包括年龄+性别+种族+微笑)/面部朝向检测/面部识别。 基本上,它涵盖了面部技术的所有领域,但面部生命检测在整个链中也非常重要。 但是由于它通常在...

Global site tag (gtag.js) - Google Analytics