情報処理学会論文誌プログラミングVol.10No.55 (Nov. 2017)
バリア同期と共有メモリを備えたGPGPUプログラム合成器Kani-CUDA
蟹 暁1,a)朝倉 泉2増原 英彦2青谷 知幸2
2017年3月3日発表
GPGPU とは GPU を汎用計算のために用いる技術であり，高い並列性によって大規模な計算を高速に行うことができる．しかし，GPGPU プログラミングは一般的なプログラミングよりも記述が複雑であり正
しさを確信することが難しい．たとえば，共有メモリを用いたブロッキング最適化におけるメモリアドレスの計算式が複雑になることや，非同期的に実行されるスレッド間でメモリ競合が起きないことの確認などである．このような難しさに対して GPGPU プログラミングを支援するためのプログラム合成器が考案
されている．しかし，これらの合成器はバリア同期や共有メモリがない単純な実行モデルを採用しているため，高度な最適化がなされたプログラムを扱うことができなかった．そこで我々はバリア同期と共有メモリを備えたより CUDA に近い意味論を持ったプログラム合成器 Kani-CUDA を提案する．Kani-CUDAは既存の GPGPU プログラム合成器 SynthCL をもとに設計されているが，その実行方式は SynthCL が
インタリーブ実行であるのに対し，Kani-CUDA ではバリア同期を扱うためにロックステップ実行を採用している．応用例として熱拡散ステンシル計算に共有メモリ最適化を施したプログラムにおいて，配列の添え字計算式やバリア同期命令の配置の合成を達成した．
Kani-CUDA: A GPGPU Program Synthesizer with BarrierSynchronization and a Shared Memory
Akira Kani1,a)Izumi Asakura2Hidehiko Masuhara2Tomoyuki Aotani2
Presented: March 3, 2017
GPGPU uses a GPU for general purpose computation and performs large amount of computation at highspeed by exploiting high parallelism. However, compared to sequential programming, GPGPU programmingis more complicated, and more diﬃcult to conﬁrm correctness. For example, blocking optimizations usingshared memory require complicated memory address calculations, and asynchronously executed threads re-quire conﬁrmation of memory race freedom. To cope with those diﬃculties, there are program synthesizersthat support GPGPU programing. However, those synthesizers cannot deal with highly optimized programs,since they have a simple execution model that does not have barrier synchronization and a shared memory.We propose a program synthesizer Kani-CUDA that has semantics close to CUDA, in particular supportingbarrier synchronization and a shared memory. The design of Kani-CUDA is based on the one of SynthCL, anexisting GPGPU program synthesizer. Unlike SynthCL that uses an interleave execution model, Kani-CUDAuses a lock-step execution model to deal with barrier synchronization. As an application, we synthesizedarray index expressions and placement of barrier synchronization statements in a stencil computation for athermal diﬀusion with a shared memory optimization.
1東京工業大学理学部情報科学科Department of Information Science, Tokyo Institute of Tech-nology, Meguro, Tokyo 152–8550, Japan2東京工業大学情報理工学院数理・計算科学系Department of Mathmatical and Computing Science, TokyoInstitute of Technology, Meguro, Tokyo 152–8550, Japana)kani.a.aa@m.titech.ac.jp
c⃝ 2017 Information Processing Society of Japan5