いろいろ計測してたら、16MBのデータをGPUにコピーし、結果をPCにコピーするだけで50msかかってる。
これは全体の30%に相当するため、この部分を隠蔽できれば、1Gbpsを超えるスループットが出る計算になる。
そこで、clEnqueueWriteBufferでメモリの一部を非同期で書き込んで、
その書き込みが終わったらclEnqueueNDRangeKernelのglobal_work_offsetに
書き込んだ部分のオフセットを指定すれば、メモリ転送時間を隠蔽できる!
と思いましたが、global_work_offsetは現在0 (NULL)以外指定できないそうで…
実装レベルで未対応じゃなくて、仕様書レベルで未対応なのかYO