我々は,近年多用される科学技術演算やビッグデータ処理,画像処理などといったデータ量の多い演算の速度向上,そして消費電力低減の両立を目的として, 演算器群とシングルポートメモリを組にした構造をリング接続した構成のメモリ分散型アレイアクセラレータを提案してきた.
しかし,このメモリ分散型アレイアクセラレータの性能を最大限利用するためには,アプリケーション開発者におけるハードウェア構成の十分な理解と 専用命令セットの把握が必須であるため,相応の開発コストが必要となる.アプリケーション開発者向けのメモリ分散型アレイアクセラレータ専用コンパイラや ライブラリを開発する必要がある.本稿では,既存コンパイラが出力するx86-SIMD命令列を用いて,メモリ分散型アレイアクセラレータ専用命令列を生成する命令生成手法, メモリ分散型アレイアクセラレータの構造,およびその性能を最大限利用するための命令生成手法におけるチューニングポイントについて述べる. 生成された命令列と,ハンドアセンブルされた命令列における必要な命令段数とデータ再利用率を比較し,命令生成手法の有用性を確認した. 命令生成手法によって生成されたコードは,ハンドアセンブルされたコードと比較し段数増加を10-20%程度に抑えつつも,ほぼ同等のデータ再利用率を持つことが分かった.