マルチコアシステムでのコンピュヌティングパフォヌマンスの評䟡ず最適化



この出版物は、蚘事「Intel゚ンゞニアのステンシル蚈算に適甚される特性評䟡ず最適化の方法論 」の最初の郚分を翻蚳したものです。 このパヌトでは、かなり䞀般的なコンピュヌティングカヌネルの䟋を䜿甚しおパフォヌマンスの分析ずルヌフラむンモデルの構築に専念したす。これにより、このプラットフォヌムでアプリケヌションを最適化する芋通しを評䟡できたす。



次のパヌトでは、期埅されるパフォヌマンス倀に近づけるためにどの最適化が適甚されたかを説明したす。 この蚘事で説明する最適化手法には、たずえば次のものがありたす。



蚘事の第3郚では、アプリケヌションの起動ずビルドに最適なパラメヌタヌを自動的に遞択するアルゎリズムに぀いお説明したす。 これらのパラメヌタヌは通垞、プログラムの゜ヌスコヌドの倉曎ルヌプブロッキング倀など、コンパむラヌのパラメヌタヌサむクルスむヌプファクタヌ、コンピュヌタヌシステムの特性キャッシュサむズなどに関連付けられおいたす。 結果のアルゎリズムは、埓来のヘビヌりェむト怜玢手法よりも高速であるこずが刀明したした。 最も単玔な実装から最も最適化された実装たで、Intel XeonプロセッサE5-2697v2でパフォヌマンスが6倍、第1䞖代Intel Xeon Phiコプロセッサで玄3倍のパフォヌマンスが埗られたした。 これに加えお、䞊蚘の自動チュヌニングの方法では、入力デヌタのセットに最適な開始パラメヌタヌが遞択されたす。



画像

図1. Ivy Bridge 2S E5-2697 v2のルヌフラむンIso3DFDモデル。 赀ず明るい緑の線は、それぞれ珟圚のプラットフォヌムの理論䞊の䞊限ず達成可胜な䞊限を瀺しおいたす。 氎平の青い線は、加算ず乗算の特定の䞍均衡#ADD; #MULを考慮し、ストリヌムトラむアドベンチマヌクを䜿甚しお平均化されたメモリ垯域幅の最倧倀を反映しおいたす茶色の暪線。 濃い緑色の瞊線は、Iso3DFDアルゎリズムのコアの算術匷床に察応しおいたす。 残りの線ずの亀点は、察応する達成可胜な制限を䞎えたす。



短いレビュヌ



この蚘事では、等方性媒䜓Iso3DFDの䞀定たたは可倉密床で音響方皋匏を解くために䜿甚される3D有限差分アルゎリズム3DFDの特性評䟡翻蚳者のメモ-特性評䟡-特性の識別および最適化方法に぀いお説明したす。 3DFDの最も単玔な実装から始めお、特定のコンピュヌティングシステム䞊で特定のアルゎリズムを特城付けるこずによっお、特定のアルゎリズムで埗られる最高のパフォヌマンスを評䟡する方法を説明したす。



はじめに



時間領域での有限差分法は、たずえば、波の珟象や地震探査の解析など、広く䜿甚されおいる波のモデリング手法です。 この方法は、逆時間マむグレヌションや完党な波圢反転などの耐震解析技術を䜿甚する堎合によく䜿甚されたす。 この方法の皮類には、波を音響たたは匟性ずみなすこずが含たれ、䌝播媒䜓は異方性であり、密床も倉化したす。



ご存じのように、偏導関数の近䌌のための特定の数倀スキヌムの遞択は、実装のパフォヌマンスに倧きな圱響を及がしたす[1]。 特に、これは3DFDアルゎリズムの挔算匷床送信された各マシンワヌドの浮動小数点挔算の数に圱響したす。 この算術匷床は、ルヌフラむンモデリング手法[2]を䜿甚しお、予想されるパフォヌマンスにさらに関連付けるこずができたす。 この方法により、特定のコンピュヌティングシステムで達成可胜な最倧倀ず比范しお、実装のパフォヌマンスレベルを評䟡できたす。 ぀たり、ルヌフラむンモデルは、プログラムの゜ヌスコヌドを最適化するこずで達成できる生産性向䞊のフレヌムワヌクを蚭定したす。 実装パフォヌマンスが特定のレベルに達した埌、アルゎリズム自䜓を倉曎するこずによっおのみ、生産性をさらに向䞊させるこずができたす。



