C++-API#
Common#
Functions
Common Functions#
CL_CHECK_STATUS#
-
inline void tinytc::CL_CHECK_STATUS(cl_int stat)#
Throw exception for unsuccessful call to C-API and convert result code to tinytc status.
Device Info#
Device Info Functions#
get_support_level(cl_device_id)#
-
inline support_level tinytc::get_support_level(cl_device_id device)#
Get support level of OpenCL device.
- Parameters:
device – Device handle
- Returns:
Support level
create_core_info(cl_device_id)#
-
inline shared_handle<tinytc_core_info_t> tinytc::create_core_info(cl_device_id device)#
Query core info from OpenCL runtime.
- Parameters:
device – device handle
- Returns:
core info
Kernel#
Functions
Kernel Functions#
get_global_size(std::array<std::size_t,3u> const &,std::array<std::size_t,3u> const &)#
-
inline std::array<std::size_t, 3u> tinytc::get_global_size(std::array<std::size_t, 3u> const &num_groups, std::array<std::size_t, 3u> const &local_size)#
Convert group size to opencl global range.
- Parameters:
num_groups – Number of groups
local_size – Work-group size
- Returns:
Global size
get_group_size(cl_kernel)#
-
inline std::array<std::size_t, 3u> tinytc::get_group_size(cl_kernel kernel)#
Get work group size.
- Parameters:
kernel – Kernel
- Returns:
Work-group size
create_kernel(cl_program,char const*)#
-
inline shared_handle<cl_kernel> tinytc::create_kernel(cl_program mod, char const *name)#
Make a cl_kernel from a cl_program.
- Parameters:
mod – Program
name – Kernel name
- Returns:
cl_kernel (shared handle)
create_kernel_bundle(cl_context,cl_device_id,const_tinytc_binary_t)#
-
inline shared_handle<cl_program> tinytc::create_kernel_bundle(cl_context context, cl_device_id device, const_tinytc_binary_t bin)#
Make an OpenCL program from a tinytc binary.
- Parameters:
context – Context
device – Device
bin – Binary
- Returns:
cl_program (shared handle)
create_kernel_bundle(cl_context,cl_device_id,tinytc_prog_t,tinytc_core_feature_flags_t)#
-
inline shared_handle<cl_program> tinytc::create_kernel_bundle(cl_context context, cl_device_id device, tinytc_prog_t prg, tinytc_core_feature_flags_t core_features = 0)#
Make an OpenCL program from a tinytc program.
- Parameters:
context – Context
device – Device
prg – Program
core_features – requested core features; must be 0 (default) or a combination of tinytc_core_feature_flag_t
- Returns:
cl_program (shared handle)
Recipe#
Functions
Structures
Recipe Functions#
create_recipe_handler(cl_context,cl_device_id,tinytc_recipe_t)#
-
inline shared_handle<tinytc_recipe_handler_t> tinytc::create_recipe_handler(cl_context context, cl_device_id device, tinytc_recipe_t rec)#
Make recipe handler.
- Parameters:
context – Context
device – Device
rec – Recipe
- Returns:
OpenCL recipe handler
submit(tinytc_recipe_handler_t,cl_command_queue,uint32_t,cl_event*)#
-
inline shared_handle<cl_event> tinytc::submit(tinytc_recipe_handler_t handler, cl_command_queue queue, uint32_t num_wait_events = 0, cl_event *wait_events = nullptr)#
Submit recipe to queue.
- Parameters:
handler – Recipe handler
queue – Command queue
num_wait_events – Number of events to wait
wait_events – Array of num_wait_events events to wait on
- Returns:
Event (cl_event wrapped in shared_handle -> cleans up automatically)
submit_no_event#
-
inline void tinytc::submit_no_event(tinytc_recipe_handler_t handler, cl_command_queue queue, uint32_t num_wait_events = 0, cl_event *wait_events = nullptr)#
Submit recipe to queue; does not return event.
- Parameters:
handler – Recipe handler
queue – Command queue
num_wait_events – Number of events to wait
wait_events – Array of num_wait_events events to wait on
Recipe Structures#
auto_mem_type<cl_mem>#
-
template<>
struct auto_mem_type<cl_mem># Specialize auto_mem_type for cl_mem.