(発表3)LLVM meets GPU
LLVM って何よ。
Low Level Virtual Machine.
コンパイラ基盤
LLVM IR の中間言語に落とす事で
言語と実行コードの組み合わせをカバーする。
JIT も対応!
-----------
去年あたりから LLVM に NVIDIA GPU 向け実装が入ってる。
CUDA Frontend
PTX Backend.
CUDA Compiler SDK Preview
NVVM IR (LLVM でなく?)
NVVM は LLVM のサブセット。
組み込み関数が使えない。NVIDIA で使えない命令を外してる。
NVVM Library API
- PyCUDA
- python から CUDA を使う。
でも、文字列で Python の API に渡すのがださい。
annotation で出来るようにしてみた > pynvvm
pynvvm
---
py2llvm
copperhead
=> 自動並列化。
------
- LLVM で PTX をはくのは沢山挫折されてる。
- Shared メモリを使うにはdousuru?
- Texture フェッチとか、アトミックな処理とか。
- アルゴリズムを書いたらオフロードする仕組みは皆、妄想してると思う。
- 俺々を作るか?