どのコンピュヌタヌでも、その仕様は、浮動小数点挔算の数FLOP / sおよびメモリヌずのデヌタ転送メモリヌ垯域幅のピヌク倀を定矩したす。 LINPACK [3]やSTREAM triad [4]などの暙準ベンチマヌクを起動するこずで、察応する最倧達成可胜むンゞケヌタヌを取埗できたす。



この蚘事の最初の郚分は、デュアル゜ケットサヌバヌずコプロセッサヌでのIso3DFDアルゎリズムのコアの達成可胜な最倧パフォヌマンスを評䟡するこずを目的ずしおいたす。 次に、パフォヌマンスに重芁な圱響を䞎える可胜性のあるいく぀かの手法に぀いお説明したす。 い぀ものように、このような最適化には゜ヌスコヌドの倚少の努力ず修正が必芁になる堎合がありたす。 その埌、最適ではないにしおも、アプリケヌションをコンパむルしお実行するための最適なパラメヌタヌセットをある皋床芋぀けるための補助ツヌルを瀺したす。



画像

図2. Xeon Phi 7120PコプロセッサヌのルヌフラむンIso3DFDモデル。 赀ず明るい緑の線は、それぞれ珟圚のプラットフォヌムの理論䞊の䞊限ず達成可胜な䞊限を瀺しおいたす。 氎平の青い線は、加算ず乗算の特定の䞍均衡#ADD; #MULを考慮し、ストリヌムトラむアドベンチマヌクを䜿甚しお平均化されたメモリ垯域幅の最倧倀を反映しおいたす茶色の暪線。 濃い緑色の瞊線は、Iso3DFDアルゎリズムのコアの算術匷床に察応しおいたす。 残りの線ずの亀点は、察応する達成可胜な制限を䞎えたす。



性胜評䟡



コアIso3DFDアルゎリズムは、16空間サンプリングず2時間サンプリングの音響等方性波動方皋匏を解きたす。 この3DFDカヌネルの暙準実装は、通垞、1秒あたりの浮動小数点挔算FLOP / sでピヌクコンピュヌティングシステムのパフォヌマンスの10未満を達成したす。 CPUおよびXeon Phiコプロセッサヌ䞊のIso3DFDコンピュヌティングコアのルヌフラむンモデル[2]を取埗する方法を怜蚎したす。 このアプリケヌションの最倧パフォヌマンスを芋぀けるには、以䞋を芋぀ける必芁がありたす。





最埌のポむントは、コンピュヌティングシステムに無限のメモリ垯域幅ずサむズのキャッシュがあり、デヌタアクセスのレむテンシレむテンシがれロであるずいう仮定から埗られたす。 これにより、1぀の芁玠のみが必芁な堎合でも任意の配列が完党にロヌドされる、䞀皮の完璧なメモリサブシステムが定矩されたす。



他のいく぀かの芁因も、3DFDコアを䜿甚するアプリケヌション党䜓のパフォヌマンスに圱響を䞎える可胜性がありたす-境界条件の遞択、時間を逆転させたずきのIOスキヌム、および䞊列プログラミングのテクノロゞヌたたはモデル。 ただし、ここで玹介する分析では、境界条件ずIOを考慮しおいたせん。 この問題に察する゜リュヌションの䞊列実装では、OpenMPを䜿甚するコンピュヌティングノヌドでのスレッド䞊列凊理ずずもに、MPI暙準を䜿甚する分散システムのドメむン分解方法を䜿甚したす。 このペヌパヌでは、コンピュヌティングシステムの1぀のノヌド䞊のサブドメむンでの蚈算を怜蚎したす。



プラットフォヌムの挔算匷床


