講演名 2017-09-26
関数型言語における高階関数を利用した高位合成の一検討
寺岡 拓也(熊本大), 久我 守弘(熊本大), 尼崎 太樹(熊本大), 飯田 全広(熊本大), 末吉 敏則(熊本大),
PDFダウンロードページ PDFダウンロードページへ
抄録(和) FPGA(Field-Programmable Gate Array)の性能向上に伴い,プログラムの実行プラットフォームとしてFPGAが注目されている.近年では,高い抽象度でハードウェアを設計可能にする高位合成の研究が進められているが,その多くがベースとしているC/C++やSystemCなどの手続き型言語から,並列性,ハードウェア構造をコンパイラが正しく推定するのは難しい.そこで,Haskellの組込みDSL(Domain-specific Language)を設計言語とする高位合成とその際の最適な並列度を自動で探索する並列度探索プログラムを提案する.Haskellは純粋関数型言語であることから,ハードウェア設計との親和性が高い.Haskellをはじめとする関数型言語でよく使用されるmap,zipWith,reduce等の高階関数を並列デザインパターンとしてDSLに実装することで,それぞれの処理に最適化されたハードウェア記述を生成することが可能となる.並列度探索プログラムは,FPGAに実装する際にユーザが並列度を探索するよりも設計生産性を向上させるために作成した.結果として,従来のC-like言語による実装と比較して3.00倍~4.96倍の高速化を達成した.また,並列度探索プログラムを用いて演算ユニットの並列度を探索した結果と一致することも確認できた.
抄録(英) The growing capabilities of silicon technology and the increasing complexity of applications in recent decades have forced design methodologies and tools to raise the level of design abstraction beyond register transfer level. The most popular approach has been to develop tools that use procedual languages in a C-like language. However, coarse-grain parallelism from a C program cannot be easily extracted, hence some tools use explicitly parallel languages to design hardware. But, all these tools rely on the programmer to correctly parallelize the application and perform optimizations which often needs hardware design knowledge. In this work, we propose a high-level synthesis tool for FPGAs using DSL embedded in Haskell as the design language and search program for degree of parallelism. Haskell is a pure functional language and better fit for hardware design. We implemented higher-order functions such as map, zipWith and reduce in our DSL, which allows us to automatically extract parallelism in the design. The evaluation results show that our proposed implementation achieves 3.00 and 4.96 times speed-up in two benchmarks, array addition and summation of array, respectively, relative to a C-like language design. Moreover, we also confirme that it is consistent with the result of search program for degree of parallelism.
キーワード(和) 高位合成 / 関数型言語 / FPGA
キーワード(英) High-level Synthesis / Functional Language / FPGA
資料番号 RECONF2017-35
発行日 2017-09-18 (RECONF)

研究会情報
研究会 RECONF
開催期間 2017/9/25(から2日開催)
開催地(和) (株)ドワンゴ
開催地(英) DWANGO Co., Ltd.
テーマ(和) リコンフィギャラブルシステム、一般
テーマ(英) Reconfigurable Systems, etc.
委員長氏名(和) 本村 真人(北大)
委員長氏名(英) Masato Motomura(Hokkaido Univ.)
副委員長氏名(和) 柴田 裕一郎(長崎大) / 佐野 健太郎(東北大)
副委員長氏名(英) Yuichiro Shibata(Nagasaki Univ.) / Kentaro Sano(Tohoku Univ.)
幹事氏名(和) 谷川 一哉(広島市大) / 三好 健文(イーツリーズ・ジャパン)
幹事氏名(英) Kazuya Tanigawa(Hiroshima City Univ.) / Takefumi Miyoshi(e-trees.Japan)
幹事補佐氏名(和) 小林 悠記(NEC) / 中原 啓貴(東工大)
幹事補佐氏名(英) Yuuki Kobayashi(NEC) / Hiroki Nakahara(Tokyo Inst. of Tech.)

講演論文情報詳細
申込み研究会 Technical Committee on Reconfigurable Systems
本文の言語 JPN
タイトル(和) 関数型言語における高階関数を利用した高位合成の一検討
サブタイトル(和)
タイトル(英) A case study of High-level Synthesis Using Higher-order Function on Functional Language
サブタイトル(和)
キーワード(1)(和/英) 高位合成 / High-level Synthesis
キーワード(2)(和/英) 関数型言語 / Functional Language
キーワード(3)(和/英) FPGA / FPGA
第 1 著者 氏名(和/英) 寺岡 拓也 / Takuya Teraoka
第 1 著者 所属(和/英) 熊本大学(略称:熊本大)
Kumamoto University(略称:Kumamoto Univ.)
第 2 著者 氏名(和/英) 久我 守弘 / Morihiro Kuga
第 2 著者 所属(和/英) 熊本大学(略称:熊本大)
Kumamoto University(略称:Kumamoto Univ.)
第 3 著者 氏名(和/英) 尼崎 太樹 / Motoki Amagasaki
第 3 著者 所属(和/英) 熊本大学(略称:熊本大)
Kumamoto University(略称:Kumamoto Univ.)
第 4 著者 氏名(和/英) 飯田 全広 / Masahiro Iida
第 4 著者 所属(和/英) 熊本大学(略称:熊本大)
Kumamoto University(略称:Kumamoto Univ.)
第 5 著者 氏名(和/英) 末吉 敏則 / Toshinori Sueyoshi
第 5 著者 所属(和/英) 熊本大学(略称:熊本大)
Kumamoto University(略称:Kumamoto Univ.)
発表年月日 2017-09-26
資料番号 RECONF2017-35
巻番号(vol) vol.117
号番号(no) RECONF-221
ページ範囲 pp.75-80(RECONF),
ページ数 6
発行日 2017-09-18 (RECONF)