HPE Blog, Japan
1745833 メンバー
4217 オンライン
108723 解決策
新規ポスト
yoshihiko1989

【連載】導入前のアドバイス – GPUとFPGA

この記事は2020年12月に更新されました

 

連載記事「導入前のアドバイス」 - GPUとFPGA 編です。

半導体チップの中でも注目を浴びているGPU、FPGAに関して、ProLiantサーバーへの対応を交えてご紹介します。

GPUFPGA.png

 GPU(Graphics Processing Unit)とFPGA(Field Programmable Gate Array)

GPU (Graphics Processing Unit)は画像の生成と出力のための半導体チップ(プロセッサー)です。並列処理に適した特性や、近年の高性能化により、現在では様々なワークロード、特にAI分野のディープラーニングなどでも盛んに利用されるようになりました。

グラフィックス以外の処理に利用されるものを特にGPGPU(General Purpose GPU)と呼びます。GPUを供給しているベンダーは、NVIDIA社やAMD社が主力となります。

また、FPGA (Field Programmable Gate Array)は通常の汎用的なCPUのように最初から機能が作り込まれているのではなく、ユーザーが用途に合わせて回路をプログラムすることができるプロセッシングユニットです。特定の処理に最適化できることから、ディーブラーニングや、ビッグデータの処理用途として需要が高まっています。FPGAIntel社、Xilinx社などから提供されています。

 

CPU(Central Processing Unit)との違い

CPU(Central Processing Unit)はコンピューターの記憶装置や入出力装置の制御から、アプリケーションソフトのための演算まで、複雑で多様、汎用的な処理に対応できるようになっています。命令を処理する順番が決まっていて、順次処理していくようになっています。その一方で定型的で大量の演算を並列的に行う画像処理のような用途では性能を発揮できない面があります。

それに対してGPUは複雑な演算は苦手ですが、画像の縦横のピクセル、さらに奥行きや色彩なども含めた大量のデータをリアルタイムに扱い、しかし演算内容は比較的単純なグラフィックス処理向けに設計されています。そのため並列処理に長けており、またプロセッサーの中核であるコアを増やすことで、その性能を向上させやすい特長もあります。

GPU_pic1.png

 

FPGAは目的とする処理に特化させてプログラムできるものであるため、特定処理に関しては非常に効率よく行い、また少ない消費電力で動作することが可能です。ただし回路を自らハードウェア言語を用いて設計しなくてはならず、期待する性能を引き出すために最適化する部分では難しさがありますが、最近ではエコシステムも充実してきており、ハードウェア言語を使用しなくても、C++Javaなどのプログラミング言語で設計することができるようになってきています。

 

HPE ProLiantへの対応

HPE ProLiantサーバーやHPE Apolloシステムでも多くのGPUFPGAをサポートしており、用途に応じた様々な構成が可能となっています。

サーバーでGPUFPGAを利用する際には、求められる性能や機能に合わせてモデルを選定することが必要となりますが、その他にサーバーへの搭載という観点では考慮しなければならないポイントとして、「フォームファクター」と「電力」が挙げられます。

フォームファクタ― 

  • SXM2
  • PCIe(ハイと、レングス、シングル/デュアル、PCIeレーン、ライザー)
  • メザニン型

電力

  • 補助電源(のオプションの電力供給ケーブル)
  • 消費電力(への対応のためのオプションや制限)

以下で順に説明していきます。

 

フォームファクターの考慮

GPUのフォームファクターにはSXM2 PCIe、メザニン型があり、それぞれ以下のような形状です。

GPU_pic2.png

SXM2はNVLinkに最適化されたフォームファクターですが、このNVIDIAによって開発されたNVLinkCPUGPUGPU同士を高速接続するプロトコルであり、その利用により多大なGPU間通信を要求するディープラーニングなどに究極のパフォーマンスがもたらされると言われています。

しかしSXM2はその分ある程度用途が特定された限定的なサーバーのみに採用されていますが、一方でPCIeフォームファクターは一般的なネットワークアダプターなどと同様に標準的なPCIeスロットへの搭載でき、幅広いサーバーモデルで利用可能なため、多様なワークロードに対応することができます。FPGAPCIeフォームファクターで提供されています。

メザニン型はSynergy 480 Gen10コンピュートモジュールのメザニンスロットに搭載するタイプです。

HPEのサーバーのラインアップの中でSXM2版を搭載できるのは、20209月時点でApollo 6500 Gen10(XL270d)SGI 8600(XA780i)のみですが、PCIe版はProLiant DL/MLApollo 2000Edgelineなど多くのモデルに搭載可能です。

ここからはPCIe版に関してもう少し詳しく解説します。GPU_pic3.png