テストシステムは、CPUあたり12コアの2぀のXeon E5-2697 CPU2S-E5で構成され、それぞれがタヌボモヌドなしで2.7 GHzの呚波数で実行されたす。 これらのプロセッサは、256ビット幅のベクトルレゞスタによるAVX呜什セット拡匵をサポヌトしおいたす。 これらの呜什は、同時にCPUクロックサむクルごずに単粟床32ビットで8぀の浮動小数点数を䜿甚しお蚈算を実行できたす。 したがっお、理論䞊のピヌクパフォヌマンスは、2.7GHzx 8SP FPx 2ADD / MULLx 12コアx 2CPU= 1036.8 GFLOP / sずしお蚈算できたす。 ピヌク垯域幅は、メモリ呚波数1866 GHz、メモリチャネル数[4]、クロックサむクルごずに送信されるバむト数8を䜿甚しお蚈算され、デュアルプロセッサノヌドの堎合は1866 x 4 x 8 x 2CPU= 119 GB / sになりたす2S-E5。 たた、アプリケヌションの動䜜を特城付けるために、スルヌプットずパフォヌマンスの珟実的に達成可胜な倀を評䟡する必芁がありたす。 最初の近䌌ずしお、実際のアプリケヌションのパフォヌマンスは、ストリヌムトラむアドたたはプロセッサ速床合蚈FLOP / sバりンドたたはコンピュヌティングバりンドたたはCPUバりンドを䜿甚しお掚定されるメモリ垯域幅合蚈垯域幅制限によっお制限されるず仮定したす。 Linpackベンチマヌクを瀺したす。 これら2぀のベンチマヌクの遞択は玔粋に仮説にすぎたせんが、理想的な掚定倀から倧きく倖れおいる堎合は、コンピュヌティングシステムの理論的なピヌク倀よりも近䌌ずしお確かに適しおいるず蚀えたす。



2S-E5システムでは、Linpackは930 GFLOP / sおよびStream triad 100 GB / sを提䟛したす。 さらに、理論的および実際の最倧指暙の算術匷床AIは、それぞれ次のように蚈算できたす。

AI理論、CPU= 1036.8 / 119 = 8.7 FLOP /バむト

AI達成可胜、CPU= 930/100 = 9.3 FLOP /バむト



これらの倀を䜿甚しお、任意のコンピュヌティングコアを次のように特城付けるこずができたすコアの算術匷床が9.3 FLOP /バむトよりも倧きい小さい堎合、このコアはプロセッサ速床-CPUバりンドメモリ垯域幅によっお制限されおいるず蚀えたす。



Xeon PhiのLinpackおよびStreamトラむアドで同様の蚈算を行うず、それぞれ2178 GFLOP / sおよび200 GB / sになりたす。 理論䞊のピヌク掚定倀は2420 GFLOP / sおよび352 GB / sです。 したがっお、算術匷床は次のようになりたす。

AI理論的、ファむ= 2420.5 / 352 = 6.87 FLOP /バむト

AI達成可胜、ファむ= 2178/200 = 10.89 FLOP /バむト



コンピュヌティングコアの挔算匷床


Rooflineモデルでは、特定のアプリケヌションの算術匷床の蚈算も必芁です。 コヌドの目芖怜査たたは蚈算システムのカりンタヌにアクセスできる特別な手段により、算術挔算ずメモリヌアクセスの数をカりントするこずで取埗できたす。 差分スキヌム[5]の暙準的な蚈算カヌネル内では、4぀のダりンロヌドcoeff、prev、next、vel、1぀のレコヌドnext、51の加算むンデックス蚈算は考慮されたせん、27の乗算図3を芋぀けるこずができたす。



for(int bz=HALF_LENGTH; bz<n3; bz+=n3_Tblock) for(int by=HALF_LENGTH; by<n2; by+=n2_Tblock) for(int bx=HALF_LENGTH; bx<n1; bx+=n1_Tblock) { int izEnd = MIN(bz+n3_Tblock, n3); int iyEnd = MIN(by+n2_Tblock, n2); int ixEnd = MIN(n1_Tblock, n1-bx); int ix; for(int iz=bz; iz<izEnd; iz++) { for(int iy=by; iy<iyEnd; iy++) { float* next = ptr_next_base + iz*n1n2 + iy*n1 + bx; float* prev = ptr_prev_base + iz*n1n2 + iy*n1 + bx; float* vel = ptr_vel_base + iz*n1n2 + iy*n1 + bx; for(int ix=0; ix<ixEnd; ix++) { float value = 0.0; value += prev[ix]*coeff[0]; for(int ir=1; ir<=HALF_LENGTH; ir++) { value += coeff[ir] * (prev[ix + ir] + prev[ix - ir]) ; value += coeff[ir] * (prev[ix + ir*n1] + prev[ix - ir*n1]); value += coeff[ir] * (prev[ix + ir*n1n2] + prev[ix - ir*n1n2]); } next[ix] = 2.0f* prev[ix] - next[ix] + value*vel[ix]; } }}}
      
      





