CUDA 非同期コピー

developer.nvidia.com

CUDA 11.1 からグローバルメモリからシェアードメモリにコピーする際に非同期コピーが使えるようになった。今までのやり方ではレジスタを経由していたようだ。ちょっとDSPのDMA転送っぽいけどglobalからsharedへの一方通行だったり多次元転送に対応していなかったりL2,L1 Cacheを経由したり等の違いは気になる。とはいえ演算と並行してメモリ転送が行えるのでストール対策として良さそう。Ampere以降のアーキテクチャでしか使えない新しい機能なので、これもCUDA 11.2 で追加された Stream Ordered Memory Allocator のように性能を出来る限り無駄なく引き出したい用途向けな気がする。