## Memo
- [[2025__arXiv__bpftime-super - A GPU observability tool]]のリネーム版?
- ![[Pasted image 20250609152908.png]]
## Memo with LLM
https://claude.ai/chat/1e0bc4d4-33a6-40b7-9134-95567d58b077
### 論文情報
- **論文のタイトル**: eGPU: Extending eBPF Programmability and Observability to GPUs
- **著者と所属**:
- Yiwei Yang (UC Santa Cruz)
- Tong Yu (Eunomia Inc)
- Yusheng Zheng (UC Santa Cruz)
- Andrew Quinn (UC Santa Cruz)
- **カンファレンス/ジャーナル名**: 4th Workshop on Heterogeneous Composable and Disaggregated Systems (HCDS '25)
- **発表年**: 2025年
### 論文概要
本論文では、eBPF(extended Berkeley Packet Filter)の機能をGPUに拡張する初のフレームワーク「eGPU」を提案している。eGPUは動的[[PTX]](Parallel Thread Execution)インジェクションを通じてeBPFバイトコードを実行中のGPUカーネルに直接注入し、低オーバーヘッドでのGPU観測性と動的インストルメンテーションを実現する。この技術により、GPU実行の詳細な可視化と性能分析が可能となり、将来的にはプログラマブルなGPUインフラストラクチャの基盤となることが期待される。
### 詳細解説
#### 問題設定
- **入力**: GPU上で実行されるCUDAカーネル、eBPFプログラムソースコード
- **出力**: GPU実行の詳細な観測データ(メモリアクセスパターン、帯域幅利用率、レイテンシなど)
- **必要なデータ**:
- GPUメモリアクセス操作(LD/ST命令)
- GPU実行時テレメトリデータ
- 共有メモリ領域でのeBPFマップ
既存のGPUインストルメンテーション手法(NVIDIA CUPTI、NVBitなど)は大きなオーバーヘッドを伴い、GPU実行を中断する侵襲的な変更が必要であった。また、eBPFは従来CPU中心のシステムに限定されており、GPU実行モデルへの直接的な拡張ができなかった。
#### 提案手法
eGPUは以下の主要コンポーネントで構成される:
1. **動的PTXインジェクション**: eBPFバイトコードをNVIDIAのPTX中間表現にランタイムでコンパイルし、実行中のGPUカーネルに直接注入
2. **共有メモリ管理**: `boost::managed_shared_memory`を使用してCPU-GPU間でのデータ交換を効率化
3. **同期メカニズム**:
- CPU側: `std::atomic`やBoost interprocessプリミティブ
- GPU側: CUDAアトミック操作とデバイス全体メモリフェンス
4. **セルフモディファイングコード**: ParallelGPU OS (POS)を活用したPTXコード動的変更
メモリ帯域幅の計算式:
```
BW = Σ(i=1 to N) Bytes_i / T_window
```
ここで、`Bytes_i`は第i番目の操作で転送されたバイト数、`N`は観測期間内の総メモリ操作数。
CXL.memシミュレーションにおける実効アクセスレイテンシ:
```
T_access^(CXL) = T_access^(local) + Δt(pattern, BW_curr)
```
#### 新規性
- **世界初のGPU向けeBPFランタイム**: 既存のeBPFフレームワークはCPU専用であり、GPUへの動的インストルメンテーション機能は存在しなかった
- **非侵襲的な動的インジェクション**: NVBitなどの従来手法とは異なり、実行中のGPUカーネルを中断することなくインストルメンテーションを追加・変更・削除可能
- **統合アーキテクチャ**: 既存のeBPFエコシステム(clang、bpftool、libbpfなど)との完全な互換性を保持
- **低オーバーヘッド**: PTX JITコンパイルを活用することで、バイナリレベルでの書き換えよりも大幅に高速化
#### 実験設定
- **ハードウェア環境**:
- CPU: デュアルソケットIntel Xeon E5-2697-v2(48コア、2.7 GHz、30 MB LLC)
- メモリ: 256 GB DDR3 RAM
- GPU: NVIDIA P40
- **評価指標**:
- GPUメモリアクセスレイテンシ
- インストルメンテーションオーバーヘッド
- エンドツーエンドレイテンシ(100回のルックアップ操作)
- **比較対象**: NVBitベースのインストルメンテーション手法(gpumemtrace)
- **ベンチマーク**: 様々なメモリアクセスサイズ(1B~4MB)でのマイクロベンチマーク
#### 実験結果
Figure 2に示されたマイクロベンチマーク結果では:
- **128KB以下のメモリアクセス**: eGPUは安定して低いレイテンシを維持
- **NVBitとの比較**: eGPUは従来のNVBitベースの手法と比較して大幅に低いインストルメンテーションオーバーヘッドを実現
- **128KB超過時**: レイテンシは緩やかに増加するが、依然としてベースラインより低い値を維持
具体的な数値については、論文中のFigure 2のグラフで示されているが、詳細な数値データは表形式では提供されていない。ただし、グラフから読み取れる範囲では、eGPUのレイテンシは概ね1e12ナノ秒のオーダーで推移している。
論文では現在の評価が限定的であることを認めており、大規模機械学習モデルやHPCシミュレーションでの包括的な評価が今後の課題として挙げられている。
## Abstract
GPUの正確な[[Observability|オブザーバビリティ]]とプログラム可能性は、AIワークロードやその他の計算集約型の高性能計算(HPC)アプリケーションのパフォーマンス最適化に不可欠です。本論文では、動的なPTXインジェクションを介してGPUに[[eBPF]]バイトコードを動的にオフロードする最初のフレームワークおよびeBPFランタイムであるeGPUを紹介します。可観測性を主な目的として設計された当システムは、リアルタイムGPUテレメトリ、eBPFベースの動的インストルメンテーション、および自動化されたパフォーマンス分析を活用し、カーネル実行、メモリ転送、異種計算オーケストレーションなど、複数のレイヤーにおけるボトルネックを特定します。これらは、大幅なオーバーヘッドを発生させたり、アクティブなGPUカーネルを中断したりすることなく実現されます。eBPFプログラムをPTXスニペットに動的にコンパイルし、実行中のGPUカーネルに直接注入することで、eGPUは既存のeBPFエコシステムとシームレスに統合される、細粒度で低オーバーヘッドのインストルメンテーションを提供します。初期のマイクロベンチマーク評価では、eGPUが低オーバーヘッドのインストルメンテーションを実現しつつ、高解像度のパフォーマンス洞察を提供することが示されています。最終的に、eGPUは多様な進化するワークロード要件に動的に適応可能なプログラマブルGPUインフラストラクチャへの道を開きます。