在 DeepSeek Harness (DSH) 的开发与调试过程中,针对 AMDGPU(ROCm)的模型推理管线,直接分析编译后的二进制文件(HSACO 或 ELF)通常需要掌握底层的汇编语法。为了解决这个问题,开发者需要一个能够将二进制文件转化为结构化数据的工具。
下面介绍 dsh-plugin-amdgpu-inspect,这是一个由 yujiaoliang 维护的 DeepSeek Harness 插件,旨在提供结构化的 AMDGPU code-object 和 ISA 检查能力。
插件简介¶
该插件将现有的 AMDGPU ELF 或 HSACO 文件转换为 JSON 格式,供智能体查询。它主要处理编译产物,报告编译器产生的元数据和指令流,而不涉及代码执行或性能预测。
核心功能¶
插件主要提供以下能力:
- 二进制转换:将 ELF 或 HSACO 文件转换为 JSON。
- 内核列表与元数据:列出内核并报告公共代码对象元数据及指令类别计数。
- 指令流查询:查询内核的标准化指令流,支持通过游标分页获取指令片段。
- Kernel X-Ray Skill:提供用于编译和假设形成的技能层。
安装与启用¶
使用该插件需要满足以下环境要求:
* Linux 操作系统
* DeepSeek Harness developer preview
* ROCm LLVM 工具(需位于 /opt/rocm/llvm/bin 或在 PATH 环境变量中)
安装命令如下:
dsh plugin --profile web add github:yujiaoliang/dsh-plugin-amdgpu-inspect
dsh --profile web
典型用法¶
1. 列出内核¶
获取文件中的所有内核及其元数据:
{ "path": "/tmp/vector-add.hsaco" }
2. 查询指令流¶
查询特定内核的标准化指令流,支持限制指令数量和过滤操作码:
{
"path": "/tmp/vector-add.hsaco",
"kernel": "vector_add",
"opcodes": ["scratch_*", "s_waitcnt"],
"cursor": 0,
"limit": 40
}
查询结果包含地址、操作码、操作数、类别以及当有更多匹配时返回的 nextCursor。
适用场景与注意¶
- 适用场景:适合在 DSH 环境中需要分析 AMDGPU 编译输出、调试汇编逻辑或进行静态代码审查的场景。
- 安全性边界:此版本直接在 DSH 主机上调用 LLVM 并读取工件。它不继承部署的虚拟文件系统或子进程提供程序,因此应将其视为基于主机的访问。插件不会将工件加载到 HSA 运行时或执行 GPU 代码。
- 已知限制:
- 输入文件大小限制为 256 MiB。
- 仅报告静态事实,不执行 GPU 代码或预测性能。
- 不支持解析历史或未来的 LLVM 输出拼写。
- 当前版本不支持解析内核参数、符号、重定位、控制流图和二进制编码。
总结¶
dsh-plugin-amdgpu-inspect 是 DeepSeek Harness 生态中用于分析 AMDGPU 二进制文件的工具。它通过标准化接口将复杂的 ELF/HSACO 结构转化为 JSON,帮助开发者在不执行代码的情况下获取静态事实。