Cubin(cuda 二进制文件)的唯一 ID 是什么
What's the unique id of a Cubin (cuda binary)
对于常见的 elf 二进制文件,可以使用 readelf -n <binary file>
来获得唯一的 build id
,如下所示:
$ readelf -n matrix
Displaying notes found in: .note.gnu.build-id
Owner Data size Description
GNU 0x00000014 NT_GNU_BUILD_ID (unique build ID bitstring)
Build ID: 30935f4bf2ea2d76a53538b28ed7ffbc51437e3c
Displaying notes found in: .note.ABI-tag
Owner Data size Description
GNU 0x00000010 NT_GNU_ABI_TAG (ABI version tag)
OS: Linux, ABI: 3.2.0
但是对于 cuda 二进制文件,又名 cubin,readelf -n
不起作用。那么如何获取一个cubin的唯一id呢?或者一个cubin的唯一id是什么?
For common elf binaries, one could use readelf -n to get the unique build id
事实并非如此。您所说的“build id”是 elf header 的 .note.gnu.build-id
部分,它由 gnu 链接器 ld
的特定功能填充,并且(启用时)创建elf 部分内容中该注释字段的一些标识位。据我所知,生成的 ID 值不是唯一的,因为包含相同代码的两个文件将散列为相同的 ID。如果您使用另一个链接器,则该字段未填充(LLD 链接器 clang 使用肯定没有,我上次检查时)
So how to get the unique id of a cubin? Or what's the unique id of a cubin?
没有一个。 NVIDIA elf headers 不包含 .notes
部分并且生成的 elf 文件未与 GNU 链接器链接,它们与 nvlink
链接并且没有相同的ID 功能,据我所知。
对于常见的 elf 二进制文件,可以使用 readelf -n <binary file>
来获得唯一的 build id
,如下所示:
$ readelf -n matrix
Displaying notes found in: .note.gnu.build-id
Owner Data size Description
GNU 0x00000014 NT_GNU_BUILD_ID (unique build ID bitstring)
Build ID: 30935f4bf2ea2d76a53538b28ed7ffbc51437e3c
Displaying notes found in: .note.ABI-tag
Owner Data size Description
GNU 0x00000010 NT_GNU_ABI_TAG (ABI version tag)
OS: Linux, ABI: 3.2.0
但是对于 cuda 二进制文件,又名 cubin,readelf -n
不起作用。那么如何获取一个cubin的唯一id呢?或者一个cubin的唯一id是什么?
For common elf binaries, one could use readelf -n to get the unique build id
事实并非如此。您所说的“build id”是 elf header 的 .note.gnu.build-id
部分,它由 gnu 链接器 ld
的特定功能填充,并且(启用时)创建elf 部分内容中该注释字段的一些标识位。据我所知,生成的 ID 值不是唯一的,因为包含相同代码的两个文件将散列为相同的 ID。如果您使用另一个链接器,则该字段未填充(LLD 链接器 clang 使用肯定没有,我上次检查时)
So how to get the unique id of a cubin? Or what's the unique id of a cubin?
没有一个。 NVIDIA elf headers 不包含 .notes
部分并且生成的 elf 文件未与 GNU 链接器链接,它们与 nvlink
链接并且没有相同的ID 功能,据我所知。