在二进制文件中查找计算和 sm 数字

Finding compute and sm numbers in a binary file

我有一个使用支持 cuda 的功能和 gcc 编译的二进制文件。我想知道二进制文件中包含哪些cuda架构?

我的意思是 sm 并计算兼容性数 -gencode arch=compute_XX,code=sm_XX

NVIDIA 提供二进制实用程序,可以显示 headers 并反汇编 object 文件、库和可执行文件中的二进制有效负载。 cudaobjdump可以这样使用:

$ nvcc -arch=sm_62 -std=c++11 -I ./ main.cu -o main
$ cuobjdump ./main

Fatbin elf code:
================
arch = sm_62
code version = [1,7]
producer = <unknown>
host = linux
compile_size = 64bit

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

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

其中显示了可执行文件中包含的二进制和 PTX 有效载荷。