バリア同期と共有メモリを備えたGPGPUプログラム合成器Kani-CUDA

書誌事項

タイトル別名
  • Kani-CUDA: A GPGPU Program Synthesizer with Barrier Synchronization and a Shared Memory

この論文をさがす

抄録

GPGPUとはGPUを汎用計算のために用いる技術であり,高い並列性によって大規模な計算を高速に行うことができる.しかし,GPGPUプログラミングは一般的なプログラミングよりも記述が複雑であり正しさを確信することが難しい.たとえば,共有メモリを用いたブロッキング最適化におけるメモリアドレスの計算式が複雑になることや,非同期的に実行されるスレッド間でメモリ競合が起きないことの確認などである.このような難しさに対してGPGPUプログラミングを支援するためのプログラム合成器が考案されている.しかし,これらの合成器はバリア同期や共有メモリがない単純な実行モデルを採用しているため,高度な最適化がなされたプログラムを扱うことができなかった.そこで我々はバリア同期と共有メモリを備えたよりCUDAに近い意味論を持ったプログラム合成器Kani-CUDAを提案する.Kani-CUDAは既存のGPGPUプログラム合成器SynthCLをもとに設計されているが,その実行方式はSynthCLがインタリーブ実行であるのに対し,Kani-CUDAではバリア同期を扱うためにロックステップ実行を採用している.応用例として熱拡散ステンシル計算に共有メモリ最適化を施したプログラムにおいて,配列の添え字計算式やバリア同期命令の配置の合成を達成した.

GPGPU uses a GPU for general purpose computation and performs large amount of computation at high speed by exploiting high parallelism. However, compared to sequential programming, GPGPU programming is more complicated, and more difficult to confirm correctness. For example, blocking optimizations using shared memory require complicated memory address calculations, and asynchronously executed threads require confirmation of memory race freedom. To cope with those difficulties, there are program synthesizers that 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 supporting barrier synchronization and a shared memory. The design of Kani-CUDA is based on the one of SynthCL, an existing GPGPU program synthesizer. Unlike SynthCL that uses an interleave execution model, Kani-CUDA uses a lock-step execution model to deal with barrier synchronization. As an application, we synthesized array index expressions and placement of barrier synchronization statements in a stencil computation for a thermal diffusion with a shared memory optimization.

収録刊行物

キーワード

詳細情報 詳細情報について

  • CRID
    1050001337908492672
  • NII論文ID
    170000149016
  • NII書誌ID
    AA11464814
  • ISSN
    18827802
  • Web Site
    http://id.nii.ac.jp/1001/00184163/
  • 本文言語コード
    ja
  • 資料種別
    article
  • データソース種別
    • IRDB
    • CiNii Articles

問題の指摘

ページトップへ