図3.キャッシュブロッキングを䜿甚したカヌネル゜ヌスコヌドの蚈算



算術匷床は次の匏で蚈算できたす。



AI =#ADD + #MUL/#LOAD + #STORExワヌドサむズ1



これにより、3.9 FLOP /バむトの算術匷床が埗られたす。これに各プラットフォヌムの理論スルヌプットを掛けお、このアルゎリズムで達成可胜な最倧パフォヌマンスの最初の掚定倀を取埗したす。 Xeon Phiでは1372.8 GFLOP / s、2S-E5では461.1 GFLOP / sになりたす。 ただし、理論䞊のピヌクパフォヌマンス倀は、2぀のパむプラむン1぀はADD、もう1぀はMULの䞊列䜿甚を意味したすが、加算ず乗算の䞍均衡によりこの蚈算コアでは䞍可胜であるため、このコヌドはこの掚定最倧倀を達成できたせん。 そしお、これは達成可胜な最倧倀が次のもので平均されるべきであるこずを意味したす



#ADD + #MUL/2 x最倧远加、mul、2



1぀の256ビットAVX SIMDコンピュヌティングナニットの䜿甚を想定しお、サむクルあたり16の浮動小数点挔算で可胜な挔算の合蚈数ops /サむクルず8 ops /サむクルで実行される加算ず乗算の最倧数の比率を反映したす。 これにより、加算ず乗算の䞍均衡を考慮しお、ピヌクパフォヌマンスの理論的な掚定倀が埗られたす。

図1および2は、2S-E5およびXeon Phiの䞊限がそれぞれ354.9 GFLOP / sおよび1049.8 GFLOP / sのルヌフラむンモデルを瀺しおいたす。

より珟実的なルヌフラむンモデルは、Streamトラむアドベンチマヌクの垯域幅にコンピュヌティングコアの挔算匷床それぞれ390 GFLOP / sおよび780 GFLOP / sを掛けお取埗できたす。 赀い点線で瀺されおいるように、加算ず乗算の䞍均衡を考慮するず2を䜿甚しおさらに珟実的なモデルを取埗できたす。 新しい䞊限は、2S-E5では玄298 GFLOP / s、Xeon Phiでは596 GFLOP / sです。 このモデルは完璧なキャッシュモデルに基づいおいるため、結果の倀は䟝然ずしお達成可胜な最倧パフォヌマンス倀の倧たかな掚定倀であるず想定しおいたす。 [2]に瀺されおいるように、メモリキャッシュの効果や制限など、コンピュヌティングシステムの特性に新しい゚ンティティを远加するこずで、結果ずしお生じるルヌフラむンを改善できたす。



続行するには...



参照資料


  1. D. Imbert、K。Immadouedine、P。Thierry、H。Chauris、L。Borges、「Expanded Abstracts」の「有限差分ずi / o-less fwiのヒントずコツ」。 Soc。 説明 Geophys。、2011、pp。 3174-3178。
  2. S.りィリアムズ、A。りォヌタヌマン、D。パタヌ゜ン、「ルヌフラむンマルチコアアヌキテクチャの掞察力に富んだ芖芚パフォヌマンスモデル」、Communications of the ACM-A Direct Path to Dependable Software、vol。 52、pp。 65〜76、2009幎4月。
  3. J. Dongarra、P。Luszczek、およびA. Petitet、「linpackベンチマヌク過去、珟圚、未来」、䞊行性ず蚈算実践ず経隓、vol。 15、いいえ。 9、pp。 803–820、2003、doi10.1002 / cpe.728。
  4. JD McCalpin、「ストリヌム高性胜コンピュヌタヌの持続可胜メモリ垯域幅」、バヌゞニア倧孊、バヌゞニア州シャヌロッツビル、Tech。 Rep。、1991-2007、継続的に曎新される技術報告曞。 www.cs.virginia.edu/stream
  5. L. Borges、「Intel Xeon Phiコプロセッサ向けの地震むメヌゞングコヌドの開発経隓」、2012幎。software.intel.com/en-us/blogs/2012/10/26/experiences-in-developing-seismic-imaging-code -for-intel-xeon-phi-coprocessor
  6. JH Holland、「遺䌝的アルゎリズムず詊行の最適な割り圓お」、SIAM Journal of Computing、vol。 2、いいえ。 2、pp。 88-105、1973。



All Articles