@techreport{oai:ipsj.ixsq.nii.ac.jp:00201016, author = {綱島, 隆太 and 小林, 諒平 and 藤田, 典久 and 中道, 安祐未 and 朴, 泰祐 and Lee, Seyong and Vetter, Jeffrey and 村井, 均 and 佐藤, 三久}, issue = {11}, month = {Dec}, note = {近年,高性能コンピューティング(HPC : High Performance Computing)分野におけるトップレベルのマシンには,アクセラレータを搭載した大規模計算クラスタが多く含まれている.高い演算性能とメモリバンド幅を有する Graphics Processing Unit(GPU)がアクセラレータとして主に用いられているが,条件分岐が頻出する処理や多数の演算コアを活用できないような並列性の小さい処理といった GPU の不得手する演算は依然として存在し,それが性能向上の妨げとなっている.このような問題に対し,任意の論理回路をプログラム可能な集積回路である Field Programmable Gate Array(FPGA)に,GPU が不得手とする処理を実行する回路を実装し,それを FPGA に適宜にオフロードすることによってアプリケーション全体の性能を向上させるアプローチを我々は試みている.しかしながら,GPU と FPGA の演算カーネルは,それぞれ CUDA と OpenCL といった異なるプログラミング言語で開発する必要があり,このようなマルチリンガルプログラミングは,ユーザーにとって多大な負担となる.そこで本研究では,GPU と FPGA が搭載された計算機システム上にて,両アクセラレータの統合的な制御を可能にする OpenACC を用いたプログラミング環境について検討する.本報告では,OpenACC を用いて記述された一つのプログラムを GPU 用,FPGA 用コンパイラそれぞれに向けたファイルに分割するソース to ソースコンパイラを開発し,最終的にこれらをリンクした単一の実行ファイルにより,両アクセラレータの連携が実現できるか検証を行った.その結果,開発したコンパイラによって,統一したアプリケーションプログラミングインターフェイス(API)で書かれた一つのプログラムから,CPU,GPU,FPGA で連携して演算を行う単一の実行ファイルが生成され,両アクセラレータの連携が実現できることが確認された.}, title = {GPU-FPGA協調プログラミングを実現するコンパイラの開発}, year = {2019} }