Happy Coding

This blog is for my memorandum.

Happy Coding

This blog is for my memorandum

CUDA まとめ

CUDAのメモリについて

  • グローバルメモリはGPU上どこからでも見えるがメモリアドレスが低速なメモリ

  • シェアードメモリは同一ブロックからしかみえないが高速に読み書きができるメモリ

  • コンスタントメモリは読み込み専用だがグラオーバルメモリと同様のスレッドから見える高速なメモリ。

CUDAの性能劣化をひきおこす特徴

warp divergence

実際のcudaスレッドの処理は連続したIDを持つ32スレッドを1グループ(ワープと呼ぶ)とし、ワープ単位で同一命令を実行するGPUの特徴により発生するオーバーヘッドである。同一ワープ内のスレッドが異なる命令を実行することをワープダイバージェンスと呼ぶ。

coalesed memory access

スレッドIDとアクセスするメモリアドレスが不連続な場合に負荷が発生する。特に連続したIDを持つスレッドが連続したメモリ番地へアクセスすることで、高速なデータ転送が実行できる。