世界のスーパーコンピュータとそれを動かす人々


4月 5, 2021

エッジコンピューティングからスーパーコンピューティングまで、セキュアな環境で高速化を実現 NVIDIA DPU

HPCwire Japan

スポンサー記事

NVIDIA BlueField データ プロセシング ユニット (DPU)

サーバのネットワーク,ストレージ,セキュリティーなどの機能をハイパーバイザで仮想化し,ソフトウェアで割り当てを制御するというソフトウェア定義のシステムは,資源の割り当ての自由度が高く,資源の利用率を高められるという利点がある。

NVIDIAがデータセンターサーバの市場でシェアを高めていくためには重要なコンポーネントになっていくと思われる。

NVIDIAのDPU(Data Processing Unit)は,もともとはMellanoxがIPU(I/O Processing Unit)という名称で開発してきたものがベースになっている。しかし,I/Oだけでは範囲が限られるので,NVIDIAはData Processing Unitに名前を変えてBlueField DPUという名前で商品化した。

NVIDIAのGPUはCUDA環境でプログラムを開発してTuringやAmpere GPUなどで実行するように,BlueField DPUはDOCAという環境でプログラムを開発してDPUで実行する。

DPUの開発の背景

NVIDIAの資料では,DPUが開発された背景は,データセンターの処理するデータ量の増大と,セキュリティー強化の要求に対応するためであると書かれている。そして,その処理に伴う消費電力や設置スペースの増加をできるだけ抑えたい,また,コストも安く実現したいという要求に応えるというものであるとしている。筆者は高性能のソフトウェア定義のデータセンターの実現が大きな背景ではないかと考えるが,目指すところは同じであるので,開発の背景の表現にある程度のニュアンスの違いがあっても問題は無い。

図1 DPU開発の背景は,データセンターの処理データ量の増大とデータセキュリティーの高度化をできるだけ低コストで実現するという解が必要であった。

 

図2の左の図はBlueField DPUを使わないでサーバのマネジメント,セキュリティー,ストレージ,ネットワーキングの管理をホストCPUで行う場合の図で,右側はそれらの処理をDPUにオフロードして実行させた場合の図である。右側の図では直接のI/OはCPUに残るが,I/Oの管理やセキュリティー関連の処理はDPUにオフロードされている。

図2 DPU無の処理分担(左)とDPUに通信機能をオフロードした場合の処理分担(右)。通信処理はDPUで実行され,CPUでの通信アプリの実行には影響を与えないのでセキュリティーが高い。

 

HPCでは多数のCPUノードを使うのが一般的であるが,I/Oからの割り込み処理などは1つのCPUノードが行う。しかし,割り込み処理を行うCPUはその分,計算時間が長くなってしまう。その計算ノードが遅くなるのはやむを得ないが,多数の計算ノードで分散処理を行っているので,全ての計算ノードの処理が終わらないと次のステップに進めないということになる場合が多い。こうなると,割り込み処理を分担した計算ノードの処理が終わるまで,割り込み処理を行わない多数のノードが待ちぼうけ状態になってしまいシステム実行時間が伸びてしまう。割り込みの発生のしかたでトータルの待ち時間が変わり,処理時間にはばらつきが出てしまう。この現象をHPCではOSジッタと呼んでいる。

このOSジッタを減らすため,富岳スパコンのA64FXプロセッサでは48個の計算コアに4個のアシスタンスコアを追加して,割り込み処理などはアシスタントコアにやらせている。

DPUにI/O処理などをオフロードすると,スーパーコンピュータの場合のアシスタントコアのように働き,ジッタを減らして性能を改善する効果も得られると考えられる。

BlueField-2 DPUのブロック図

次の図3がBlueField-2 DPUのブロック図 であるが,一番上の部分がEthernetやInfiniBandの通信を行う部分で,SmartNIC としてConnectX-6 Dxが入っている。上段の右端の部分にセキュリティーエンジンが搭載されている。

