|
| OpenCLBackend (OpenCLParameters p) |
|
| ~OpenCLBackend (void) final |
|
bool | init () final |
| Must be called before the back end can be used.
|
|
std::size_t | n_platforms () const final |
|
std::size_t | n_devices () const final |
|
void | get_limits (u64 *p) const final |
|
std::string | platform_name () const final |
|
std::string | device_name () const final |
|
Buffer | create_buffer (MemFlag flags, std::size_t n, const std::byte *p) final |
| Create a buffer of the specified size.
|
|
bool | read_buffer (Buffer b, std::size_t off, std::size_t n, std::byte *p, Events events) const final |
|
bool | fill_buffer (Buffer b, std::size_t off, std::size_t n, std::byte v, Events events) const final |
| Fills the buffer with n copies of v .
|
|
bool | fill_buffer (Buffer b, std::size_t off, std::size_t n, std::size_t pattern_size, const std::byte *p, Events events) const final |
| Fills the buffer with n / pattern_size copies of pattern p .
|
|
bool | write_buffer (Buffer b, std::size_t off, std::size_t n, const std::byte *p, Events events) const final |
|
bool | write_buffer_rect (Buffer b, std::array< std::size_t, 3 > buffer_origin, std::array< std::size_t, 3 > host_origin, std::array< std::size_t, 3 > region, std::size_t buffer_row_pitch, std::size_t buffer_slice_pitch, std::size_t host_row_pitch, std::size_t host_slice_pitch, const std::byte *p, Events events) const final |
| Writes a rectangular region of a buffer.
|
|
void * | map_buffer (Buffer b, MemFlag flags, std::size_t off, std::size_t n, Events events) const final |
|
bool | unmap_buffer (Buffer b, void *p, Events events) const final |
|
bool | release_buffer (Buffer b) final |
|
Image | create_image (Type type, std::size_t w, std::size_t h, MemFlag flags, const std::byte *p) final |
| Create an image of the specified size.
|
|
bool | read_image (Image i, std::size_t w, std::size_t h, std::byte *p, Events events) const final |
|
bool | fill_image (Image i, std::size_t w, std::size_t h, const void *v, Events events) const override |
| Fills the image with copies of v .
|
|
bool | release_image (Image i) final |
|
Sampler | create_sampler () final |
|
bool | release_sampler (Sampler s) final |
|
Program | create_program (std::string_view src, const char *opts) final |
| Compiles source into a program using compilation options opts .
|
|
bool | release_program (Program p) final |
|
Kernel | create_kernel (Program program, const char *func, std::size_t len, const Type *types, const std::size_t *sizes, const std::byte *const *data, Events events) final |
|
bool | release_kernel (Kernel k) final |
|
std::size_t | n_events (std::size_t n, const Type *types) const final |
| Number of events generated by execute for arguments types .
|
|
bool | prof_info (ProfInfo info, std::size_t n, const Event *const *events, u64 *out) const final |
|
bool | wait (std::size_t n, const Event *const *e) const final |
| Block until the given events have completed.
|
|
bool | release_events (std::size_t n, const Event *const *v) const final |
|
bool | execute (Kernel kernel, ExecFlag flags, u32 n_dim, const std::size_t *global_size, const std::size_t *local_size, Events events) const final |
|
bool | execute (Program program, const std::string &func, ExecFlag flags, u32 n_dim, const std::size_t *global_size, const std::size_t *local_size, std::size_t len, const Type *types, const std::size_t *sizes, const std::byte *const *data, Events events) const final |
|
virtual void | get_limits (u64 *p) const =0 |
| Writes the information described in Limit into p .
|
|
std::vector< u64 > | get_limits () const |
| Convenience overload that allocates the required memory.
|
|
template<typename ... Ts> |
bool | write_struct (Buffer b, Events events, Ts &&...ts) const |
| Writes the variadic arguments sequentially to the buffer.
|
|
virtual bool | prof_info (ProfInfo info, std::size_t n, const Event *const *events, u64 *out) const =0 |
| Collect profiling information from n events .
|
|
virtual bool | execute (Kernel kernel, ExecFlag flags, u32 n_dim, const std::size_t *global_size, const std::size_t *local_size, Events events) const =0 |
|
virtual bool | execute (Program program, const std::string &func, ExecFlag flags, u32 n_dim, const std::size_t *global_size, const std::size_t *local_size, std::size_t len, const Type *types, const std::size_t *sizes, const std::byte *const *data, Events events) const =0 |
| Execute a program with the given arguments.
|
|
template<typename ... Ts> |
Kernel | create_kernel (Program program, const char *func, Events events, Ts &&...ts) |
| Variadic interface for create_kernel.
|
|
template<typename ... Ts> |
bool | execute (Program program, const std::string &func, ExecFlag flags, u32 n_dim, const std::size_t *global_size, const std::size_t *local_size, Events events, Ts &&...ts) |
| Variadic interface for execute.
|
|
template<std::derived_from< Compute::Handle > T> |
constexpr auto | arg_type |
|
template<Compute::Type t> |
constexpr auto | to_vector_type () -> Type |
|
template<typename ... Ts> |
auto | create_kernel (Program program, const char *func, Events events, Ts &&...ts) -> Kernel |
|
|
enum class | Backend : u8 { PSEUDOCOMP
, OPENCL_BACKEND
} |
| Indicates which type of back end to create. More...
|
|
enum class | DeviceType : u8 { CPU = 1u << 0
, GPU = 1u << 1
} |
|
enum class | Type : u8 {
NONE
, LOCAL
, SCALAR_BEGIN
, BYTE = SCALAR_BEGIN
,
INT
, UINT
, FLOAT
, VECTOR_BEGIN
,
BYTEV = VECTOR_BEGIN
, INTV
, UINTV
, FLOATV
,
VECTOR_END = FLOATV
, DATA
, HANDLE_BEGIN
, BUFFER = HANDLE_BEGIN
,
IMAGE
, SAMPLER
, HANDLE_END = SAMPLER
, N
} |
| Supported parameter types for kernel execution. More...
|
|
enum | MemFlag : u8 { READ_WRITE = 1u << 0
, WRITE_ONLY = 1u << 1
, READ_ONLY = 1u << 2
} |
| Properties of memory blocks. More...
|
|
enum | ExecFlag : u8 { BLOCKING = 1u << 0
} |
| Kernel execution flags. More...
|
|
enum | Limit : u8 { COMPUTE_UNITS
, WORK_GROUP_SIZE
, LOCAL_MEMORY
, N
} |
| Indices for the values accessible via get_limits. More...
|
|
enum | ProfInfo : u8 {
QUEUED = 1u << 0
, SUBMIT = 1u << 1
, START = 1u << 2
, END = 1u << 3
,
PROF_INFO_MAX = END
, PROF_INFO_ALL = QUEUED | SUBMIT | START | END
} |
| Bit mask indicating which profiling data to collect/return. More...
|
|
static constexpr bool | is_vector_type (Type t) |
| Determines is t is one of the *V vector values in Type.
|
|
static constexpr bool | is_handle_type (Type t) |
|
template<Type t> |
static constexpr Type | to_vector_type () |
| Transforms a scalar type into the equivalent vector type.
|
|
static std::unique_ptr< Compute > | create (Backend b, const void *params=nullptr) |
| Creates a back end of the specified type.
|
|
template<> |
constexpr auto | arg_type |
|
template<> |
constexpr auto | arg_type |
|
template<> |
constexpr auto | arg_type |
|
template<> |
constexpr auto | arg_type |
|
template<typename T > |
static constexpr Type | arg_type = Type::NONE |
| Maps supported types to the equivalent Type value.
|
|