1#ifndef HALIDE_HALIDERUNTIMECUDA_H
2#define HALIDE_HALIDERUNTIMECUDA_H
5#ifndef HALIDE_HALIDERUNTIME_H
19#define HALIDE_RUNTIME_CUDA
27 const char *src,
int size);
30 const char *entry_name,
31 int blocksX,
int blocksY,
int blocksZ,
32 int threadsX,
int threadsY,
int threadsZ,
This file declares the routines used by Halide internally in its runtime.
uintptr_t halide_cuda_get_device_ptr(void *user_context, struct halide_buffer_t *buf)
Return the underlying device pointer for a halide_buffer_t.
int(* halide_cuda_get_stream_t)(void *, void *, void **)
int halide_cuda_wrap_device_ptr(void *user_context, struct halide_buffer_t *buf, uint64_t device_ptr)
Set the underlying cuda device poiner for a buffer.
int halide_cuda_run(void *user_context, void *state_ptr, const char *entry_name, int blocksX, int blocksY, int blocksZ, int threadsX, int threadsY, int threadsZ, int shared_mem_bytes, size_t arg_sizes[], void *args[], int8_t arg_is_buffer[])
int halide_cuda_release_unused_device_allocations(void *user_context)
Release any currently-unused device allocations back to the cuda driver.
int halide_cuda_initialize_kernels(void *user_context, void **state_ptr, const char *src, int size)
These are forward declared here to allow clients to override the Halide Cuda runtime.
void halide_cuda_finalize_kernels(void *user_context, void *state_ptr)
halide_cuda_acquire_context_t halide_set_cuda_acquire_context(halide_cuda_acquire_context_t handler)
Set custom methods to acquire and release cuda contexts and streams.
int(* halide_cuda_release_context_t)(void *)
int(* halide_cuda_acquire_context_t)(void *, void **, bool)
halide_cuda_release_context_t halide_set_cuda_release_context(halide_cuda_release_context_t handler)
int halide_cuda_detach_device_ptr(void *user_context, struct halide_buffer_t *buf)
Disconnect this halide_buffer_t from the device pointer it was previously wrapped around.
const struct halide_device_interface_t * halide_cuda_device_interface()
halide_cuda_get_stream_t halide_set_cuda_get_stream(halide_cuda_get_stream_t handler)
unsigned __INT64_TYPE__ uint64_t
__UINTPTR_TYPE__ uintptr_t
signed __INT8_TYPE__ int8_t
The raw representation of an image passed around by generated Halide code.
Each GPU API provides a halide_device_interface_t struct pointing to the code that manages device all...