(57)【要約】  本発明は、並列計算システムにおいて動作する計算ユニットを提供し、この計算ユニットは、複数の処理要素と、計算ユニットを計算システムの他の構成要素に接続するためのインターフェースとを備え、データをメモリユニットから所定の最大データ速度ＭＢＷで転送することができるように、かつインターフェースが最大データ転送速度ＣＢＷをもたらすように各処理要素が公称最高処理速度ＮＰＲを有し、各処理要素がそれぞれのメモリユニットを含み、ＰＰ＝ｎ×ＮＰＲの毎秒演算であるような公称最高処理速度で動作する、個数ｎの処理要素によって得られる計算ユニットに所定の最高計算性能ＰＰを与えるために、計算ユニットは、整数倍算のｎ個のｆ倍の処理要素を含み、ここで、ｆは１よりも大きく、各処理要素はＮＰＲ／ｆの処理速度で動作するように制限される。
2021523491.tif 000002
【特許請求の範囲】
【請求項１】
並列計算システムにおいて動作する計算ユニットであって、前記計算ユニットが複数の処理要素と、前記計算ユニットを前記計算システムの他の構成要素に接続するためのインターフェースとを備え、データをランダムアクセスメモリユニットから所定の最大データ速度ＭＢＷで転送することができるように、かつ前記インターフェースが最大データ転送速度ＣＢＷをもたらすように各処理要素が公称最高処理速度ＮＰＲを有し、各処理要素がそれぞれの前記ランダムアクセスメモリユニットを含み、ＰＰ＝ｎ×ＮＰＲの毎秒演算であるような公称最高処理速度で動作する、個数ｎの処理要素によって得られる計算ユニットに所定の最高計算性能ＰＰを与えるために、前記計算ユニットが、整数倍算のｎ個のｆ倍の処理要素を含み、ここで、ｆは１よりも大きく、各処理要素はＮＰＲ／ｆの処理速度で動作するように制限される、計算ユニット。
【請求項２】
前記ユニットが、ｎ個の処理要素を有する仮想計算ユニットのメモリ帯域幅のｆ倍のメモリ帯域幅を呈示する、請求項１に記載の計算ユニット。
【請求項３】
前記計算ユニットの処理要素がグラフィック処理ユニットである、請求項１または請求項２に記載の計算ユニット。
【請求項４】
前記処理要素がインターフェースユニットによって共に接続され、各処理要素が前記インターフェースユニットに複数Ｓ個のシリアルデータレーンによって接続されている、請求項１〜３のいずれかに記載の計算ユニット。
【請求項５】
前記計算ユニットが、前記処理要素を制御するように構成されたマルチコアプロセッサを備えるコンピュータカードである、請求項１〜４のいずれかに記載の計算ユニット。
【請求項６】
前記最大データ転送速度が処理要素間の通信速度の３０％以内である、請求項１〜５のいずれかに記載の計算ユニット。
【請求項７】
マルチコアプロセッサおよび複数のグラフィック処理ユニットＧＰＵを備える計算ユニットを動作させる方法であって、各ＧＰＵが毎秒ＰＰＧ演算という公称最高性能を有し、前記方法が、前記ＧＰＵをその公称最高性能速度の一部分１／ｆで動作させることを含み、前記計算ユニットが毎秒ＰＰ演算という所定の最高計算性能を実現し、前記計算ユニットは、ＰＰがＰＰＧのｎ倍に等しくなるようにｆ個のｎ倍のＧＰＵを有する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は並列処理システムに関し、詳細には、性能／エネルギー消費の面で効率が改善されている並列処理システムに関する。
【背景技術】
【０００２】
典型的な処理システムでは、それぞれが１つまたは複数の処理要素を備える複数の計算ノードが高速ネットワークによって接続される。計算ノードの処理要素はそれぞれ、内部メモリを有する。これらの処理要素は、その計算ノードの中で接続される。この計算ノード上の接続性は、高速ネットワーク、別個の計算ノード上の高速ネットワークまたは共用メモリの技術を用いて実現することができる（たとえば、対称型マルチプロセッシング（ＳＭＰ）システムにおいてのように）。このような構成は図１に示されている。
【０００３】
図１は、複数の計算ノードＣＮの構成を示し、各計算ノードは、それぞれのメモリ（ＭＥＭ）をそれぞれが有する複数の処理要素（ＰＥ）を含む。計算ノードは、高速ネットワーク（ＨＳＮ）を介して互いに接続され、各計算ノードが、高速ネットワークに接続するためのネットワークインターフェースコントローラ（ＮＩＣ）を含む。個々の処理要素は共に接続され、ネットワークインターフェースコントローラにも接続する。
【０００４】
処理要素には最高性能（ＰＰ）があり、これは１秒当たりの浮動小数点演算、すなわち短く言えば「ＦＬＯＰＳ」、として測定される、処理要素が１秒当たりに実行できる（浮動小数点）演算の数の上限のことである（浮動小数点演算が基準とされるが、この演算は整数演算と等しくなり得る）。計算ノードの最高性能（ＰＰＣＮ）は、計算ノードの処理要素の最高性能の総計になる。所与のアプリケーションＡでは、一般に、この最高性能の一部分ηＡしか実現できず、ここで０＜η＜１であり、ηは持続性効率と呼ばれる。その理由は、データ転送速度、すなわち処理要素のメモリから計算レジスタまでの間のメモリ帯域幅（ＭＢＷ）が有限であり、したがって、所与のアプリケーションでは利用最高性能をηＡにまで低下させることになるからである。同様の議論を入力／出力データ転送速度について、すなわち、利用最高性能を潜在的にさらに低下させる１つの処理要素から計算ノード外の別の処理要素までの通信帯域幅（ＣＢＷ）について、行うことができる。
【０００５】
大まかには、高性能計算の実行者は、１バイト／ＦＬＯＰの速度Ｒ＝ＭＢＷ／ＰＰが、ほとんどのデータ集約型アプリケーションに関して１に近いηを達成するために必要な要件と考えている。最高性能を使い切るために所与のアプリケーションＡに必要とされるデータ速度に応じて、処理要素の実際のメモリ帯域幅が、所与のアプリケーションＡに関して達成できるηＡを決定する。
【０００６】
現在のハイエンドＣＰＵでは、Ｒが０．０５〜０．１バイト／ＦＬＯＰしかなく、これは、処理要素の計算コアの数が増加している過去１０年に低下し続けている数字である。グラフィックアプリケーションおよびつい最近のディープラーニングアプリケーションのデータ要件に適合するように主として設計されている、現在のハイエンドＧＰＵは、０．１５バイト／ＦＬＯＰに満たないＲしか達成しない。好ましくない結果として、ほとんどのデータ集約型アプリケーションで達成するηＡは、実行されるアルゴリズムによるさらなる何らかの低下とは無関係に、または必要とされる処理要素に関しての並列処理とは無関係に、推測で現在のＣＰＵでは５〜１０％未満、および現在のＧＰＵでは約１５％になる。アプリケーションがデータ集約型であればあるほど、効率ηＡが処理要素の所与のＲに対して低くなる。
【０００７】
この問題は他でも確認されており、たとえば、ｈｔｔｐ：／／ｗｗｗ．ｅｌｅｃｔｒｏｎｉｃｄｅｓｉｇｎ．ｃｏｍ／ａｎａｌｏｇ／ｍｅｍｏｒｙ−ｗａｌｌ−ｅｎｄｉｎｇ−ｍｕｌｔｉｃｏｒｅ−ｓｃａｌｉｎｇで入手可能な、２０１１年にＥｌｅｃｔｒｏｎｉｃ  Ｄｅｓｉｇｎで発表されたAl Wegnerの「Ｔｈｅ  Ｍｅｍｏｒｙ  Ｗａｌｌ  ｉｓ  Ｅｎｄｉｎｇ  Ｍｕｌｔｉｃｏｒｅ  Ｓｃａｌｉｎｇ」という題の論文に記載されている。
【０００８】
同様の考察が、計算ノード上および計算ノード外の別の処理要素へのデータ転送速度を表す、所与の処理要素の通信帯域幅についてなされ得る。ここでは、コードのスケーラビリティに及ぼす通信帯域幅の影響が重要になる。
【０００９】
計算ノード上の通信帯域幅に関する限り、３つの場合、すなわち、処理要素が高速ネットワークを介して接続される計算ノードと、処理要素が、高速ネットワークに再び接続される通信ノードで別個のネットワークに接続される計算ノードと、共用メモリを介して計算ノード上のデータを交換する計算ノードとを区別することができる。
【００１０】
計算ノード外の通信に関して、高性能計算の実行者は、速度ｒ＝ＣＢＷ／ＭＢＷ＞０．１〜０．２が、多数のアプリケーションのスケーラビリティを達成するのに適切と考える。通信帯域幅がメモリ帯域幅に近ければ近いほど、スケーラビリティの条件が好適であることが明らかである。
【００１１】
理論的に可能な通信帯域幅は、処理要素から高速ネットワークまで利用可能なシリアルレーンの数によって決まる（このことはＣＰＵにもＧＰＵにも当てはまる）。この数は、現在のチップ技術では制約があるシリアライザ・デシリアライザの実施態様によって制限される。
【００１２】
計算ノードのネットワークインターフェースコントローラ（ＮＩＣ）が、計算ノードの処理要素との間を行き来するデータストリームを保持するように適切に規模設定されることは重要である。
【００１３】
米国特許出願公開第２００５／０１６６０７３号は、システムメモリ帯域幅を最大にするための可変動作周波数のシステムプロセッサの使用について記載している。
【００１４】
米国特許出願公開第２０１１／０１６７２２９号は、メモリではないハードドライブなどの記憶デバイスにそれぞれ接続された複数の計算デバイスを備える計算システムについて記載している。このシステムの目的は、記憶データを取り込むデータ速度と処理速度を一致させることである。この特許文献で示唆しているのは、データ転送速度の高い記憶ユニット、すなわちソリッドステートドライブをハードディスクドライブの代わりに、またはそれに加えて、低いクロック速度で動作する特定の低電力プロセッサと組み合わせて使用することである。
【００１５】
ＵＳ３０２５／００９５６２０は、計算システムの作業負荷のスケーラビリティを推定する技法について記載している。このシステムは、単一のマルチコアプロセッサを有する。
【発明の概要】
【００１６】
本発明は、並列計算システムにおいて動作する計算ユニットを提供し、この計算ユニットは、複数の処理要素と、計算ユニットを計算システムの他の構成要素に接続するためのインターフェースとを備え、データをメモリユニットから所定の最大データ速度ＭＢＷで転送することができるように、かつインターフェースが最大データ転送速度ＣＢＷをもたらすように各処理要素が公称最高処理速度ＮＰＲを有し、各処理要素がそれぞれのメモリユニットを含み、ＰＰ＝ｎ×ＮＰＲの毎秒演算であるような公称最高処理速度で動作する、個数ｎの処理要素によって得られる計算ユニットに所定の最高計算性能ＰＰを与えるために、計算ユニットは、整数倍算のｎ個のｆ倍の処理要素を含み、ここで、ｆは１よりも大きく、各処理要素はＮＰＲ／ｆの処理速度で動作するように制限される。
【００１７】
別の態様では、本発明は、マルチコアプロセッサおよび複数のグラフィック処理ユニットＧＰＵを備える計算ユニットを動作させる方法を提供し、各ＧＰＵが毎秒ＰＰＧ演算という公称最高性能を有し、この方法は、ＧＰＵをその公称最高性能速度の一部分１／ｆで動作させることを含み、計算ユニットは、毎秒ＰＰ演算という所定の最高計算性能を実現し、また計算ユニットは、ＰＰがＰＰＧのｎ倍に等しくなるようにｆ個のｎ倍のＧＰＵを有する。
【００１８】
本発明は、処理要素のクロック周波数ｖをｆ分の１に低減させることにより、処理要素のエネルギー消費をｆ分の１以下に低減できることに関する。この処理は、「アンダークロック」と呼ばれる。
【００１９】
次の近似公式
Ｐ∝ＣＶ2
は、処理要素のデバイスの電力消費に当てはまり、ここでＣは静電容量、Ｖは電圧、およびＰは電力消費である。この式は、Ｐがｖに対しては線形に、Ｖに対しては二乗のオーダで増減することを意味する。
【００２０】
一例としてＧＰＵのクロック周波数に関して、近年、電力モデリングについての多数の論文が発表されており、これらの論文ではとりわけ、電力消費を処理要素の個々の部分に割り当てるように努めている。最新のＮＶＩＤＩＡ  ＧＰＵでは、ストリーミングマルチプロセッサ（ＳＭ）の周波数を変更することができる。この周波数変更は、利用可能な電力バジェットの最適使用を行うためにますます動的に設計され、ハードウェアによって自動的に制御される。文献による限り、メモリサブシステムの周波数は変更することができず、現在の世代では自動的にクロック制御される。これにより、メモリ帯域幅によって性能が制限されているアプリケーションでは、ＳＭの周波数をいくらか低減することによってエネルギーバランスを改善することが可能になる。この方法では、約１０％の効果を期待することができる。
【００２１】
アンダークロックした装置の性能は、期待されたよりも良好になることが多い。通常のデスクトップ使途では、最高限の処理要素性能が要求されることはまれである。システムが使用中の場合でさえ、通常は多くの時間がメモリまたは他のデバイスからのデータを待ち受けて費やされる。
【００２２】
このことにより、原理上、計算ノードに装着され周波数ｖで動作している処理要素を周波数ｖ／ｆで動作するｆ個の処理要素で置き換えることが、計算ノードの累積計算能力ＰＰＣＮを変えなくても可能になる。加えて、計算ノードのエネルギー消費は維持されるか、潜在的に低減される。実際には、ｆ＝２またはｆ＝３を選ぶことになる。
【００２３】
本発明の重要な側面は、現代のＣＰＵおよびＧＰＵのような処理要素の場合、計算周波数ｆを低減させることが、同時に処理要素のメモリ帯域幅を低減させなくてもできるということである。その結果、この修正を受けて速度Ｒはｆ倍に増加される。計算コアの動作速度を増加させることは、そのメモリ速度に適合しなくては不可能であることに注目されたい。
【００２４】
第２に、計算ノードの処理要素の数をｆ倍に増加させると、その計算ノードで使用可能なシリアルレーンの総数がｆ倍に増加する。したがって、計算ノード外の入力／出力動作の速度ｒが、ｆ倍に同様に改善される。
【００２５】
これらの改善により、計算ノードごとの同時実行性がｆ倍に向上する。これには、多様で高度にスケーラブルなアプリケーションに対するアルゴリズム的な手法の調整が必要であるが、このことには原則として問題がない。
【００２６】
エネルギー消費は一定のままであると予想されるが、処理要素の数が増加すると、一見して投資コストが増加し得る。しかし、これらの多くのコストはメモリによるものであり、このコストは、計算ノードごとのメモリの総量を保持しながら処理要素ごとにｆ分の１に低減させることができる。さらに、ハイエンド処理要素を低い周波数で使用することにより、産出物のうち最高周波数では動作できない非常に低コストの部分を利用できるようになり得る。
【００２７】
第２の手段として、処理要素の動作電圧（Ｖ）の低減を実行することができ、エネルギー消費がさらに低減することになる。電圧への依存性は、電力消費が電圧に対して二乗のオーダで増減するので著しくなり得る。この「アンダーボルト」は、アンダークロックに付加的に、または別個に使用することができ、処理要素の計算セクションのエネルギー消費を改善するための本発明の方策の別の要素である。
【００２８】
本発明は、並列処理システムの効率を性能およびエネルギー消費の面で向上させる装置を提供する。処理要素の動作周波数を低減させ、それに応じて処理要素の数を増加させる技法上の修正が導入されて、向上したアプリケーション性能において全システムの同じ最高性能が達成される。これらの修正は、全体効率に影響する２つのシステムパラメータ、すなわち、処理ノードの最高性能で割ったメモリからレジスタへのデータ帯域幅と、処理ノードの最高性能で割った、並列システムの高速ネットワークへの処理ノードのデータ帯域幅とに影響を及ぼす。これにより、ノードの並列処理が向上することが、一定の、さらにはより少ないノードのエネルギー消費によって可能になる。この方法では、システムはアプリケーション性能の最適条件に調整することができる。この最適条件は、任意の所望の手段のために、たとえば、特定のアプリケーションポートフォリオの平均のアプリケーション性能、または特定のアプリケーションの最適性能を得るために、選択することができる。全投資コストもまた、使用される処理要素が、メモリおよび入力／出力性能を維持しながらその処理ユニットの計算コアの低い動作周波数で動作することになるので、同様のままになると予想される。
【００２９】
提示された本発明は、係数ｆを選択することを可能にし、この係数は、処理要素周波数の低減と、対応する計算ノードの処理要素数の増加とを、選択された所望の基準、たとえばアプリケーションの特定のポートフォリオに対する平均最大電力、または特定のアプリケーションに対する最大電力に応じて決定する。実際には、両修正はまた、エネルギー消費および投資コスト、ならびに最適性能などのシステムに重要なパラメータの影響に応じて、特に、スケーラビリティに関するアーキテクチャとアプリケーションの相互作用に関して、別個に適用することもできる。
【００３０】
本発明の好ましい実施形態について、単なる例として添付の図面を参照して説明する。
【図面の簡単な説明】
【００３１】
【図１】従来の並列処理システムの概略図である。
【図２】２つのグラフィック処理ユニット（ＧＰＵ）を含み、最高性能速度が２５テラＦＬＯＰＳである計算ノードの概略図である。
【図３】図２の構成の２倍のグラフィック処理ユニットを含むが最高性能速度は同じである、計算ノードの概略図である。
【発明を実施するための形態】
【００３２】
本発明は、現存する技術を用いて実現することができる。一例を示すと、本発明は、あらゆる目的のために参照により本明細書に組み込まれるＷＯ２０１２／０４９２４７および後に続く出願ＥＰ１６１９２４３０．３およびＥＰ１８１５２９０３．３に記載のように、２０２１年までに最高エクサスケール性能を目ざすモジュールスーパーコンピューティングシステムの中の、ブースタモジュールのアプリケーション性能を高速化する方法になり得る。本発明の目標は、データ集約型計算に関する計算ノード上のアプリケーション性能を他の任意のアーキテクチャ上の設計と比較してｆ倍に向上させること、および加えて、計算ノード外の多数の通信要件がある多くのアプリケーションのより良好なスケーリングのためのメモリ帯域幅と歩調を合わせるために、通信帯域幅を増大させることである。
【００３３】
実現が、Ｍｅｌｌａｎｏｘ  ＢｌｕｅＦｉｅｌｄ（ＢＦ）マルチコアシステムオンチップ技術を使用する通信ノードの組によってもたらされる。ＢｌｕｅＦｉｅｌｄカードが、複数のグラフィックプロセッサユニット（ＧＰＵ）、ＰＣＩｅ  ｇｅｎ  ４スイッチ、および１つまたは複数の高データ速度（ＨＤＲ）スイッチを備え得る。各ＢｌｕｅＦｉｅｌｄカードは、４つまでのＧＰＵを装備することができる。ＢＦカードは、２つのＭｅｌｌａｎｏｘホストチャネルアダプタ（ＨＣＳ）をそれぞれ備え、したがって、２倍までのＨＤＲ性能を計算ノード外で達成することができる。
【００３４】
ＡＭＤ  Ｒａｄｅｏｎ  Ｖｅｇａ  ２０  ＧＰＵは、２０１８年の中頃に一般出荷が予定されている、処理要素の具体例と考えられる。Ｖｅｇａ−２０  ＧＰＵは、ＢＦ通信ノードのＰＣＩ−ｅインターフェースに、１６個のＰＣＩ  ｇｅｎ  ４レーンによって接続することができる。このＧＰＵには、各８ギガバイトの４つのメモリバンクに分けられた３２ギガバイトのＨＢＭ−２メモリが装備されると予想される。１６ＧＢのＨＢＭ−２もまた実現可能なものであり、各４ギガバイトの４つのメモリバンクの形でやはり構成される。したがって、メモリ速度は両方の構成で同じにすることができる。
【００３５】
毎秒１．２８テラバイトの予想されるメモリ帯域幅と、毎秒１２．５テラＦＬＯＰ（二倍精度）の予想最高性能とにより、Ｒ＝０．１になる。これは、実行者の基準の１バイト／ＦＬＯＰの１０分の１にすぎないが、それでもなお、得られる最善の速度Ｒのうちの１つである。
【００３６】
通信帯域幅は、それぞれがレーンおよび方向ごとに２ギガバイトの能力がある１６個のＰＣＩｅ  ｇｅｎ  ４レーンによって上限が定められる。ｒ＝６４ギガバイト／１．２８テラバイト＝０．０５であるので、データ集約型アプリケーションの厳しいスケーラビリティ問題とは必ず闘わなければならない。この点において、Ｒおよびｒのいかなる改善も助けになる。
【００３７】
このことは、図２および図３で概略的に示されている。
【００３８】
標準構成は、最高性能を達成する最高周波数で動作させる２つのＧＰＵを処理要素としてＢＦ−ＣＮごとに備えるものとする。最初の構成は図２に示されている。計算ノードに関する限り、以下のシステムパラメータが与えられるか予想される。
計算ノードごとのＧＰＵの数：２
ｆ：１
計算ノードごとのエネルギー消費：２×１５０Ｗ＝３００Ｗ
計算ノードごとのメモリ：６４ＧＢ
計算ノードごとのメモリ帯域幅：毎秒２．５６テラバイト
計算ノードごとの最高性能：毎秒２５テラＦＬＯＰデータ処理
計算ノードごとのＲ：０．１
計算ノードごとのＰＣＩｅ  ｇｅｎ  ４レーン：３２個
計算ノードごとの両方向の通信速度：１２８Ｇバイト／秒（処理要素間で１／２、ＮＩＣに対し１／２）
可能な２×Ｍｅｌｌａｎｏｘ  ＨＤＲ：両方向に毎秒１００Ｇバイト
計算ノードごとのｒ：０．０５
通信と平衡していないＮＩＣ
【００３９】
図３に示す改善された構成は、最高周波数ｖの半分、ｆ＝２で動作させるＢＦ通信ノードごとの処理要素として４つのＧＰＵを備え、それによって、同じ計算ノード公称最高性能値が得られる。この場合、処理要素は、標準構成の最高性能の２分の１までで動作する。改善された計算ノードに関して、以下のシステムパラメータが与えられるか予想される。
計算ノードごとのＧＰＵの数：４
ｆ：２
計算ノードごとの予想エネルギー消費：４×７５Ｗ＝３００Ｗ
計算ノードごとのメモリ：ＧＰＵごとに１個１６ＧＢで６４ＧＢ、または１個３２ＧＢで１２８ＧＢ
計算ノードごとのメモリ帯域幅：毎秒５．１２テラバイト
計算ノードごとの最高性能：毎秒２５テラＦＬＯＰデータ処理
計算ノードごとのＲ：０．２
計算ノードごとのＰＣＩｅ  ｇｅｎ  ４レーン：６４個
計算ノードごとの両方向の通信速度：２５６Ｇバイト／秒（処理要素間で１／２、ＮＩＣに対し１／２）
可能な２×Ｍｅｌｌａｎｏｘ  ＨＤＲ：両方向に毎秒１００Ｇバイト
計算ノードごとのｒ：０．０５
通信と平衡しているＮＩＣ
【００４０】
アンダークロックにアンダーボルトを加えて、エネルギー消費をさらに低減することができる。アンダーボルトのもとでの処理要素の安定性は、全電圧が加えられた場合よりも受ける影響が少ないことがある。
【図１】
2021523491.tif 000003
【図２】
2021523491.tif 000004
【図３】
2021523491.tif 000005
【国際調査報告】
2021523491.tif 000006
2021523491.tif 000007