在 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,幫助開發者在不執行代碼的情況下獲取靜態事實。