gpt4 book ai didi

c++filt 对 PTX 文件中的一些损坏名称不够积极

转载 作者:行者123 更新时间:2023-11-30 02:29:51 24 4
gpt4 key购买 nike

我正在通过 c++filt 过滤我编译的 PTX,但它只删除了一些名称/标签并保留了一些原样。例如,这个:

func  (.param .b32 func_retval0) _ZN41_INTERNAL_19_gather_bits_cpp1_ii_56538e7c6__shflEiii(
.param .b32 _ZN41_INTERNAL_19_gather_bits_cpp1_ii_56538e7c6__shflEiii_param_0,
.param .b32 _ZN41_INTERNAL_19_gather_bits_cpp1_ii_56538e7c6__shflEiii_param_1,
.param .b32 _ZN41_INTERNAL_19_gather_bits_cpp1_ii_56538e7c6__shflEiii_param_2
)

被分解成这样:

.func  (.param .b32 func_retval0) _INTERNAL_19_gather_bits_cpp1_ii_56538e7c::__shfl(int, int, int)(
.param .b32 _ZN41_INTERNAL_19_gather_bits_cpp1_ii_56538e7c6__shflEiii_param_0,
.param .b32 _ZN41_INTERNAL_19_gather_bits_cpp1_ii_56538e7c6__shflEiii_param_1,
.param .b32 _ZN41_INTERNAL_19_gather_bits_cpp1_ii_56538e7c6__shflEiii_param_2
)

而不是至少这个:

.func  (.param .b32 func_retval0) _INTERNAL_19_gather_bits_cpp1_ii_56538e7c::__shfl(int, int, int)(
.param .b32 _ZN41_INTERNAL_19_gather_bits_cpp1_ii_56538e7c::__shfl(int, int, int)_param_0,
.param .b32 _ZN41_INTERNAL_19_gather_bits_cpp1_ii_56538e7c::__shfl(int, int, int)_param_1,
.param .b32 _ZN41_INTERNAL_19_gather_bits_cpp1_ii_56538e7c::__shfl(int, int, int)_param_2
)

我意识到 c++filt 没有明确支持 CUDA PTX;但请注意,未分解名称与示例中已分解名称的不同之处仅在于添加了 _param_0_param_1 等后缀(还有一个问题是这些名称的前缀如何应该被分解,但让我们忘记它)。

  • 我可以做些什么来强制 c++filt 也适用于参数名称/标签吗?更一般地说,对于 PTX 文件中所有损坏的 C++ 名称?
  • 除了它已有的“格式”之外,是否可以/容易地通过了解 CUDA“格式”来增强 c++filt ([-s|--format {none,auto, gnu,lucid,arm,hp,edg,gnu-v3,java,gnat,dlang}])?
  • 如果 c++filt 不能在这种情况下使用或调整使用,我应该如何进行 demangling?

最佳答案

引自documentation

The C++ implementation for device functions follows the Itanium C++ ABI.

c++filt 实现了 Itanium C++ ABI 符号的分解,因此,它可以从 PTX 源或 ELF 对象中分解内核名称和设备函数名称。

但是,您发布的其他符号是 CUDA ABI 符号。 c++filt 不支持这些,因为它不支持 CUDA ABI。它们看起来是否相似无关紧要。如果您真的需要这个,请请求 NVIDIA 将 CUDA ABI 符号的分解器添加到工具链中,就像他们对 ELF 实用程序和其他内部组件所做的那样。

关于c++filt 对 PTX 文件中的一些损坏名称不够积极,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39249151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com