(邦訳:複合型計算システムにおける性能自動チューニング手法に関する研究)
佐藤 功人 (株)日立製作所 中央研究所 |
[背景]汎用プロセッサとアクセラレータを持つ複合型計算システムの増加
[問題]アクセラレータのための性能チューニングの必要性
[貢献]複合型計算システムの利用を容易にするプログラミング支援手法
従来,計算システムの性能向上は汎用プロセッサの単体性能向上とプロセッサ数の増加によって達成されてきた.しかし,性能向上に伴って電力消費量と発熱量が増大し,消費電力や冷却方法の問題から,汎用プロセッサのみで性能向上を図ることは困難になってきている.そのため,汎用プロセッサに加えて用途に特化して設計された特殊なプロセッサ(以下,アクセラレータと呼ぶ)を組み合わせることで性能向上を図る計算システムが増加してきている.このような複数種のプロセッサを組み合わせた計算システムは「複合型」と呼ばれ,今後の計算システムにおいて主要な構成になると考えられている.近年急速に計算能力を高めてきている描画処理用プロセッサ(Graphics Processing Unit, GPU)は,安価で高性能なアクセラレータとして注目を集めており,プログラミング環境も整ってきている.このGPUは一般的なPCにもすでに搭載されており,実行環境を入れるだけでアクセラレータの高い演算性能を利用可能となっている.
複合型計算システムは,容易に高い設計上の性能を達成することができるが,アクセラレータが持つ高い性能を最大限に引き出すためには,さまざまな配慮が必要となる.汎用プロセッサとアクセラレータはそれぞれ異なる方針で設計されているため,それぞれの設計方針に適合するようにプログラムを記述しなければハードウェアの性能を引き出すことは難しい.また,アクセラレータは適する処理と不適な処理で実行時間が大きく変わる特性を持つため,適した処理を見きわめてアクセラレータに割り当てる必要がある.しかし,アクセラレータの使いどころを見極めるためにはアクセラレータと処理の両方に詳しい知識が必要である.さらに,入力データによって処理が変化する場合や異なる構成の計算システムで実行する場合,常にアクセラレータを用いることで高速化が可能であるとは限らない.このように,複合型計算システムの性能を最大限に引き出すプログラムを記述することは難しく,高い性能を得るためには手間のかかる調整が必要となる.
本論文では,さまざまな構成の複合型計算システム対して,アクセラレータの使いどころを自動的に判断して処理を実行するための手法と,アクセラレータの特性に合わせてプログラムを自動変形する手法を提案している.これらの手法の評価を通じて,複合型計算システムのためのプログラミングフレームワークにおいて,どのようなプログラミング支援手法が効果的であるかを明らかにしている.提案手法をプログラミングフレームワークに組み込むことで,アクセラレータの特性や処理との相性に詳しくないアプリケーションプログラマであっても,複合型計算システムの性能を引き出すことができ,より多くのプログラマが複合型計算システムの高い性能を利用できるようになる.
複合型計算システムは,容易に高い設計上の性能を達成することができるが,アクセラレータが持つ高い性能を最大限に引き出すためには,さまざまな配慮が必要となる.汎用プロセッサとアクセラレータはそれぞれ異なる方針で設計されているため,それぞれの設計方針に適合するようにプログラムを記述しなければハードウェアの性能を引き出すことは難しい.また,アクセラレータは適する処理と不適な処理で実行時間が大きく変わる特性を持つため,適した処理を見きわめてアクセラレータに割り当てる必要がある.しかし,アクセラレータの使いどころを見極めるためにはアクセラレータと処理の両方に詳しい知識が必要である.さらに,入力データによって処理が変化する場合や異なる構成の計算システムで実行する場合,常にアクセラレータを用いることで高速化が可能であるとは限らない.このように,複合型計算システムの性能を最大限に引き出すプログラムを記述することは難しく,高い性能を得るためには手間のかかる調整が必要となる.
本論文では,さまざまな構成の複合型計算システム対して,アクセラレータの使いどころを自動的に判断して処理を実行するための手法と,アクセラレータの特性に合わせてプログラムを自動変形する手法を提案している.これらの手法の評価を通じて,複合型計算システムのためのプログラミングフレームワークにおいて,どのようなプログラミング支援手法が効果的であるかを明らかにしている.提案手法をプログラミングフレームワークに組み込むことで,アクセラレータの特性や処理との相性に詳しくないアプリケーションプログラマであっても,複合型計算システムの性能を引き出すことができ,より多くのプログラマが複合型計算システムの高い性能を利用できるようになる.

(2012年7月22日受付)