Rubellum fly light

ほぼPHP日記

CUDAのマクロ・定数

よく見かけるけど、中身とかよくわかってなかったのでメモ.

CUDA_SAFE_CALL()の中身

cutil.hに書いてあるCUDA_SAFE_CALL()の中身.
実態はマクロ.

#  define CUDA_SAFE_CALL_NO_SYNC( call) {                                    \
    cudaError err = call;                                                    \
    if( cudaSuccess != err) {                                                \
        fprintf(stderr, "Cuda error in file '%s' in line %i : %s.\n",        \
                __FILE__, __LINE__, cudaGetErrorString( err) );              \
        exit(EXIT_FAILURE);                                                  \
    } }

#  define CUDA_SAFE_CALL( call)     CUDA_SAFE_CALL_NO_SYNC(call);

cudaMemcpyKind

メモリをコピーするときの方向を表すやつ(Memcpyの引数).
「/usr/local/cuda/include/driver_types.h」に書かれている.

enum cudaMemcpyKind
{
  cudaMemcpyHostToHost          =   0,      /**< Host   -> Host */
  cudaMemcpyHostToDevice        =   1,      /**< Host   -> Device */
  cudaMemcpyDeviceToHost        =   2,      /**< Device -> Host */
  cudaMemcpyDeviceToDevice      =   3       /**< Device -> Device */
};