# PTX 注入
## 定義
PTX(Parallel Thread Execution)注入とは、NVIDIA GPU の中間アセンブリ表現である PTX コードに対し、ランタイムで計装コードを動的に挿入する技術。ソースコードの再コンパイルやカーネル再起動を要せず、稼働中の GPU カーネルに追加のロジック(タイムスタンプ取得、メモリアクセス記録、スレッドインデックス収集等)を注入できる。[[bpftime]] の eGPU 実装では、eBPF バイトコードを PTX に JIT コンパイルして注入する。(Source: [[@2025__HCDS__eGPU - Extending eBPF Programmability and Observability to GPUs]], [[@2025__eunomia.dev__The GPU Observability Gap - Why We Need eBPF on GPU devices]])
## 横断的知見
- **PTX 注入は「非侵入・実行時」という軸でコンパイル時計装と対置される**: [[@2024__TOPC__Low-Overhead Trace Collection and Profiling on GPU Compute Kernels]] は LLVM パスを使ったコンパイル時計装で低オーバーヘッドを実現する。対照的に PTX 注入はバイナリレベルで稼働中カーネルを書き換えるため、既存バイナリへの適用や本番環境での動的切り替えが可能になるが、注入自体の安全性検証が別途必要となる。(Source: [[@2024__TOPC__Low-Overhead Trace Collection and Profiling on GPU Compute Kernels]], [[@2025__HCDS__eGPU - Extending eBPF Programmability and Observability to GPUs]])
- **PTX 注入は NVBit 系のアセンブリ計装と抽象度が異なる**: NVBit/NEUTRINO は SASS/アセンブリレベルで計装するのに対し、bpftime の PTX 注入は中間表現レベルで eBPF プログラムを JIT する。これによりアセンブリ詳細を隠蔽しつつ、ベンダー非依存の SPIR-V 注入へ拡張可能な余地を持つ。(Source: [[@2025__eunomia.dev__The GPU Observability Gap - Why We Need eBPF on GPU devices]])
- **PTX 注入は GPU 観測性の第 3 層を担う**: CUDA API 層・GPU ドライバ層に加え、GPU 内部層を観測する手段として位置づけられる。非同期実行時の各フェーズタイミングやワープ/スレッド単位の挙動を、ホスト側からではなくデバイス内部の基準で取得できる。(Source: [[@2025__YAPC Fukuoka 2025__SREのためのテレメトリ技術の探究]])
## 未解決の問い
- PTX 注入と SASS レベル計装のオーバーヘッド差は、ワークロードによってどう変動するか。
- SPIR-V 注入を AMD/Intel GPU で実用化する際、PTX とどのような抽象度の違いが生じるか。
- 注入コードが SIMT 実行モデルやメモリ一貫性に与える影響を verifier やテストでどう保証するか。
## 関連
- ソース: [[@2025__HCDS__eGPU - Extending eBPF Programmability and Observability to GPUs]] / [[@2025__eunomia.dev__The GPU Observability Gap - Why We Need eBPF on GPU devices]]
- エンティティ: [[bpftime]] / [[NVIDIA]] / [[AMD]] / [[Intel Corporation]] / [[NVBit]]
- 概念: [[eGPU]] / [[GPU観測性]] / [[CUDA]] / [[動的計装]] / [[ハードウェアカウンタ]]
- 関連 MOC: [[AI Infra Telemetry - MOC]]