# CUDA API トレース
## 定義
CUDA API トレース(CUDA API tracing)とは、[[CUDA]] ランタイムライブラリ `libcudart.so` やドライバ API の呼び出しを傍受し、GPU アプリケーションのメモリ割当・データ転送・カーネル起動・同期・デバイス操作を外部から可視化する手法である。ソースコード改変やプロプライエタリプロファイラへの依存を避けるため、eBPF の [[uprobe]] が頻繁に使われる。(Source: [[@2026__eunomia.dev__CUDA Events - eBPF-based CUDA API Tracing]])
## 横断的知見
- **CPU 側傍受は「リクエスト単位」の観測であり、GPU 内部の実行詳細とは異なるレイヤー**: eBPF uprobe による CUDA API トレースは、`cudaLaunchKernel` の発行時刻や引数を捉えられるが、実際の SM 占有率・ワープ分岐・メモリアクセスは見えない。このため、ホスト側トレース(eInfer/ProfInfer/eunomia-bpf tutorial)とデバイス内計装(eGPU/bpftime)は補完的な 2 層として整理される。(Source: [[@2026__eunomia.dev__CUDA Events - eBPF-based CUDA API Tracing]], [[@2025__eBPF__eInfer - Unlocking Fine-Grained Tracing for Distributed LLM Inference with eBPF]], [[@2025__HCDS__eGPU - Extending eBPF Programmability and Observability to GPUs]])
- **CUDA API トレースのオーバーヘッドは実用上無視できる水準に達しつつある**: eunomia-bpf の実装例では 1,024 KiB・10,000 イテレーションのベンチマークで、CUDA API 呼び出しあたり約 2 µs の追加レイテンシを報告している。eInfer では 4% 未満、ProfInfer では 5% 未満の速度低下という独立した実装群も同様の低オーバーヘッドを主張する。(Source: [[@2026__eunomia.dev__CUDA Events - eBPF-based CUDA API Tracing]], [[@2025__eBPF__eInfer - Unlocking Fine-Grained Tracing for Distributed LLM Inference with eBPF]], [[@2026__arXiv__ProfInfer - An eBPF-based Fine-Grained LLM Inference Profiler]])
- **トレース対象関数がライフサイクルをカバーする**: メモリ管理(`cudaMalloc`/`cudaFree`)、転送(`cudaMemcpy`)、カーネル起動(`cudaLaunchKernel`)、ストリームとイベント、デバイス選択の 5 グループを計測することで、GPU 利用の入出力パターンを再構成できる。(Source: [[@2026__eunomia.dev__CUDA Events - eBPF-based CUDA API Tracing]])
- **非同期境界を越えるためには、ストリーム・イベントとの相関が必要**: CUDA API トレースは enter/exit の時系列を出すが、非同期実行の完了順序や依存関係を正しく解釈するには、ストリームハンドルやイベントハンドルの識別が不可欠である。(Source: [[@2026__eunomia.dev__CUDA Events - eBPF-based CUDA API Tracing]])
## 未解決の問い
- CUDA API トレースのイベントを、[[分散トレーシング]]のスパンや ML フレームワークの演算子履歴と自動的に結合する識別子は何か。
- ホスト側 API トレースだけで、GPU 内部のボトルネック(メモリアクセス非連続化、スレッドダイバージェンス)をどの程度推定できるか。
- 大規模 GPU クラスタ([[GPUクラスタ運用]])で、全プロセスの CUDA API トレースを常時収集した場合のオーバーヘッドとストレージコストはどう見積もるか。
## 関連
- 概念: [[CUDA]] / [[eBPF]] / [[uprobe]] / [[GPU観測性]] / [[動的計装]] / [[リングバッファ]]
- エンティティ: [[eunomia-bpf]] / [[bpftime]] / [[libbpf]] / [[NVIDIA]]
- ソース: [[@2026__eunomia.dev__CUDA Events - eBPF-based CUDA API Tracing]] / [[@2025__eBPF__eInfer - Unlocking Fine-Grained Tracing for Distributed LLM Inference with eBPF]] / [[@2025__HCDS__eGPU - Extending eBPF Programmability and Observability to GPUs]] / [[@2026__arXiv__ProfInfer - An eBPF-based Fine-Grained LLM Inference Profiler]]
- 関連 MOC: [[AI Infra Telemetry - MOC]]