そして,中央の大きな箱に2個のarm A72プロセッサを2コアと2MBのL2キャッシュからなるグループを4個備えている。この中央のスペースの左側には6MBのL3キャッシュとDDR4-3200のメモリインタフェースが置かれている。中央の右側のスペースにはレギュラー表現やSHA-2,Deflate/Inflateデータ圧縮などのアクセラレータが置かれている。GACC(グローバル・アクセラレータ)DMAで,はレギュラー表現などの右側のアクセラレータが使用するDMAである。また,A72 armコアは独自の改良が入っており,VLIW的に専用のアクセラレータ機能が付加されているという。

そして,一番下の部分にはPCIeスイッチと16レーンのPCIe4.0インタフェースが置かれている。また,左側にはI2CやUSBなどのポート,右端にはeMMCとGPIOインタフェースが置かれている。

この中央の部分がDPUのデータ処理を行う部分で,最大クロック2.5GHzの8個のA-72コアとAcceleratorsと書かれたボックスに入っている専用処理を行うアクセラレータ群でDPUのデータ処理を行っている。なお,ネットではDPUは2個のVLIWアクセラレータを持つという記事も見かけるが,図3にはVLIWエンジンは見当たらない。NVIDIAによると,VLIWはarm A72の拡張機能として実現されているという。

図3 BlueField-2 DPUのブロック図

 

DPUにオフロードしてセキュアなシステムを構築

DPUを利用するシステムでは,図4に書かれているvRouterやvSwith,暗号化や圧縮,IDS/IPS(侵入検出/侵入防止),DDoS攻撃防止などのオフロード可能な処理はDPUにオフロードし,CPUはアプリケーションのロジックを実行する。このため,DPUにオフロードした分だけCPUの負荷が減り,システム全体の処理が速くなる。

DPUの通信インタフェースはEthernet版だけでなく,InfiniBand版もある。InfiniBand版DPUはHPCシステムにも相性が良い。

図4に示すように,ソフトウェア定義のネットワークにはvRouterやvSwitch,ロードバランサなどがあり,ソフトウェア定義のストレージにはNVMe-oF(overFabric),データ暗号化,圧縮などの機能がある。ソフトウェア定義のセキュリティーには分散型の次世代ファイアウォールや侵入検出/防止などがあり,これらの機能はDPUにオフロードして実行される。

図4 vRouterなどのネットワーク処理,暗号化などのストレージ処理,侵入検出/防止などのセキュリティー処理をDPUにオフロードする。

 

DPUは,隔離されたセキュリティーコントロールプレーン,パケット内容調査,全パケットの完全検査,インライン暗号アクセラレータ,信頼のルートなどの機能を持ち,分散型の次世代ファイアウォール,侵入検出/防止,信頼の基点(Root of Trust),マイクロセグメント分割,DDoS攻撃の防御などの機能を提供する。このため,ネットワークをサーバから分離して,サーバが安全に動作する環境を作ることができる。

このように,DPUはセキュリティー処理をCPUからオフロードしてCPUの負荷を軽減するだけではなく,分離により,より高いセキュリティーを実現する。

図5 DPUは通信やセキュリティー処理をオフロードしCPUの負荷を軽減し,かつ,サーバが完全保護されたセキュリティー環境を提供する。

 

DDoS攻撃は,分散された攻撃ネットワークから大量のパケットを送り付けて,システムの入り口のサーバを過負荷にして,正常な処理が行えないようにする攻撃である。図6の左端の図のように何の防御も無い場合はVMが過負荷になり正常に動作しなくなる。また,左端の構成では他のVMとの間にはセキュリティー障壁が無く,他のVMからの攻撃には無防備である。中央の図のようにサーバ上で動作するセキュリティーソフトを入れても攻撃してくるパケットを処理して食い止めるためにサーバの負荷が過大になり,正常なアプリケーションが実行できなくなってしまう。

