本研究は、マルチコアCPUとGPU(Graphics Processing Unit)を同時に搭載するヘテロジニアスなアーキテクチャの普及を見据え、それぞれ特徴的なアーキテクチャを活用してプログアムの高性能化を行うための自動並列化システムの実現を目指すものである。このようなシステムの実現により、ユーザから見ると、使い慣れた逐次的なプログラムの記述を行うだけで、後はシステムが実行時のプロファイル情報を活用してソースレベルの自動並列化を行うことにより、ヘテロジニアスなアーキテクチャの特徴を活用した高性能実行が達成できるという大きなメリットが生まれる。 このような研究目的に沿って、これまで(1) CPU/GPU搭載システムにおける並列化の課題抽出、(2)Valgrindを用いたプロファイリングシステムを活用した自動判定法の検討、(3) プラットフォームの違いによる影響の検討、などを行ってきた。これらの研究によりプロファイリングシステムに、(i) GPUの性能を左右するコアレスアクセスの可能性を判定するためのメモリアクセスパターンのプロファイリング機能と、(ii)多重ループのプロファイリング機能が必要であることが明らかとなり、平成28年度においては、これらの機能拡充を中心に研究を行った。特に(ii)については、最内ループに限定した並列化による高性能化には限界があることから、新たにループブロックの概念を導入し、プロファイラに反映するとともに、その動作を実験的に確認した。
|