Halide 19.0.0
Halide compiler and libraries
|
Routines specific to the Halide OpenCL runtime. More...
#include "HalideRuntime.h"
Go to the source code of this file.
Macros | |
#define | HALIDE_RUNTIME_OPENCL |
Functions | |
const struct halide_device_interface_t * | halide_opencl_device_interface () |
const struct halide_device_interface_t * | halide_opencl_image_device_interface () |
int | halide_opencl_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 OpenCL runtime. | |
int | halide_opencl_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[]) |
void | halide_opencl_finalize_kernels (void *user_context, void *state_ptr) |
void | halide_opencl_set_platform_name (const char *n) |
Set the platform name for OpenCL to use (e.g. | |
const char * | halide_opencl_get_platform_name (void *user_context) |
Halide calls this to get the desired OpenCL platform name. | |
void | halide_opencl_set_device_type (const char *n) |
Set the device type for OpenCL to use. | |
const char * | halide_opencl_get_device_type (void *user_context) |
Halide calls this to gets the desired OpenCL device type. | |
void | halide_opencl_set_build_options (const char *n) |
Set the additional build options for OpenCL to use. | |
const char * | halide_opencl_get_build_options (void *user_context) |
Halide calls this to gets the additional build options for OpenCL to use. | |
int | halide_opencl_wrap_cl_mem (void *user_context, struct halide_buffer_t *buf, uint64_t device_ptr) |
Set the underlying cl_mem for a halide_buffer_t. | |
int | halide_opencl_image_wrap_cl_mem (void *user_context, struct halide_buffer_t *buf, uint64_t device_ptr) |
Same as halide_opencl_wrap_cl_mem but wraps a cl_mem created with clCreateImage. | |
int | halide_opencl_detach_cl_mem (void *user_context, struct halide_buffer_t *buf) |
Disconnect a halide_buffer_t from the memory it was previously wrapped around. | |
uintptr_t | halide_opencl_get_cl_mem (void *user_context, struct halide_buffer_t *buf) |
Return the underlying cl_mem for a halide_buffer_t. | |
uint64_t | halide_opencl_get_crop_offset (void *user_context, halide_buffer_t *buf) |
Returns the offset associated with the OpenCL memory allocation via device_crop or device_slice. | |
Routines specific to the Halide OpenCL runtime.
Definition in file HalideRuntimeOpenCL.h.
#define HALIDE_RUNTIME_OPENCL |
Definition at line 19 of file HalideRuntimeOpenCL.h.
|
extern |
|
extern |
|
extern |
These are forward declared here to allow clients to override the Halide OpenCL runtime.
Do not call them.
|
extern |
|
extern |
|
extern |
Set the platform name for OpenCL to use (e.g.
"Intel" or "NVIDIA"). The argument is copied internally. The opencl runtime will select a platform that includes this as a substring. If never called, Halide uses the environment variable HL_OCL_PLATFORM_NAME, or defaults to the first available platform.
|
extern |
Halide calls this to get the desired OpenCL platform name.
Implement this yourself to use a different platform per user_context. The default implementation returns the value set by halide_set_ocl_platform_name, or the value of the environment variable HL_OCL_PLATFORM_NAME. The output is valid until the next call to halide_set_ocl_platform_name.
|
extern |
Set the device type for OpenCL to use.
The argument is copied internally. It must be "cpu", "gpu", or "acc". If never called, Halide uses the environment variable HL_OCL_DEVICE_TYPE.
|
extern |
Halide calls this to gets the desired OpenCL device type.
Implement this yourself to use a different device type per user_context. The default implementation returns the value set by halide_set_ocl_device_type, or the environment variable HL_OCL_DEVICE_TYPE. The result is valid until the next call to halide_set_ocl_device_type.
|
extern |
Set the additional build options for OpenCL to use.
The argument is copied internally. If never called, Halide uses the environment variable HL_OCL_BUILD_OPTIONS.
|
extern |
Halide calls this to gets the additional build options for OpenCL to use.
Implement this yourself to use a different build options per user_context. The default implementation returns the value set by halide_opencl_set_build_options, or the environment variable HL_OCL_BUILD_OPTIONS. The result is valid until the next call to halide_opencl_set_build_options.
|
extern |
Set the underlying cl_mem for a halide_buffer_t.
This memory should be allocated using clCreateBuffer or similar and must have an extent large enough to cover that specified by the halide_buffer_t extent fields. The dev field of the halide_buffer_t must be NULL when this routine is called. This call can fail due to running out of memory or being passed an invalid device pointer. The device and host dirty bits are left unmodified.
|
extern |
Same as halide_opencl_wrap_cl_mem but wraps a cl_mem created with clCreateImage.
|
extern |
Disconnect a halide_buffer_t from the memory it was previously wrapped around.
Should only be called for a halide_buffer_t that halide_opencl_wrap_device_ptr was previously called on. Frees any storage associated with the binding of the halide_buffer_t and the device pointer, but does not free the cl_mem. The dev field of the halide_buffer_t will be NULL on return.
|
extern |
Return the underlying cl_mem for a halide_buffer_t.
This buffer must be valid on an OpenCL device, or not have any associated device memory. If there is no device memory (dev field is NULL), this returns 0.
|
extern |
Returns the offset associated with the OpenCL memory allocation via device_crop or device_slice.