【问题标题】:Understanding cuobjdump output了解 cuobjdump 输出
【发布时间】:2020-01-11 01:49:54
【问题描述】:

我已经read about virtual architecture and code generation for nvcc,但我还有一些问题。

我有一个 cuda 编译的可执行文件,其 cuobjdump 输出是

Fatbin elf code:
================
arch = sm_20
code version = [1,7]
producer = cuda
host = linux
compile_size = 64bit

Fatbin ptx code:
================
arch = sm_20
code version = [5,0]
producer = cuda
host = linux
compile_size = 64bit
compressed

我有两个问题:

  1. code version 是什么意思?文档没有这么说。
  2. 这样的可执行文件在带有sm_30 (Kepler) 设备的系统上是否兼容?我相信应该是因为可执行文件中有 PTX 代码,而虚拟架构是 sm_20,即它要求从 Fermi 卡开始提供非常小的一组功能(仍然不确定 code version 的含义)

【问题讨论】:

    标签: linux cuda gpu nvcc ptx


    【解决方案1】:
    1. 代码版本是什么意思?文档没有这么说。

    这表示它正在打印的 fatbin 元素的版本——elf 版本 1.7 和 PTX 版本 5.0(请参阅 here 了解 PTX 版本)

    1. 这样的可执行文件在带有 sm_30 (Kepler) 设备的系统上是否兼容?

    是的。 PTX(版本 5.0)的存在意味着代码可以由驱动程序 JIT 编译到汇编程序以在计算能力 3.0 设备上运行(再次参考文档 here

    【讨论】:

      猜你喜欢
      • 2021-05-26
      • 2017-04-18
      • 2016-12-24
      • 2017-03-09
      • 2011-10-20
      • 2014-01-27
      • 2019-02-26
      • 2011-01-29
      • 2020-01-04
      相关资源
      最近更新 更多