ここにDPUを入れると,DPUが攻撃パケットを食い止めるので,サーバの動作には影響は出ないので,DDoS攻撃を跳ね返すことができる。

図6 DPUは高度なL4-L7セキュリティーを実現できる

 

通信の暗号化については,DPUはIPSeC暗号化とvSwitchの機能をハードウェアのアクセラレータで実現しており,ホストのVM上でのソフトウェアでの実現に比べて高速であり,100Gbit/sの暗号化/復号化ができる。

図7 ハードウェアアクセラレータによる暗号化/復号化で100Gbit/sで暗号化した通信が可能

 

パケットの内容を見てフィルタリングを行う次世代ファイアウォールはサーバ側のソフトウェアで実現すると負荷の高い処理であるが,図8のように,DPU側で実行させればサーバの負荷を増やさずに高いセキュリティーを実現できる。また,サーバ側で暗号化/復号化をおこなうと平文や鍵がサーバメモリに存在するタイミングがあり,そこを狙われると情報が漏洩する危険もある。

DPUはarmプロセッサと暗号ハードウェアが同一チップに載っており情報漏洩の危険が小さく,加えて,ホストでの処理と比較して2倍速いという。

図8 パケットの内容を見てフィルタリングを行うなどの次世代ファイアウォールはホスト側での実行は負荷が重いが,DPUにオフロードすればホスト側の負荷を増やさず高いセキュリティーを実現できる。

 

DPUへのオフロードでシステム全体のスピードの向上

データセンターでの処理は複雑になってきており,ネットワークやストレージなどの機能をCPUで動かすハイパーバイザ上で実現すると,CPUの性能ネックになってしまう。しかし,図9の右側のように,ネットワークとセキュリティー,ストレージ,ホストマネジメントなどをDPUにオフロードすれば,CPUの負荷を減らすことができる。

また,ホスト側のハイパーバイザとDPU側の処理は分離されており,高いセキュリティーのシステムを作れる。

図9 全ての機能をハイパーバイザを使ってCPUで動かすとCPUネックになってしまう。ハイパーバイザで動かしている機能をDPUにオフロードすればCPUに余裕ができる。
なお,Project Montereyは右の図のようなオフロードを実現するVMwareの製品

 

DPUを使ってストレージの有効利用と暗号化によるセキュリティー向上

ストレージに関しては,I/Oパフォーマンスを上げて高速にデータを読み書きしたいという要求とストレージを集めて無駄が少ない使い方をしたいという要求がある。

NVIDIA DPUは100Gbps×2,あるいは200Gbps×1のバンド幅をサポートし,4KBの伝送の場合,最大5.4M IOPsという高いI/O処理性能を持っている。

また,リモートのストレージの集約に関してはSNAPが使える。SNAP(Software-defined, Network Accelerated Processing)はリモートサーバに接続されたNVMeストレージを,あたかも一つのホストに接続されているように使えるようにする技術で,システム全体のNVMeストレージを一つにまとめることができる。その後,ソフトウェアでそれぞれのVMに必要な量のストレージを配分すれば,無駄を最小にすることができる。

また,DPUに内蔵されているarmコアを使ってデータ圧縮や重複データの排除などを行って,さらにNVMeストレージの利用効率を改善することもできる。

そして,セキュリティーに関しては,DPU負荷が低いときにストアされたデータの暗号化を実行したりすることができる。

図10 DPUは高速のネットワークインタフェースを持ち,高いI/O性能を実現できる。また,SNAPのサポートにより,NVMeストレージの有効利用を可能にする。

 

図11の左の図はDPUなしの従来のシステムで,右側がDPUを使う高セキュリティーのストレージ環境を示す図である。DPUの暗号化機能を使ってストレージの内容を暗号化すれば,データを読まれても内容を理解することはできないので,安全性が高い。そして,DPUの暗号/復号性能の範囲内であれば,データセンターの処理性能が低下することも避けられる。

