C++-API#

Device Info#

Device Info Functions#

get_support_level(sycl::device const&)#

support_level tinytc::get_support_level(sycl::device const &dev)#

Get support level of SYCL device.

Parameters:

dev – Device

Returns:

Support Level

create_core_info(sycl::device const&)#

shared_handle<tinytc_core_info_t> tinytc::create_core_info(sycl::device const &dev)#

Query core info from SYCL runtime.

Parameters:

dev – Device

Returns:

core info

Kernel#

Kernel Functions#

get_execution_range#

sycl::nd_range<3u> tinytc::get_execution_range(sycl::kernel const &krnl, sycl::range<3u> const &num_groups)#

Get SYCL nd_range.

Important: num_groups is in SYCL ZYX order, meaning that the range should contain {num_groups_z, num_groups_y, num_groups_x}.

Parameters:
  • krnl – Kernel

  • num_groups – Number of groups

Returns:

ND range

get_global_size(sycl::range<3u> const &,sycl::range<3u> const &)#

sycl::range<3u> tinytc::get_global_size(sycl::range<3u> const &num_groups, sycl::range<3u> const &local_size)#

Convert group size to SYCL range.

Important: num_groups is in SYCL ZYX order, meaning that the range should contain {num_groups_z, num_groups_y, num_groups_x}.

Parameters:
  • num_groups – Number of groups

  • local_size – Work-group size

Returns:

Global size

get_group_size(sycl::kernel const &)#

sycl::range<3u> tinytc::get_group_size(sycl::kernel const &krnl)#

Get work-group size.

Parameters:

krnl – Kernel

Returns:

Work-group size

create_kernel(sycl::kernel_bundle<sycl::bundle_state::executable> const &,char const *)#

sycl::kernel tinytc::create_kernel(sycl::kernel_bundle<sycl::bundle_state::executable> const &bundle, char const *name)#

Make SYCL kernel.

Parameters:
  • bundle – Kernel bundle

  • name – Kernel name

Returns:

SYCL kernel

create_kernel_bundle(sycl::context const &,sycl::device const &,const_tinytc_binary_t)#

sycl::kernel_bundle<sycl::bundle_state::executable> tinytc::create_kernel_bundle(sycl::context const &ctx, sycl::device const &dev, const_tinytc_binary_t bin)#

Make SYCL kernel bundle from tinytc binary.

Parameters:
  • ctx – Context

  • dev – Device

  • bin – Binary

Returns:

SYCL kernel bundle

create_kernel_bundle(sycl::context const &,sycl::device const &,tinytc_prog_t,tinytc_core_feature_flags_t)#

sycl::kernel_bundle<sycl::bundle_state::executable> tinytc::create_kernel_bundle(sycl::context const &ctx, sycl::device const &dev, tinytc_prog_t prg, tinytc_core_feature_flags_t core_features = 0)#

Make SYCL kernel bundle from tinytc program.

Parameters:
  • ctx – Context

  • dev – Device

  • prg – Program

  • core_features – requested core features; must be 0 (default) or a combination of tinytc_core_feature_flag_t

Returns:

SYCL kernel bundle

Recipe#

Recipe Functions#

create_recipe_handler(sycl::context const &,sycl::device const &,tinytc_recipe_t)#

shared_handle<tinytc_recipe_handler_t> tinytc::create_recipe_handler(sycl::context const &ctx, sycl::device const &dev, tinytc_recipe_t rec)#

Make recipe handler.

Parameters:
  • ctx – Context

  • dev – Device

  • rec – Recipe

Returns:

SYCL recipe handler

create_recipe_handler(sycl::queue const&,tinytc_recipe_t)#

shared_handle<tinytc_recipe_handler_t> tinytc::create_recipe_handler(sycl::queue const &q, tinytc_recipe_t rec)#

Make recipe handler.

Parameters:
  • q – Queue

  • rec – Recipe

Returns:

SYCL recipe handler

parallel_for#

void tinytc::parallel_for(tinytc_recipe_handler_t handler, sycl::handler &cgh)#

Launch recipe with submit call.

Parameters:
  • handler – recipe handler

  • cgh – Handler

submit(tinytc_recipe_handler_t,sycl::queue)#

sycl::event tinytc::submit(tinytc_recipe_handler_t handler, sycl::queue q)#

Submit recipe to queue.

Parameters:
  • handler – recipe handler

  • q – Queue

Returns:

Event

submit(tinytc_recipe_handler_t,sycl::queue,std::vector<sycl::event> const &)#

sycl::event tinytc::submit(tinytc_recipe_handler_t handler, sycl::queue q, std::vector<sycl::event> const &dep_events)#

Submit recipe to queue.

Parameters:
  • handler – recipe handler

  • q – Queue

  • dep_events – Events to wait on

Returns:

Event

submit(tinytc_recipe_handler_t,sycl::queue,sycl::event const &)#

sycl::event tinytc::submit(tinytc_recipe_handler_t handler, sycl::queue q, sycl::event const &dep_event)#

Submit recipe to queue.

Parameters:
  • handler – recipe handler

  • q – Queue

  • dep_event – Event to wait on

Returns:

Event