研究の最終年度である2019年度は、ピアソンの相関係数を求めるプログラムを題材にループタイリングや、最適なオンボードDRAMへのデータアクセスパターンが生成されるようなデータ格納形式の変換についての詳細を評価した。ループタイリングについては、空間方向の並列性を活用するベクトル化と時間方向の並列性を活用するパイプライン化の双方と融合させつつデータ参照局所性を向上させるようにタイリングを行う手法の実装を評価した。データ格納形式の変換については、DRAMへのアクセスが連続となるように行列を転置させるという変換や、転送のバーストサイズに合わせた処理を毎サイクル行うようにループの形状を調整することを行った。これらの変換手法についてFPGA環境で評価を行い、有用性を確認した。
コードの高位最適化していくことを試みる過程で、本研究が対象としているヘテロジーニアス環境においては特にプログラミング環境の抽象度により高位最適化の抽象度が決まるとの着想に至った。そこで、FPGA/GPU/CPU を搭載したSoCの開発ボードを事例にインタラクティブに入力に追従するシステムのフルスタックでの実装を行い、高位合成とRTL実装を比べることによりプログラミングの抽象度が与える性能への影響を観測し、高位最適化への道筋における抽象度の面での技術的課題を考察した。
本研究の期間全体を通した研究成果として、ACMの論文誌TACOでの論文出版およびHiPEAC2019での口頭発表、ICAICTA2018におけるKeynote講演、IEEE COOL Chips 22におけるポスター発表、情報処理学会第61回プログラミング・シンポジウムでの口頭発表を行い、メモリ参照局所性の高位最適化において多階層メモリを活用することが有効であることを示すと同時に、より生産的なコード変換方式に向けた技術的課題を整理した。
|