2011 Fiscal Year Annual Research Report
静的型付関数型言語のSIMD演算・並列化拡張の型に基づく高性能な実装に関する研究
Project/Area Number |
20700039
|
Research Institution | 財団法人京都高度技術研究所 |
Principal Investigator |
吉田 信明 財団法人京都高度技術研究所, 研究部, 副主任研究員 (00373506)
|
Keywords | ソフトウェア学 / 言語処理系 / 並列計算 / ハイパフォーマンスコンピューティング |
Research Abstract |
本年度は,再帰的なデータ構造を用いたCUDA環境における並列計算のStandardML言語からの利用の実現と,StandardML言語(のサブセット/拡張)での並列計算用コード記述の実現に向けた研究を行った. このようなことを実現するにあたっての課題は,まず,Standard ML言語の中からシームレスに(Standard ML言語の関数として),CUDA環境用の関数を定義し,利用できるようにすることである.そのために,Standard ML言語を拡張し,CUDA C関数のプログラムを直接Standard MLの中に埋め込めるようにした. その上で,処理系を拡張し,実験的な処理系として,上記の言語拡張と,埋め込んだ関数を言語内から直接駆動できるようにするためのバックエンドの実装を行った.実装には,東北大学電気通信研究所大堀研究室において実装されているStandard ML処理系の、SML#処理系を使用した. 具体的には,以下を行った. ●埋め込みに必要な文法の拡張 ●埋め込んだ関数からのStandard MLの型の取り出し ●埋め込んだ関数のGPUコードへのコンパイル機構の組み込み ●コンパイルしたGPUコードのStandard MLからの呼び出しに必要な内部処理の自動生成 これらにより,拡張したStandard ML言語で記述されたプログラムのみで,GPUを用いた並列演算を実行することが可能となった.なお,埋め込める関数は,現状ではCUDACのGPU用関数を直接埋め込む形になっている.内部では,抽象構文木として取り扱っているので,将来,Standard ML風のDSLを埋め込むような形に発展させることも可能である.また,対象とするデータ型も配列や整数などの制約もある.
|