「関西GPGPU勉強会#4 Hackathon」に参加

 一昨日、関西GPGPU勉強会#4 Hackathon - connpassに参加したのでメモっとく。


 最初に、さくらさん、AMDさん、開発機材の提供ありがとうございますm(_ _)m
ハッカソンとかで環境作るのが手間取ったりするので既に動く環境*1あるのは大変助かりました。

ハッカソン目標

 ひとまず積読中だった、CUDA本の写経してました。

CUDA by Example 汎用GPUプログラミング入門
Jason Sanders Edward Kandrot
インプレスジャパン
売り上げランキング: 25,494

CUDA

ドキュメント

CUDA Toolkit Documentation

プロファイル(simple profiling)
CUDA_PROFILE=1 ./a.out

で、cuda_profile_0.logが生成

CUDA構文

 普通に、templateやnamespace等が*2問題なく使えた。
今回がCUDAをガッツリ触ったのが初めてってくらい、初めてだったけど普通のC++だった。

[compile error] warning : Double is not supported. Demoting to float

デフォルトのコンパイルオプションだと、Double未対応とのこと

nvcc -arch sm_35 use_double.cu
ptxas /tmp/tmpxft_0000015c_00000000-5_add_loop_gpu.ptx, line 609; warning : Double is not supported. Demoting to float

ハッカソン結果

 CUDA本の5章までを消化*3
途中で「生CUDA使うより、thrustが良いよ」ってことだったので、サンプルコード読んだり、実装見てました。確かに良いもののようですので、使おうと思います。

*1:って言ってもyumのパッケージが古いのか、一から環境構築されているかたもいましたけど^^;

*2:試した中では^^;

*3:サンプルがCUDA計算、OpenGL表示アプリだったので、sshでは題材としては微妙でしたがっ><