• 検索結果がありません。

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
1
0
0

読み込み中.... (全文を見る)

全文

(1)情報処理学会論文誌. プログラミング. Vol.10 No.5 5 (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 Barrier Synchronization and a Shared Memory Akira Kani1,a). Izumi Asakura2. Hidehiko Masuhara2. Tomoyuki Aotani2. Presented: March 3, 2017. 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.. 1. 2. a). 東京工業大学理学部情報科学科 Department of Information Science, Tokyo Institute of Technology, Meguro, Tokyo 152–8550, Japan 東京工業大学情報理工学院数理・計算科学系 Department of Mathmatical and Computing Science, Tokyo Institute of Technology, Meguro, Tokyo 152–8550, Japan [email protected]. c 2017 Information Processing Society of Japan . 5.

(2)

参照

関連したドキュメント

  BCI は脳から得られる情報を利用して,思考によりコ

tiSOneと共にcOrtisODeを検出したことは,恰も 血漿中に少なくともこの場合COTtisOIleの即行

を高値で売り抜けたいというAの思惑に合致するものであり、B社にとって

攻撃者は安定して攻撃を成功させるためにメモリ空間 の固定領域に配置された ROPgadget コードを用いようとす る.2.4 節で示した ASLR が機能している場合は困難とな

前章 / 節からの流れで、計算可能な関数のもつ性質を抽象的に捉えることから始めよう。話を 単純にするために、以下では次のような型のプログラム を考える。 は部分関数 (

テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

、肩 かた 深 ふかさ を掛け合わせて、ある定数で 割り、積石数を算出する近似計算法が 使われるようになりました。この定数は船