# スマートNICオフロード スマートNICオフロード(Smart NIC Offload)とは、プログラマブルなネットワークインターフェースカード(スマートNIC)の演算資源(専用プロセッサコア、SRAM、P4パイプライン等)を活用して、従来ホストCPUが担っていたネットワーク処理の一部または全部をNIC側で実行する設計手法である。全スタックオフロード(TOE: TCP Offload Engine)から部分的な固定機能オフロード(TSO/LRO等)まで多段階が存在する。AccelTCP(Moon ほか、NSDI 2020)はコネクション管理とパケットリレーのみを選択的にオフロードする「ステートフルオフロード」の中間的アプローチを提案した。(Source: [[@2020__NSDI__AccelTCP - Accelerating Network Applications with Stateful TCP Offloading]]) ## 定義 スマートNICオフロードには以下の主要形態がある: 1. **部分的固定機能オフロード(Partial Fixed Offload)**: TSO(TCP Segmentation Offload)・LRO(Large Receive Offload)・チェックサム計算。大メッセージのDMAコストとCPU割り込み回数を削減する。短命コネクション・小メッセージには効果薄。 2. **フルスタックTOE(Full Stack TOE)**: TCPスタック全体をNICに移植。カーネルスタックの侵襲的変更が必要でバグ修正・アルゴリズム変更が困難。現在はほぼ採用されない。 3. **選択的ステートフルオフロード(Selective Stateful Offload)**: AccelTCP が提案する中間形態。ホストが制御の主導権を維持しつつ、ステートフル操作の特定サブセット(コネクション確立・切断・スプライシング)のみをNICにオフロードする。 4. **ネットワーク機能オフロード(NF Offload)**: OvS・BPFフィルタ・キーバリューストア等を直接NICで実行。 5. **歴史的な「振り子」としてのSmartNIC(第二のSmartNIC時代)**: 1990年代は「単一アプリケーションに毎秒1ギガビットを届ける」という目標に対しトランスポートプロトコルの最適解が未確定だったため、最大限の柔軟性を持つプログラム可能なNIC(複数CPU+当時最大級のFPGA)が合理的だった。2000年代にTCP/IPが数十Gbpsのトラフィックを問題なく捌けることが実証されると、プロトコルは固定化しNICも固定機能へ回帰した。2010年代にSDN・ネットワーク仮想化・ソフトウェア定義ストレージでネットワーキングが再び動的になると、固定機能NICでは不利になる場面が増え、ソフトウェアの頻度で更新可能な柔軟性の高いNIC(著者はこれを「第二のSmartNIC時代」と呼ぶ)が再び求められるようになった。(Source: [[@2026__LambdaNote__ネットワークシステムについて語るときに我々の語ること - Chapter 10 SmartNIC、IPU、DPU]] ch.10 §10.1) 6. **IPU/DPUにおける汎用性と特化のバランス**: IPU(Intel)やDPU(NVIDIA・Pensando)は、固定機能NIC→SmartNIC→DPU/IPUという系譜の最新世代であり、「汎用のCPUから特化型のオフロードエンジンへ機能を移す」動きと「オフロード用エンジン自体を汎用化する」動きがせめぎ合ってきた30年来の力学の延長線上にある。仮想スイッチのような複合機能をオフロードする際にはエンジンが完全にプログラム可能でなければならず、機能の90%しか移せなければ残り10%のCPU処理が依然としてボトルネックになるため、部分的なオフロードでは不十分である。(Source: ch.10 §10.2) ## 横断的知見 - **TCP プロトコル適合オーバーヘッドは「根本的なCPUサイクル浪費」**: 短命コネクションでは接続確立・切断がCPUサイクルの60.5%を占め、L7プロキシではDMA転送が性能の3.2〜6.3倍劣化要因となる。カーネルバイパス(DPDK/mTCP)でも解決できない問題の構造 (Source: [[@2020__NSDI__AccelTCP - Accelerating Network Applications with Stateful TCP Offloading]], §2) - **スマートNICの進化がステートフルオフロードを可能にした**: 2014年頃のスマートNIC(複数コア・大容量メモリ・C/P4プログラミング対応)の登場で、従来「複雑すぎる」とされたコネクション管理オフロードが現実的になった。Agilio LX(NFP-6480、120コア、8MB IMEM + 8GB EMEM)が実証プラットフォーム (Source: [[@2020__NSDI__AccelTCP - Accelerating Network Applications with Stateful TCP Offloading]], §2.3) - **TCBの単独所有権原則が状態一貫性問題を解決**: 2スタック間でのTCB共有が一貫性問題を引き起こすことへの対処として、任意時点で一方のみがTCBを所有し、オフロード要求と同時に所有権を移転する設計が有効 (Source: [[@2020__NSDI__AccelTCP - Accelerating Network Applications with Stateful TCP Offloading]], §3) - **BlueField-3 は計測特化の後継プラットフォーム**: [[BlueField-3]] (NVIDIA)はDPA(Data-Path Accelerator)を搭載し、Pulse(ASPLOS 2026)ではマイクロ秒レベルのRDMA計測基盤として活用される。AccelTCP(2020)→BlueField-3系研究(2026+)でスマートNIC適用領域がネットワーク処理オフロードから計測・観測性へ拡大 (Source: [[@2026__ASPLOS__Pulse - Fine-grained and Non-intrusive LLM Training Monitoring via Microsecond-level Traffic Measurement]]) - **TASはNICへ固定する前のソフトウェア分割案を示す**: TASは共通処理を専用CPU上のfast pathへ移し、変更頻度の高い輻輳制御や管理をホストCPUのslow pathへ残す。論文はこの分割を、将来NICへfast pathをオフロードしつつ、複雑な制御をソフトウェアに残す設計の手掛かりとして位置づける。(Source: [[@2019__EuroSys__TAS - TCP Acceleration as an OS Service]]) - **IPUの完全プログラム可能性の要求は、AccelTCPの「選択的ステートフルオフロード」の限界を裏返しに示す**: AccelTCPはコネクション確立・切断・スプライシングという独立した操作のサブセットだけをNICにオフロードし、ホストが制御の主導権を保持したまま部分オフロードを成立させる設計だった。一方、第10章(ch.10 §10.2)は仮想スイッチのような相互依存した処理パイプラインでは事情が異なると指摘する。仮想スイッチ全体を実装するのに十分な汎用性がないNICだと一部の機能しかオフロードできず、残りのCPU処理がボトルネックとして残ってしまう。両者を並べると、オフロードの単位をどこまで分割してよいかは、対象機能が独立した操作の集合か、相互依存した処理パイプラインかという性質に依存することが分かる。(Source: [[@2020__NSDI__AccelTCP - Accelerating Network Applications with Stateful TCP Offloading]], [[@2026__LambdaNote__ネットワークシステムについて語るときに我々の語ること - Chapter 10 SmartNIC、IPU、DPU]]) - **TASのfast/slow path分割は、SmartNICの「第二の時代」への回帰と同じ歴史的圧力から生まれている**: TAS(2019, EuroSys)は共通処理を専用CPU上のfast pathへ、輻輳制御などの変更頻度の高い制御をホストCPU上のslow pathへ残す設計を提案した。これは第10章が描く、SDN・ネットワーク仮想化の台頭で「NICの機能を完全には固定機能ハードウェアに委ねられない」ことが判明し始めた2010年代の力学(ch.10 §10.1)と同じ時代背景を持つ。TASはOS層のTCPスタック分割という粒度で、ch.10はハードウェア世代の変遷という粒度で、いずれもオフロードすべき機能とホストに残すべき機能の境界を明示する必要性を裏づけている。(Source: [[@2019__EuroSys__TAS - TCP Acceleration as an OS Service]], [[@2026__LambdaNote__ネットワークシステムについて語るときに我々の語ること - Chapter 10 SmartNIC、IPU、DPU]]) - [DPAによるパケット粒度制御プレーンのオフロード] SCR([[@2025__NSDI__White-Boxing RDMA with Packet-Granular Software Control]])は、BlueField-3のDPA(Datapath Accelerator、256ハードウェアスレッド・RISC-V・Run-to-Completion実行)をRDMAトランスポートの制御プレーン専用基盤として用いる。DPAは1スレッドあたりの計算能力がARMコアの1/16程度で、実行時スレッド生成や汎用IPCを欠くRTOS上で動作するため、ホストCPU/DPU ARMをプロセス起動・メールボックス仲介のエージェントとして併用する必要がある——SmartNICオフロードにおけるon-path wimpy coreの制約とホスト協調の必要性を具体的に示す事例である。(Source: [[@2025__NSDI__White-Boxing RDMA with Packet-Granular Software Control]]) - [DPUとRNICを分離したオフロード設計] Pegasusは、伝統的にDPUへ統合されがちなRNIC機能をあえて分離し、DPUをGPUサーバ内の内側制御プレーンに、RNICをテナントRDMAトラフィック専用のデータプレーンに役割分担させた。DPU-RNIC間はPCIe上のCSRインタフェースを流用した専用P2Pチャネルプロトコルと状態機械で通信量を最小化している(Source: [[@2026__SIGCOMM__Pegasus - A Data Center Network for Bare-Metal AI Cloud]])。 ## 未解決の問い - ステートフルオフロードはAIクラスタのRDMAトランスポート(RoCEv2)と組み合わせてどのような相乗効果をもたらすか?AccelTCPは標準TCP向けだが、RDMAオフロード([[RDMA]])との設計的類似点・相違点は何か? - スマートNICの計算コスト($1,750 vs $440 通常NIC)はどのように変化しているか?2024年時点でのBlueField-3($500〜1,000程度)の普及により、コスト効率の議論はどう変わるか? - P4 プログラマブルパイプラインとCコード実装の最適な分担点はどのワークロードでも有効か?AccelTCPの「P4でL3フォワーディング、CでステートフルTCP」という分割が一般化できる設計原則かどうか。 - Kernel 6.x のio_uring、XDP(eXpress Data Path)とステートフルNICオフロードはどう棲み分けるか? - IPU/DPUの完全プログラム可能性の要求(ch.10 §10.2)とAccelTCPの選択的部分オフロード(コネクション確立・切断のみ)は、どのような機能クラスの違いで使い分けるべきか。仮想スイッチのような相互依存した処理パイプラインと、コネクション管理のような独立操作の集合とで、最適なオフロード粒度の判断基準は何か。 ## 関連 - [[@2020__NSDI__AccelTCP - Accelerating Network Applications with Stateful TCP Offloading]] — 定義の一次ソース - [[BlueField-3]] — 後継スマートNICプラットフォーム(計測特化) - [[RDMA]] — NICからのメモリアクセスオフロードの別系統 - [[Webロードバランシング]] — L7プロキシはAccelTCPの主要適用ユースケース - [[eBPF]] — ホスト側カーネル内プログラマブル処理の補完技術 - [[Intel IPU]] — 「完全にプログラム可能なオフロードエンジン」を体現する現代のIPU製品 - [[ネットワーク仮想化]] — 仮想スイッチがオフロード対象候補になる文脈 - [[ドメイン固有アーキテクチャ]] — IPU/DPUを「特化しつつ柔軟なプロセッサ」の系譜として位置づける上位概念 - ソース: [[@2025__NSDI__White-Boxing RDMA with Packet-Granular Software Control]] / [[@2026__SIGCOMM__Pegasus - A Data Center Network for Bare-Metal AI Cloud]] ## 出典 - [[@2020__NSDI__AccelTCP - Accelerating Network Applications with Stateful TCP Offloading]] — Moon, Lee, Jamshed, Park / KAIST / Intel Labs / NSDI 2020 - [[@2026__LambdaNote__ネットワークシステムについて語るときに我々の語ること - Chapter 10 SmartNIC、IPU、DPU]] — Larry Peterson・Bruce Davie 著, 進藤資訓 訳, ラムダノート, 2026, 第10章