PCIeタイプにはフルハイト/フルレングス/デュアルスロット(ダブルワイド)といった大型のカードや、ロープロファイル/シングルスロット(シングルワイド)と呼ばれる小型のカードがあり、各サーバーモデルによって搭載可否や最大数に違いがあります。ここでは例としてDL360 Gen10DL380 Gen10におけるGPU/FPGAのサポート状況をご覧いただきます。

GPU_pic4.png

 

  • QuickSpecs - NVIDIA Accelerators for HPE ProLiant Servers

https://h20195.www2.hpe.com/v2/getdocument.aspx?docname=c04123180

  • QuickSpecs - Intel Accelerators for HPE ProLiant Servers

https://h20195.www2.hpe.com/v2/getdocument.aspx?docname=a00056115enw

  • QuickSpecs - Xilinx Accelerators for HPE ProLiant Servers

https://h20195.www2.hpe.com/v2/getdocument.aspx?docname=a00056650enw

 

GPU/FPGAを構成する際はPCIeライザーの選び方の配慮も必要になります。帯域幅を確保するためにPCIeのレーン(伝送路)16本束ねたx16スペックのスロットを持ったライザーや、スペースを有効活用できるライザーを選択する必要があります。

例えばDL380 Gen10のプライマリーライザーにデュアルスロットのGPUを搭載する場合、標準装備されている3スロットのライザーに搭載することも可能ですが、その場合3スロットのうち2スロットをGPUが占有することになるため、1スロット分無駄なスペースとなり、またその残り1スロットもx8の帯域となります。

例として、この標準3スロットライザーを2スロットの “Gen10プライマリ&セカンドスロットライザー(GPU)” に交換すると、最初からデュアルスロットのGPUを搭載することを前提とした幅の広いスロットを使うことができ、また残るのもx16と広帯域なスロットとなります。

下図の赤枠はデュアルスロットGPUをインストールした場合に占有される空間を示しています。

GPU_pic5.png

電力の考慮

GPU/FPGAには使用する上で、大きな電力を必要とするものがあります。75WまでのカードはPCIeスロットからの給電のみで動作しますが、それを超えるカードにはPCIeスロットからの給電だけでは足りず、別途に電力を取るための電源ケーブルが必要になります。写真のようにGPUに直接に電源ケーブルが接続されます。GPU_pic6.png

この電源ケーブル製品にはいくつかの種類があり、接続するGPU/FPGAやサーバーに合わせて選択しなければならないため、注意が必要です。

また消費電力の大きいGPU/FPGAでは発熱も大きくなるため、サーバーに搭載されている冷却ファンを標準のものから高性能ファンに交換したり、CPUのヒートシンクをハイパフォーマンスヒートシンクと呼ばれる放熱性の高いものに変更する必要があります。選択できるCPUが消費電力の低いものに制限される場合もあるので、選定時のポイントとして抑えておいてください。

詳しくは搭載したいサーバーのシステム構成図をご参照ください。

また、GPU/FPGAの消費電力の大きさはサーバーのパワーサプライの選定や冗長化に影響します。GPU/FPGA搭載の際にはPower Advisor ( https://www.hpe.com/jp/ja/servers/server-options.html#tool ) を使って電力見積りを実施することをおすすめします。

 

GPUの活用(for VDI

VDI (Virtual Desktop Infrastructure)とは 仮想的なデスクトップ環境をネットワークを通じて提供するITシステムのことですが、VDIも利用が広がるにつれて、CADCGコンテンツ作成などのエンジニアリング・アプリケーション分野への適用も求められるようになってきており、またWindows 10上のOfficeアプリケーションであっても、多量のグラフィックスメモリを必要とするなど、VDI環境でも高いグラフィックス性能が求められるような時代になりつつあります。

そこでサーバー側のGPUの性能をネットワークを介して享受する手段として、GPUの仮想化テクノロジーによりハイパーバイザー上でGPUを仮想的に分割して各仮想マシンに割り当てることを可能にする技術が提供されています。

NVIDIA GPUの場合であれば、NVIDIA vGPU ソフトウェアによって実現可能です。

GPU_pic7.png

 NVIDIA vGPU ソフトウェアは、サーバー上にインストールされた物理GPUを変換して、複数の仮想マシン間で共有できるように仮想GPUを作成します。この仮想GPUが仮想マシンに割り当てられることにより、アプリケーションやデスクトップのパフォーマンスが大幅に向上し、快適な仮想デスクトップインフラストラクチャ (VDI) を構築することが可能になりました。

NVIDIA vGPU ソフトウェアは用途に応じた、以下の4つの製品が提供されています。

GPU_pic8.png

 vGPU ソフトウェアの販売情報については、システム構成図サイト( https://www.hpe.com/jp/ja/doc/server-system.html )NVIDIA vGPUソフトウェアオーダリングガイドをご参照ください。

 

「導入前のアドバイス」まとめリンク

0 感謝
作者について

yoshihiko1989

日本ヒューレット・パッカード株式会社で Server Solution / CloudNative関連のプリセールスを担当しています。