図11 DPUを使えばストレージのデータを暗号化してセキュリティーを高めることができる。 さらにSNAPと組み合わせるとNVMeストレージの利用率を高めることもできる。

 

DPUのソフト開発環境DOCA

NVIDIAはDPUのソフトウェア開発環境として,DOCAを提供している。CUDAはGPUプログラムを開発するためのコンパイラやライブラリ,その他のツールを含んでいるが,DOCAはDPU用のCUDAに相当するパッケージである。DPUの世代が変わるとハードが変わり,DPUのプログラムに修正を施す必要がでるが,DOCAを使っていれば最悪でもリコンパイルで済む。

そして,DOCAはコンパイラを始めとする必要なツールやドライバ,ランタイムなどを含んでおり,DOCAに含まれているAPIはそのまま,呼び出して使える。

図12 DOCAはDPUのソフトウェア開発システムであり,必要なツールやドライバ,ランタイムなどを含んでいる。GPUに対するCUDAのような存在である。

 

図13はDOCAのスタックをより詳しく書いたもので,ライブラリのコンポーネントやドライバとランタイムのコンポーネントが書かれている。

DOCAライブラリには,DPUを使って仮想スイッチの動作をアクセラレートするASAP2やIDS/IPSを始めMPIやSNAPのDPU版などがある。DOCAのドライバとランタイムにはネットワーキング,セキュリティー,ストレージの機能などが入っている。

図13 DOCAのソフトウェアスタック

 

BlueField DPUはHPCに使えるか?

AWSで,多くのインスタンスを使ってHPC計算を行っているユーザも多く存在する。その意味では計算ノードは普通の汎用プロセッサを使い,それにDPUを付けて高性能で高度なセキュリティー機能を備えたクラスタもHPCに使えると言える。

つまり,DPUは普通の汎用CPUのクラスタでHPC計算を行うという使い方に対応しており、セキュリティーへの対応も含め、今後の応用も期待される。

まとめと今後のロードマップ

DPUを使うことにより,ネットワークインフラをセキュリティーで保護し,マルチテナントを分離することができるようになる。単一サブネット上で32,000ユーザの分離が可能となった。同時に,一部のMPI処理をDPUにオフロードすることにより,アプリ性能が1.3倍に向上したというケースも出てきている。

図14 DPUを使うとマルチテナントの分離ができ,ゼロトラストのシステムが作れる。集合通信をUCCアクセラレータにオフロードして,性能を1.3倍に向上させた。

 

現在,DPUはBlueField-2というラインナップであるが,NVIDIAは2022年にはBlueField-3を出し,2023年にはDPUとAI処理用のGPUをワンチップに集積したBlueField-4を出す計画である。

なお,この図15では性能は書かれていないがBlueField-2は70SPECInt,0.7TOPS,200Gbps。BlueField-3は350SPECInt,1.5TOPS,400Gbpsと書かれている資料もある。 この資料ではBlueField-4は1000SPECInt,400TOPS,400Gbpsとなっている。

AI性能が上がってくると,いろいろな攻撃パターンを検知してシステムを保護することができるようになると期待される。

図15 BlueField DPUのロードマップ
2021年はBlueField-2,2022年はBlueField-3,2023年にBlueField-4を出す計画

 

4月12日からGTCが開催予定だ。GTC は、1400以上のセッションがあり、多くの開発者、研究者、エンジニア、イノベーターによる、世界規模のコラボレーションと技術革新が集結するイベントで、 NVIDIA BlueField DPUに関する発表やセッションも予定されている。GTCの参加登録は無料なので、最新情報を入手するよい機会となるだろう。

 

講演者:

エヌビディア合同会社
HPC/AI テクニカル コンピューティング ネットワーク プロダクト マーケティング ディレクター
岩谷正樹(いわたに まさき)氏