CUDA / vec comp

CUDA

実行時間の計測
Tesla C1060, Intel(R) Xeon(R) CPU E5540 @ 2.53GHz (Dell Precision T7500)


 * 20480個の実数(単精度浮動小数点数)からなる列$${a_i}$$について、総当たりで大小を比較し、$$a_i > a_{i+k} (k>0)$$なる関係が何回満たされているかをカウントする. ($$a_1 > a_2 > \cdots > a_n$$がどの程度満たされているかを評価する. )
 * このプログラムは(1)領域確保・データ転送、(2)大小比較、(3)回数カウントの３つの部分からなる.
 * GPU(CUDA)版では大小比較にかかった時間は0.074345sec (CUDA / vec_comp.cu)
 * CPU版(非並列)では大小比較にかかった時間は42.24sec (CUDA / cpu_vec_comp.c)

jCUDAでもやってみた. (jCUDA / VecComp, jCUDA / vec_comp.cu) GPUの実行時間はCと同じ0.074sec. 全体の実行時間はCで書いたGPU版と比べて1.2倍ぐらいになる.