# bpftime
[[eunomia-bpf]] が開発するユーザ空間 [[eBPF]] ランタイム(`github.com/bpftime/bpftime`)。([[@2026__eunomia.dev__eBPF × AI-LLMs - The Convergence of System Observability and AI]])
- カーネルを介さずユーザ空間で eBPF プログラムを実行し、uprobe 等のオーバーヘッドを下げる。
- **eGPU**(eBPF バイトコードを PTX/SPIR-V 注入で GPU へオフロード、ACM HCDS'25 / DOI:10.1145/3723851.3726984)を main ブランチに統合済み。eBPF をカーネル/ユーザ空間に加え **GPU** という第 3 の実行ターゲットへ広げる方向を示す。eGPU は bpftime のユーザ空間 eBPF ランタイムを基盤に、[[PTX 注入]]で稼働中の GPU カーネルへ計装を注入する。(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]])
- CPU 側 CUDA API トレースを越えて GPU 内部動作を観測する次のステップとして、[[@2026__eunomia.dev__CUDA Events - eBPF-based CUDA API Tracing]] でも参照されている。(Source: [[@2026__eunomia.dev__CUDA Events - eBPF-based CUDA API Tracing]])
- OSDI'25 では、bpftime を拡張の安全性と相互接続性を細粒度に指定する Extension Interface Model([[EIM]])の実装基盤として定式化した。eBPF スタイルの検証、Intel MPK などのハードウェア支援プロセス内隔離、動的バイナリ書き換え(隠蔽拡張入口)を組み合わせ、Nginx 拡張でネイティブの 2% オーバーヘッドを達成する。(Source: [[@2025__OSDI__Extending Applications Safely and Efficiently]])
- GPU 対応の実装は `nv_attach_impl` パイプラインとして具体化されており、カーネル入口/出口/メモリキャプチャの 3 アタッチ型、GPU メモリ常駐の専用マップ(array/ringbuf)、ナノ秒精度ヘルパー関数群、ホスト-GPU 間のスピンロック通信プロトコルを持つ。NVBit 比 3-10 倍高速と主張され、NVIDIA/AMD/Intel の複数ベンダーを対象とする。(Source: [[@2025__eunomia.dev__bpftime GPU Support - CUDA and ROCm eBPF Attachment]])
- [[@2025__eunomia.dev__eBPF Tutorial by Example - Monitoring GPU Driver Activity with Kernel Tracepoints]] は、bpftime/eGPU の GPU 内部計装より一段外側にある GPU ドライバ層の観測を扱う。DRM スケジューラのジョブ状態や NVIDIA の Xid を eBPF で取得し、GPU 内部のワープ・メモリアクセスは別途 GPU 側計装が必要だと整理する。(Source: [[@2025__eunomia.dev__eBPF Tutorial by Example - Monitoring GPU Driver Activity with Kernel Tracepoints]])
## 未編纂の観察
- [NCCL への応用] NCCLbpf([[@2026__arXiv__NCCLbpf - Verified, Composable Policy Execution for GPU Collective Communication]])は bpftime を NCCL の集団通信プラグイン ABI(tuner/profiler/net)に組み込み、GPU 内部の PTX 注入([[eGPU]])とは異なる適用先として、GPU 間通信ライブラリの意思決定ロジックを検証済み eBPF ポリシーへ置き換える用途を実証した。8x B300 NVLink 上で tuner の意思決定あたり 80–130ns のオーバーヘッド(集団通信レイテンシの 0.03% 未満)で動作する。(Source: [[@2026__arXiv__NCCLbpf - Verified, Composable Policy Execution for GPU Collective Communication]])
## 関連
- 本ソース: [[@2026__eunomia.dev__eBPF × AI-LLMs - The Convergence of System Observability and AI]] / [[@2025__HCDS__eGPU - Extending eBPF Programmability and Observability to GPUs]] / [[@2026__eunomia.dev__CUDA Events - eBPF-based CUDA API Tracing]] / [[@2025__eunomia.dev__eBPF Tutorial by Example - Monitoring GPU Driver Activity with Kernel Tracepoints]] / [[@2025__eunomia.dev__The GPU Observability Gap - Why We Need eBPF on GPU devices]] / [[@2025__OSDI__Extending Applications Safely and Efficiently]] / [[@2025__eunomia.dev__bpftime GPU Support - CUDA and ROCm eBPF Attachment]]
- 開発元: [[eunomia-bpf]] / [[Yusheng Zheng]]
- 関連概念: [[eBPF]] / [[eGPU]] / [[PTX 注入]] / [[GPU観測性]] / [[CUDA API トレース]] / [[uprobe]]
- 関連ソース: [[@2026__arXiv__NCCLbpf - Verified, Composable Policy Execution for GPU Collective Communication]]