Sha256: 4f8bac41ca5ad5c8f2e7cb7881046448f0054cfc6d11e54784eff7df10cf1dd2

Contents?: true

Size: 1.18 KB

Versions: 17

Compression:

Stored size: 1.18 KB

Contents

#ifndef CUMO_CUDA_RUNTIME_H
#define CUMO_CUDA_RUNTIME_H

#include "cumo/narray.h"
#include <cuda_runtime.h>

#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

extern VALUE cumo_cuda_eRuntimeError;

static inline void
cumo_cuda_runtime_check_status(cudaError_t status)
{
    if (status != 0) {
        rb_raise(cumo_cuda_eRuntimeError, "%s (error=%d)", cudaGetErrorString(status), status);
    }
}

static inline int
cumo_cuda_runtime_get_device_count()
{
    int device_count;
    cumo_cuda_runtime_check_status(cudaGetDeviceCount(&device_count));
    return device_count;
}

static inline int
cumo_cuda_runtime_get_device()
{
    int device;
    cumo_cuda_runtime_check_status(cudaGetDevice(&device));
    return device;
}

static inline bool
cumo_cuda_runtime_is_device_memory(void* ptr)
{
    struct cudaPointerAttributes attrs;
    cudaError_t status;
    if (!ptr) { return false; }
    status = cudaPointerGetAttributes(&attrs, ptr);
    cudaGetLastError(); // reset last error to success
    return (status != cudaErrorInvalidValue);
}

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif

#endif /* ifndef CUMO_CUDA_RUNTIME_H */

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
cumo-0.4.3 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.4.2 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.4.1 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.4.0 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.3.5 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.3.4 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.3.3 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.3.2 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.3.1 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.3.0 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.3.0.pre1 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.2.5 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.2.4 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.2.3 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.2.2 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.2.1 ext/cumo/include/cumo/cuda/runtime.h
cumo-0.2.0 ext/cumo/include/cumo/cuda/runtime.h