CUDA日記2

このエントリーは面白かった:社長日記: CUDAベンチ2

あれ、僕勘違いしていたみたい。112個の計算を並列で出来る構造が16個あるんだと思っていたけど、16個の計算を並列で出来る構造が112個あるのか。そりゃどうりで121を110にするチューニングで数パーセントしか高速化にならないはずだ。←追記:32個ずつ並列で計算する(8個の)Stream Processerで構成されたStream Multiprocesserが14個あって合計で112SPってことみたい。

「CUDAがC言語ベースだ」っていう話だけども、テンプレートでコンパイル時に関数の定義を切り替えられるC言語なんて聞いたこともないのでC++ベースだろうと思ってクラスを作ってみたら案の定うまく行った。ただ、調子に乗ってiostreamをincludeしてみたらexception handling is disabledと怒られた。exception handlingをONにするとGPUの為に生成する命令列にもよけいなものが混じってうまく動かなくなりそうな予感。うーん。もしかしてnewもBad Allocを投げうるから使えない?あれ、使えた。GPU側で使えるかどうかは試していない。あ、使えないや。

        • -

最中限をCUDAで実装する上で、2の累乗でない個数の配列をreductionする方法が結構重要な気がしている。今はforで全部足しているだけだけど。低いコストでメモリを0リセットする方法があればいいのだけどな。