【问题标题】:How to get the GPU architecture of a device?如何获取设备的 GPU 架构?
【发布时间】:2017-06-12 20:14:24
【问题描述】:

cudaGetDeviceProperties 具有获取计算能力 (major.minor) 的属性,但是,我们如何让 GPU 架构 (sm_**) 输入到设备的编译中?

【问题讨论】:

  • 如果我正确理解您的问题,这就是主要和次要属性的编码。

标签: cuda


【解决方案1】:
  • sm_10 是计算能力 1.0 设备
  • sm_11 是计算能力 1.1 设备
  • sm_12 是计算能力 1.2 设备
  • sm_13 是计算能力 1.3 设备
  • sm_20 是计算能力 2.0 设备
  • sm_21 是计算能力 2.1 设备
  • sm_30 是计算能力 3.0 设备
  • sm_32 是计算能力 3.2 设备
  • sm_35 是计算能力 3.5 设备
  • sm_37 是计算能力 3.7 设备
  • sm_50 是计算能力 5.0 设备
  • sm_52 是计算能力 5.2 设备
  • sm_53 是计算能力 5.3 设备
  • sm_60 是计算能力 6.0 设备
  • sm_61 是计算能力 6.1 设备
  • sm_62 是计算能力 6.2 设备

sm_XY 对应于“物理”或“真实”架构

compute_ZW 对应"virtual" architecture

并非所有 sm_XY 都有对应的 compute_XY

例如,没有compute_21(虚拟)架构

【讨论】:

    【解决方案2】:

    最简单的方法

    如果您使用的是 cuda 7.x,请使用如下的 nvcc 标志来获得兼容性

    -arch=sm_30 \
    -gencode=arch=compute_20,code=sm_20 \
    -gencode=arch=compute_30,code=sm_30 \
    -gencode=arch=compute_50,code=sm_50 \
    -gencode=arch=compute_52,code=sm_52 
    

    如果您使用的是 cuda 8.x,请设置如下标志:

    -arch=sm_30 \
    -gencode=arch=compute_20,code=sm_20 \
    -gencode=arch=compute_30,code=sm_30 \
    -gencode=arch=compute_50,code=sm_50 \
    -gencode=arch=compute_52,code=sm_52 \
    -gencode=arch=compute_60,code=sm_60 \
    -gencode=arch=compute_61,code=sm_61 \
    -gencode=arch=compute_62,code=sm_62 \
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      • 2019-01-31
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多