12#ifndef _CUDA_UTILITIES_CUDA_API_H_
13#define _CUDA_UTILITIES_CUDA_API_H_
20#include <cuda_runtime_api.h>
34template<
typename ArrayType>
40 static ArrayType*
alloc(
const size_t array_size);
44 ArrayType*& device_array,
45 const size_t array_size);
50 const size_t num_bytes);
54 const ArrayType* host_array,
55 const size_t array_size,
56 ArrayType* device_array);
59 static void del(
void* device_array);
An interface to CUDA linrary to facilitate working with CUDA, such as memory allocation,...
static void set_device(int device_id)
Sets the current device in multi-gpu applications.
static ArrayType * alloc(const size_t array_size)
Allocates memory on gpu device. This function creates a pointer and returns it.
static void del(void *device_array)
Deletes memory on gpu device if its pointer is not NULL, then sets the pointer to NULL.
static void alloc_bytes(void *&device_array, const size_t num_bytes)
Allocates memory on gpu device. This function uses an existing given pointer.
static int get_device()
Gets the current device in multi-gpu applications.
static void copy_to_device(const ArrayType *host_array, const size_t array_size, ArrayType *device_array)
Copies memory on host to device memory.