東方算程譚

επιστημηがヨタをこく、弾幕とは無縁のCUDAなタワゴト

Stream

streamで速くする(3) ~からくり

CPUとGPUはPCI-busに隔てられてそれぞれが勝手に動くことができます。 CPUはGPUの仕事の完了を待って次の仕事を依頼する必要はないんですわ(そうでないとGPUが重たい仕事してる間CPUがぼーっと待ってにゃならんですから)。仕事の完了を待たずに次の仕事を叩…

streamで速くする(2)

streamはその名の通り"一連の(処理の)流れ"です。 streamに乗せられたjob(仕事)は並んだ順に実行されます。 複数のstreamにjobを乗せておけば、GPUはその中から実行可能なものを一つ選んで処理します。 ホスト・メモリ間のデータ転送にGPUは関与しないので、…

streamで速くする(1) ~イントロ

三角関数表を作りましょう。 ひと回り360度を百万等分し、360マイクロ度刻みの sin, cos, tan を求めます。 #include <cuda_runtime.h> #include <device_launch_parameters.h> #include <math_functions.h> // 時間稼ぎ __device__ float time_waste() { float result = 0.0f; const int TIMES = 10U; for ( int i = 0; i <</math_functions.h></device_launch_parameters.h></cuda_runtime.h>…