このページで得られる理解:hipBLASLt は LLM 推論で直接呼ばれているのか——ロードは確認済み、呼び出しは未確定。その理由と証拠の限界を記録する。
What you'll gain here: Is hipBLASLt directly called during LLM inference? Loading is confirmed; actual invocation is unresolved. This page records why and where the evidence runs out.
/proc/maps に記録されており、Ollama runner 実行時にロードされている(Phase C 確認)。NEEDED に libhipblaslt.so.0 が含まれており、librocblas.so.4 → libhipblaslt.so.0 の依存エッジが確認されている。hipblasLt* 呼び出しサイトはなく、hipBLAS 経由の間接呼び出しが唯一の候補。Architectures.py に gfx900 / gfx942 / gfx1201 すべてが登録されており、世代間のサポート範囲は Tensile 本体と同等。/proc/maps on the RX9070XT, confirming it is loaded during Ollama runner execution (Phase C confirmed).libhipblaslt.so.0 is in rocBLAS's NEEDED entries — the librocblas.so.4 → libhipblaslt.so.0 dependency edge is confirmed.hipblasLt* call sites; indirect invocation via hipBLAS is the only candidate.Architectures.py registers gfx900 / gfx942 / gfx1201 — generation coverage matches Tensile proper.hipBLASLt は rocBLAS と並列に位置する特化 GEMM ライブラリです。backend に TensileLite(Tensile の軽量版)を持ち、activation fusion・sparse GEMM などの拡張機能を提供します。ggml-hip の現行ソースでは直接の hipblasLt* 呼び出しサイトは主たる dispatch 経路に現れていませんが、rocBLAS 内部依存により常にロードされます。
hipBLASLt is a specialized GEMM library positioned alongside rocBLAS. Its backend is TensileLite (a lightweight Tensile variant), providing extended features like activation fusion and sparse GEMM. In the current ggml-hip source, direct hipblasLt* call sites do not appear in the primary dispatch path, but it is always loaded due to the internal rocBLAS dependency.
→ 次の問い:「ロードされている」≠「呼ばれている」。では hipBLASLt は実際に LLM 推論で使われているのか?
→ Next question: "Loaded" ≠ "called." So is hipBLASLt actually used in LLM inference?
観測ポイント:hipBLASLt の TensileLite バックエンドがどの世代をサポートするか。
ソース:hipBLASLt リポジトリ / tensilelite/Tensile/Common/Architectures.py(line 32–63)
Observation point: Which generations are supported by hipBLASLt's TensileLite backend.
Source: hipBLASLt repository / tensilelite/Tensile/Common/Architectures.py (lines 32–63)
| 世代Generation | GFX | architectureMap コード名architectureMap codename | xnack バリアントxnack variants | 世界観Worldview |
|---|---|---|---|---|
| GCN5 / MI25 | gfx900 |
"vega10"(line 36) |
なしNone | 登録済み。ggml-hip custom kernel なし → BLAS 経路が主Registered. No ggml-hip custom kernels → BLAS path is primary |
| RDNA4 / RX9070XT | gfx1201 |
"gfx1201"(line 63) |
なしNone | ロード確認済み、直接呼び出しは未確定Load confirmed; direct call unresolved |
| CDNA4 / MI300X | gfx942 |
"aquavanjaram"(line 46) |
gfx942:xnack+ / gfx942:xnack-(line 70) |
本命経路。hipBLASLt の直接利用が最も見込まれる世代Primary path. Most likely generation where hipBLASLt is directly used |
architectureMap に登録されており、Tensile 本体と同等のカバレッジ。ただし「登録済み」は「LLM 推論で直接使われる」を意味しない。
gfx900 / gfx942 / gfx1201 are all registered in TensileLite's architectureMap, matching Tensile proper in coverage. However, "registered" does not mean "directly used in LLM inference."
hipBLASLt リポジトリ の TensileLite サブディレクトリに gfx1201 参照が 250 超含まれており、sparse GEMM テスト構成等で明示的に参照されている(ソース確認)。/usr/local/lib/ollama/rocm/ に libhipblaslt.so.0.10.60303 が存在(Phase C bundle scan)。/proc/<runner>/maps に libhipblaslt.so.0.10.60303 が記録されており、実行時ロードを確認。readelf -d /usr/local/lib/ollama/rocm/librocblas.so.4 の直接 NEEDED に libhipblaslt.so.0 が含まれる(librocblas.so.4 → libhipblaslt.so.0 依存エッジ確認)。vendors/hip.h が remapping する API 群(cublasGemmEx 等)は hipBLAS を向いており、hipBLASLt の直接 call site はソース上で未確認。hipBLASLt repository's TensileLite subdirectory contains over 250 gfx1201 references, with explicit references in sparse GEMM test configurations (source-confirmed).libhipblaslt.so.0.10.60303 exists under /usr/local/lib/ollama/rocm/ on the RX9070XT live machine (Phase C bundle scan)./proc/<runner>/maps after Phase C fresh runner startup records libhipblaslt.so.0.10.60303, confirming runtime load.readelf -d /usr/local/lib/ollama/rocm/librocblas.so.4 shows libhipblaslt.so.0 in direct NEEDED entries — the librocblas.so.4 → libhipblaslt.so.0 dependency edge is confirmed.vendors/hip.h (e.g., cublasGemmEx) targets hipBLAS; no direct hipBLASLt call sites confirmed in source.| 示せることCan Show | 示せないことCannot Show |
|---|---|
| 実行時ロードの確認(/proc/maps, readelf NEEDED)Runtime load confirmed (/proc/maps, readelf NEEDED) | LLM 推論中に実際に call された証拠がないNo evidence of actual calls during LLM inference |
| TensileLite Architectures.py による全 3 世代の登録確認All 3 generations registered in TensileLite Architectures.py | dispatch-safe observer なしには、hipBLASLt が rocBLAS 内部で呼ばれているかを確認できないWithout a dispatch-safe observer, cannot confirm if hipBLASLt is called inside rocBLAS |
| ggml-hip ソース上に直接 call site がないことAbsence of direct call sites in ggml-hip source | 「呼ばれていない」の証明にはならない——indirect 経路の可能性が残るThis does not prove it is never called — indirect paths remain possible |
NEEDED に持つ側の詳細NEEDED