原文链接

  今天介绍一下CUDA设备的相关属性,只有熟悉了硬件是相关属性,是怎么工作的,就能写出更适合硬件工作的代码。cudaDeviceProp这个结构体记录了设备的相关属性。

 struct cudaDeviceProp
{
char name[]; /**< 设备的ASCII标识 */
size_t totalGlobalMem; /**< 可用的全局内存量,单位字节 */
size_t sharedMemPerBlock; /**< 每个block可用的共享内存量,单位字节 */
int regsPerBlock; /**< 每个block里可用32位寄存器数量 */
int warpSize; /**< 在线程warp块大小*/
size_t memPitch; /**< 允许的内存复制最大修正,单位字节*/
int maxThreadsPerBlock; /**< 每个block最大进程数量 */
int maxThreadsDim[]; /**< 一block里每个维度最大线程量 */
int maxGridSize[]; /**< 一格里每个维度最大数量 */
int clockRate; /**< 时钟频率,单位千赫khz */
size_t totalConstMem; /**< 设备上可用的常量内存,单位字节 */
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[]; /**< 2D纹理最大维数*/
int maxTexture3D[]; /**< 3D纹理最大维数 */
int maxTexture1DLayered[]; /**< 最大的1D分层纹理尺寸 */
int maxTexture2DLayered[]; /**< 最大的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;/**< 每个多处理器的最大的常驻线程 */
};

  通过cudaGetDeviceProperties()得到设备属性,cudaGetDeviceCount()来获取设备的个数,通过cudaChooseDevice()选择符合条件的设备,通过cudaGetDevice()可以得到当前的设备,通过cudaSetDevice()设置选择设备,SLI技术支持多个GPU。

  更多内容请点击:

  CUDA专区:http://cuda.it168.com/

  CUDA论坛:http://cudabbs.it168.com/

最新文章

  1. Java环境设置
  2. IOS自定义表格UITableViewCell
  3. 【CMD】日常总结
  4. fcc
  5. ios html5 网页取消默认样式
  6. Call and Apply in JavaScript
  7. 生成动态前缀且自增号码的Oracle函数
  8. 【HDOJ】4109 Instrction Arrangement
  9. Unity跨平台原理
  10. selenium+python开发环境的搭建
  11. C# 调用动态链接库,给游览器写入Cookie
  12. php + mysql 存入表情 【如何转义emoji表情,让它可以存入utf8的数据库】
  13. PostgreSQL 数据库NULL值的默认排序行为与查询、索引定义规范 - nulls first\last, asc\desc
  14. .net like模糊查询参数化
  15. odoo 11 实现多个字段对应一个查询参数的查询
  16. Spring框架第一天
  17. Oracle中如何添加和修改包含日期的数据
  18. weblogic创建域生产模式,输入用户名闪退
  19. SpringBoot(五) Web Applications: MVC
  20. nginx: [emerg] &quot;proxy_cache_path&quot; directive is not allowed here in /usr/local/nginx/conf/nginx.conf:43

热门文章

  1. P1168 中位数(对顶堆)
  2. vue散碎知识点学习
  3. Java 实现大转盘抽奖
  4. for in在对象和数组中的应用
  5. APP测试常见功能测试点汇总
  6. python3.6下安装wingIDE破解方法
  7. 解决 This application requires Java Runtime Environment XX
  8. (转)由su和su -的区别谈学习linux运维方法
  9. Sqoop Import数据库时中文乱码解决方案
  10. 属性(property)与成员变量(ivar)