CUDA

|500

Auroraはコードをデバイスに直接転送するのでメモリ転送のオーバーヘッドがない
CUDA
Grid x Block x Thread
max: 65535 x 65535 x 512

  • threadIdx: xy, blockIdx: xy: ID
  • blockDim: xy: ブロックサイズ=何個スレッドあるか
  • gridDim: xy: blockサイズ=何個ブロックがあるか

|500

|500

|500

  • __devide__ 関数はデバイス側の関数で値を返せる
  • cudaFree(void*) 忘れないようにしよう
  • cuda化したら可読性というかロックインしてしまう
  • スレッドは Warp 単位で制御
    • ex. 32 threads / Warp
    • ex. Fermi: 16 SP/SM processorあたり16SP → 2サイクルで1Warp実行

2022-01-07
.cunvcc hoge.cu

|500

  • BLASS とかはやっていない