(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-25
(45)【発行日】2024-10-03
(54)【発明の名称】効率的な並列計算のための装置および方法
(51)【国際特許分類】
G06F 15/173 20060101AFI20240926BHJP
G06F 9/38 20180101ALI20240926BHJP
【FI】
G06F15/173 682
G06F9/38 370X
(21)【出願番号】P 2020564457
(86)(22)【出願日】2019-05-15
(86)【国際出願番号】 EP2019062483
(87)【国際公開番号】W WO2019219747
(87)【国際公開日】2019-11-21
【審査請求日】2022-05-09
(32)【優先日】2018-05-15
(33)【優先権主張国・地域又は機関】EP
【前置審査】
(73)【特許権者】
【識別番号】507402886
【氏名又は名称】パルテック・アーゲー
【氏名又は名称原語表記】ParTec AG
【住所又は居所原語表記】Possartstr. 20, 81679 Muenchen, Germany
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100119013
【氏名又は名称】山崎 一夫
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100141553
【氏名又は名称】鈴木 信彦
(72)【発明者】
【氏名】フローヴィッテル ベルンハルト
(72)【発明者】
【氏名】リッペルト トーマス
【審査官】三坂 敏夫
(56)【参考文献】
【文献】特開2002-099433(JP,A)
【文献】国際公開第2008/120393(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/16-15/177
G06F 9/38
(57)【特許請求の範囲】
【請求項1】
並列計算システムにおいて動作する計算ユニットであって、前記計算ユニットが複数の処理要素と、前記計算ユニットを前記計算システムの他の構成要素に接続するためのインターフェースとを備え、データをランダムアクセスメモリユニットから所定の最大データ速度MBWで転送することができるように、かつ前記インターフェースが最大データ転送速度CBWをもたらすように各処理要素が公称最高処理速度NPRを有し、各処理要素がそれぞれの前記ランダムアクセスメモリユニットを含み、PP=n×NPRの毎秒演算であるような公称最高処理速度で動作する、個数nの処理要素によって得られる計算ユニットに所定の最高計算性能PPを与えるために、前記計算ユニットが、整数倍算のn個のf倍の処理要素を含み、ここで、fは1よりも大きく、各処理要素はNPR/fの処理速度で動作するように制限される、計算ユニット。
【請求項2】
前記計算ユニットが、n個の処理要素を有する仮想計算ユニットのメモリ帯域幅のf倍のメモリ帯域幅を呈示する、請求項1に記載の計算ユニット。
【請求項3】
前記計算ユニットの処理要素がグラフィック処理ユニットである、請求項1または請求項2に記載の計算ユニット。
【請求項4】
前記処理要素がインターフェースユニットによって共に接続され、各処理要素が前記インターフェースユニットに複数S個のシリアルデータレーンによって接続されている、請求項1~3のいずれかに記載の計算ユニット。
【請求項5】
前記計算ユニットが、前記処理要素を制御するように構成されたマルチコアプロセッサを備えるコンピュータカードである、請求項1~4のいずれかに記載の計算ユニット。
【請求項6】
前記最大データ転送速度が処理要素間の通信速度の30%以内である、請求項1~5のいずれかに記載の計算ユニット。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は並列処理システムに関し、詳細には、性能/エネルギー消費の面で効率が改善されている並列処理システムに関する。
【背景技術】
【0002】
典型的な処理システムでは、それぞれが1つまたは複数の処理要素を備える複数の計算ノードが高速ネットワークによって接続される。計算ノードの処理要素はそれぞれ、内部メモリを有する。これらの処理要素は、その計算ノードの中で接続される。この計算ノード上の接続性は、高速ネットワーク、別個の計算ノード上の高速ネットワークまたは共用メモリの技術を用いて実現することができる(たとえば、対称型マルチプロセッシング(SMP)システムにおいてのように)。このような構成は
図1に示されている。
【0003】
図1は、複数の計算ノードCNの構成を示し、各計算ノードは、それぞれのメモリ(MEM)をそれぞれが有する複数の処理要素(PE)を含む。計算ノードは、高速ネットワーク(HSN)を介して互いに接続され、各計算ノードが、高速ネットワークに接続するためのネットワークインターフェースコントローラ(NIC)を含む。個々の処理要素は共に接続され、ネットワークインターフェースコントローラにも接続する。
【0004】
処理要素には最高性能(PP)があり、これは1秒当たりの浮動小数点演算、すなわち短く言えば「FLOPS」、として測定される、処理要素が1秒当たりに実行できる(浮動小数点)演算の数の上限のことである(浮動小数点演算が基準とされるが、この演算は整数演算と等しくなり得る)。計算ノードの最高性能(PPCN)は、計算ノードの処理要素の最高性能の総計になる。所与のアプリケーションAでは、一般に、この最高性能の一部分ηAしか実現できず、ここで0<η<1であり、ηは持続性効率と呼ばれる。その理由は、データ転送速度、すなわち処理要素のメモリから計算レジスタまでの間のメモリ帯域幅(MBW)が有限であり、したがって、所与のアプリケーションでは利用最高性能をηAにまで低下させることになるからである。同様の議論を入力/出力データ転送速度について、すなわち、利用最高性能を潜在的にさらに低下させる1つの処理要素から計算ノード外の別の処理要素までの通信帯域幅(CBW)について、行うことができる。
【0005】
大まかには、高性能計算の実行者は、1バイト/FLOPの速度R=MBW/PPが、ほとんどのデータ集約型アプリケーションに関して1に近いηを達成するために必要な要件と考えている。最高性能を使い切るために所与のアプリケーションAに必要とされるデータ速度に応じて、処理要素の実際のメモリ帯域幅が、所与のアプリケーションAに関して達成できるηAを決定する。
【0006】
現在のハイエンドCPUでは、Rが0.05~0.1バイト/FLOPしかなく、これは、処理要素の計算コアの数が増加している過去10年に低下し続けている数字である。グラフィックアプリケーションおよびつい最近のディープラーニングアプリケーションのデータ要件に適合するように主として設計されている、現在のハイエンドGPUは、0.15バイト/FLOPに満たないRしか達成しない。好ましくない結果として、ほとんどのデータ集約型アプリケーションで達成するηAは、実行されるアルゴリズムによるさらなる何らかの低下とは無関係に、または必要とされる処理要素に関しての並列処理とは無関係に、推測で現在のCPUでは5~10%未満、および現在のGPUでは約15%になる。アプリケーションがデータ集約型であればあるほど、効率ηAが処理要素の所与のRに対して低くなる。
【0007】
この問題は他でも確認されており、たとえば、http://www.electronicdesign.com/analog/memory-wall-ending-multicore-scalingで入手可能な、2011年にElectronic Designで発表されたAl Wegnerの「The Memory Wall is Ending Multicore Scaling」という題の論文に記載されている。
【0008】
同様の考察が、計算ノード上および計算ノード外の別の処理要素へのデータ転送速度を表す、所与の処理要素の通信帯域幅についてなされ得る。ここでは、コードのスケーラビリティに及ぼす通信帯域幅の影響が重要になる。
【0009】
計算ノード上の通信帯域幅に関する限り、3つの場合、すなわち、処理要素が高速ネットワークを介して接続される計算ノードと、処理要素が、高速ネットワークに再び接続される通信ノードで別個のネットワークに接続される計算ノードと、共用メモリを介して計算ノード上のデータを交換する計算ノードとを区別することができる。
【0010】
計算ノード外の通信に関して、高性能計算の実行者は、速度r=CBW/MBW>0.1~0.2が、多数のアプリケーションのスケーラビリティを達成するのに適切と考える。通信帯域幅がメモリ帯域幅に近ければ近いほど、スケーラビリティの条件が好適であることが明らかである。
【0011】
理論的に可能な通信帯域幅は、処理要素から高速ネットワークまで利用可能なシリアルレーンの数によって決まる(このことはCPUにもGPUにも当てはまる)。この数は、現在のチップ技術では制約があるシリアライザ・デシリアライザの実施態様によって制限される。
【0012】
計算ノードのネットワークインターフェースコントローラ(NIC)が、計算ノードの処理要素との間を行き来するデータストリームを保持するように適切に規模設定されることは重要である。
【0013】
米国特許出願公開第2005/0166073号は、システムメモリ帯域幅を最大にするための可変動作周波数のシステムプロセッサの使用について記載している。
【0014】
米国特許出願公開第2011/0167229号は、メモリではないハードドライブなどの記憶デバイスにそれぞれ接続された複数の計算デバイスを備える計算システムについて記載している。このシステムの目的は、記憶データを取り込むデータ速度と処理速度を一致させることである。この特許文献で示唆しているのは、データ転送速度の高い記憶ユニット、すなわちソリッドステートドライブをハードディスクドライブの代わりに、またはそれに加えて、低いクロック速度で動作する特定の低電力プロセッサと組み合わせて使用することである。
【0015】
US3025/0095620は、計算システムの作業負荷のスケーラビリティを推定する技法について記載している。このシステムは、単一のマルチコアプロセッサを有する。
【発明の概要】
【0016】
本発明は、並列計算システムにおいて動作する計算ユニットを提供し、この計算ユニットは、複数の処理要素と、計算ユニットを計算システムの他の構成要素に接続するためのインターフェースとを備え、データをメモリユニットから所定の最大データ速度MBWで転送することができるように、かつインターフェースが最大データ転送速度CBWをもたらすように各処理要素が公称最高処理速度NPRを有し、各処理要素がそれぞれのメモリユニットを含み、PP=n×NPRの毎秒演算であるような公称最高処理速度で動作する、個数nの処理要素によって得られる計算ユニットに所定の最高計算性能PPを与えるために、計算ユニットは、整数倍算のn個のf倍の処理要素を含み、ここで、fは1よりも大きく、各処理要素はNPR/fの処理速度で動作するように制限される。
【0017】
別の態様では、本発明は、マルチコアプロセッサおよび複数のグラフィック処理ユニットGPUを備える計算ユニットを動作させる方法を提供し、各GPUが毎秒PPG演算という公称最高性能を有し、この方法は、GPUをその公称最高性能速度の一部分1/fで動作させることを含み、計算ユニットは、毎秒PP演算という所定の最高計算性能を実現し、また計算ユニットは、PPがPPGのn倍に等しくなるようにf個のn倍のGPUを有する。
【0018】
本発明は、処理要素のクロック周波数vをf分の1に低減させることにより、処理要素のエネルギー消費をf分の1以下に低減できることに関する。この処理は、「アンダークロック」と呼ばれる。
【0019】
次の近似公式
P∝CV2
は、処理要素のデバイスの電力消費に当てはまり、ここでCは静電容量、Vは電圧、およびPは電力消費である。この式は、Pがvに対しては線形に、Vに対しては二乗のオーダで増減することを意味する。
【0020】
一例としてGPUのクロック周波数に関して、近年、電力モデリングについての多数の論文が発表されており、これらの論文ではとりわけ、電力消費を処理要素の個々の部分に割り当てるように努めている。最新のNVIDIA GPUでは、ストリーミングマルチプロセッサ(SM)の周波数を変更することができる。この周波数変更は、利用可能な電力バジェットの最適使用を行うためにますます動的に設計され、ハードウェアによって自動的に制御される。文献による限り、メモリサブシステムの周波数は変更することができず、現在の世代では自動的にクロック制御される。これにより、メモリ帯域幅によって性能が制限されているアプリケーションでは、SMの周波数をいくらか低減することによってエネルギーバランスを改善することが可能になる。この方法では、約10%の効果を期待することができる。
【0021】
アンダークロックした装置の性能は、期待されたよりも良好になることが多い。通常のデスクトップ使途では、最高限の処理要素性能が要求されることはまれである。システムが使用中の場合でさえ、通常は多くの時間がメモリまたは他のデバイスからのデータを待ち受けて費やされる。
【0022】
このことにより、原理上、計算ノードに装着され周波数vで動作している処理要素を周波数v/fで動作するf個の処理要素で置き換えることが、計算ノードの累積計算能力PPCNを変えなくても可能になる。加えて、計算ノードのエネルギー消費は維持されるか、潜在的に低減される。実際には、f=2またはf=3を選ぶことになる。
【0023】
本発明の重要な側面は、現代のCPUおよびGPUのような処理要素の場合、計算周波数fを低減させることが、同時に処理要素のメモリ帯域幅を低減させなくてもできるということである。その結果、この修正を受けて速度Rはf倍に増加される。計算コアの動作速度を増加させることは、そのメモリ速度に適合しなくては不可能であることに注目されたい。
【0024】
第2に、計算ノードの処理要素の数をf倍に増加させると、その計算ノードで使用可能なシリアルレーンの総数がf倍に増加する。したがって、計算ノード外の入力/出力動作の速度rが、f倍に同様に改善される。
【0025】
これらの改善により、計算ノードごとの同時実行性がf倍に向上する。これには、多様で高度にスケーラブルなアプリケーションに対するアルゴリズム的な手法の調整が必要であるが、このことには原則として問題がない。
【0026】
エネルギー消費は一定のままであると予想されるが、処理要素の数が増加すると、一見して投資コストが増加し得る。しかし、これらの多くのコストはメモリによるものであり、このコストは、計算ノードごとのメモリの総量を保持しながら処理要素ごとにf分の1に低減させることができる。さらに、ハイエンド処理要素を低い周波数で使用することにより、産出物のうち最高周波数では動作できない非常に低コストの部分を利用できるようになり得る。
【0027】
第2の手段として、処理要素の動作電圧(V)の低減を実行することができ、エネルギー消費がさらに低減することになる。電圧への依存性は、電力消費が電圧に対して二乗のオーダで増減するので著しくなり得る。この「アンダーボルト」は、アンダークロックに付加的に、または別個に使用することができ、処理要素の計算セクションのエネルギー消費を改善するための本発明の方策の別の要素である。
【0028】
本発明は、並列処理システムの効率を性能およびエネルギー消費の面で向上させる装置を提供する。処理要素の動作周波数を低減させ、それに応じて処理要素の数を増加させる技法上の修正が導入されて、向上したアプリケーション性能において全システムの同じ最高性能が達成される。これらの修正は、全体効率に影響する2つのシステムパラメータ、すなわち、処理ノードの最高性能で割ったメモリからレジスタへのデータ帯域幅と、処理ノードの最高性能で割った、並列システムの高速ネットワークへの処理ノードのデータ帯域幅とに影響を及ぼす。これにより、ノードの並列処理が向上することが、一定の、さらにはより少ないノードのエネルギー消費によって可能になる。この方法では、システムはアプリケーション性能の最適条件に調整することができる。この最適条件は、任意の所望の手段のために、たとえば、特定のアプリケーションポートフォリオの平均のアプリケーション性能、または特定のアプリケーションの最適性能を得るために、選択することができる。全投資コストもまた、使用される処理要素が、メモリおよび入力/出力性能を維持しながらその処理ユニットの計算コアの低い動作周波数で動作することになるので、同様のままになると予想される。
【0029】
提示された本発明は、係数fを選択することを可能にし、この係数は、処理要素周波数の低減と、対応する計算ノードの処理要素数の増加とを、選択された所望の基準、たとえばアプリケーションの特定のポートフォリオに対する平均最大電力、または特定のアプリケーションに対する最大電力に応じて決定する。実際には、両修正はまた、エネルギー消費および投資コスト、ならびに最適性能などのシステムに重要なパラメータの影響に応じて、特に、スケーラビリティに関するアーキテクチャとアプリケーションの相互作用に関して、別個に適用することもできる。
【0030】
本発明の好ましい実施形態について、単なる例として添付の図面を参照して説明する。
【図面の簡単な説明】
【0031】
【
図2】2つのグラフィック処理ユニット(GPU)を含み、最高性能速度が25テラFLOPSである計算ノードの概略図である。
【
図3】
図2の構成の2倍のグラフィック処理ユニットを含むが最高性能速度は同じである、計算ノードの概略図である。
【発明を実施するための形態】
【0032】
本発明は、現存する技術を用いて実現することができる。一例を示すと、本発明は、あらゆる目的のために参照により本明細書に組み込まれるWO2012/049247および後に続く出願EP16192430.3およびEP18152903.3に記載のように、2021年までに最高エクサスケール性能を目ざすモジュールスーパーコンピューティングシステムの中の、ブースタモジュールのアプリケーション性能を高速化する方法になり得る。本発明の目標は、データ集約型計算に関する計算ノード上のアプリケーション性能を他の任意のアーキテクチャ上の設計と比較してf倍に向上させること、および加えて、計算ノード外の多数の通信要件がある多くのアプリケーションのより良好なスケーリングのためのメモリ帯域幅と歩調を合わせるために、通信帯域幅を増大させることである。
【0033】
実現が、Mellanox BlueField(BF)マルチコアシステムオンチップ技術を使用する通信ノードの組によってもたらされる。BlueFieldカードが、複数のグラフィックプロセッサユニット(GPU)、PCIe gen 4スイッチ、および1つまたは複数の高データ速度(HDR)スイッチを備え得る。各BlueFieldカードは、4つまでのGPUを装備することができる。BFカードは、2つのMellanoxホストチャネルアダプタ(HCS)をそれぞれ備え、したがって、2倍までのHDR性能を計算ノード外で達成することができる。
【0034】
AMD Radeon Vega 20 GPUは、2018年の中頃に一般出荷が予定されている、処理要素の具体例と考えられる。Vega-20 GPUは、BF通信ノードのPCI-eインターフェースに、16個のPCI gen 4レーンによって接続することができる。このGPUには、各8ギガバイトの4つのメモリバンクに分けられた32ギガバイトのHBM-2メモリが装備されると予想される。16GBのHBM-2もまた実現可能なものであり、各4ギガバイトの4つのメモリバンクの形でやはり構成される。したがって、メモリ速度は両方の構成で同じにすることができる。
【0035】
毎秒1.28テラバイトの予想されるメモリ帯域幅と、毎秒12.5テラFLOP(二倍精度)の予想最高性能とにより、R=0.1になる。これは、実行者の基準の1バイト/FLOPの10分の1にすぎないが、それでもなお、得られる最善の速度Rのうちの1つである。
【0036】
通信帯域幅は、それぞれがレーンおよび方向ごとに2ギガバイトの能力がある16個のPCIe gen 4レーンによって上限が定められる。r=64ギガバイト/1.28テラバイト=0.05であるので、データ集約型アプリケーションの厳しいスケーラビリティ問題とは必ず闘わなければならない。この点において、Rおよびrのいかなる改善も助けになる。
【0037】
このことは、
図2および
図3で概略的に示されている。
【0038】
標準構成は、最高性能を達成する最高周波数で動作させる2つのGPUを処理要素としてBF-CNごとに備えるものとする。最初の構成は
図2に示されている。計算ノードに関する限り、以下のシステムパラメータが与えられるか予想される。
計算ノードごとのGPUの数:2
f:1
計算ノードごとのエネルギー消費:2×150W=300W
計算ノードごとのメモリ:64GB
計算ノードごとのメモリ帯域幅:毎秒2.56テラバイト
計算ノードごとの最高性能:毎秒25テラFLOPデータ処理
計算ノードごとのR:0.1
計算ノードごとのPCIe gen 4レーン:32個
計算ノードごとの両方向の通信速度:128Gバイト/秒(処理要素間で1/2、NICに対し1/2)
可能な2×Mellanox HDR:両方向に毎秒100Gバイト
計算ノードごとのr:0.05
通信と平衡していないNIC
【0039】
図3に示す改善された構成は、最高周波数vの半分、f=2で動作させるBF通信ノードごとの処理要素として4つのGPUを備え、それによって、同じ計算ノード公称最高性能値が得られる。この場合、処理要素は、標準構成の最高性能の2分の1までで動作する。改善された計算ノードに関して、以下のシステムパラメータが与えられるか予想される。
計算ノードごとのGPUの数:4
f:2
計算ノードごとの予想エネルギー消費:4×75W=300W
計算ノードごとのメモリ:GPUごとに1個16GBで64GB、または1個32GBで128GB
計算ノードごとのメモリ帯域幅:毎秒5.12テラバイト
計算ノードごとの最高性能:毎秒25テラFLOPデータ処理
計算ノードごとのR:0.2
計算ノードごとのPCIe gen 4レーン:64個
計算ノードごとの両方向の通信速度:256Gバイト/秒(処理要素間で1/2、NICに対し1/2)
可能な2×Mellanox HDR:両方向に毎秒100Gバイト
計算ノードごとのr:0.05
通信と平衡しているNIC
【0040】
アンダークロックにアンダーボルトを加えて、エネルギー消費をさらに低減することができる。アンダーボルトのもとでの処理要素の安定性は、全電圧が加えられた場合よりも受ける影響が少ないことがある。