7#ifndef LOOMC_LAUNCH_CONFIG_H_
8#define LOOMC_LAUNCH_CONFIG_H_
94#define LOOMC_LAUNCH_CONFIG_FUNCTION_INVALID_VALUE UINT64_MAX
98loomc_launch_config_function_invalid(
void) {
107static inline bool loomc_launch_config_function_is_valid(
241 const uint64_t* workload_argument_bits,
In-memory output artifacts produced by compiler operations.
void(* loomc_artifact_release_fn_t)(void *user_data, loomc_byte_span_t contents)
Callback used to release artifact contents transferred to a consumer.
Definition artifact.h:97
#define LOOMC_API_EXPORT
Exports a public Loom C API symbol from a shared library build.
Definition base.h:34
size_t loomc_host_size_t
Host allocation and container size type.
Definition base.h:45
loomc_structure_type_t
Structure type values used by extensible public descriptors.
Definition base.h:181
struct iree_status_handle_t * loomc_status_t
Opaque status handle.
Definition base.h:55
loomc_status_t loomc_launch_config_program_load(const loomc_artifact_t *artifact, loomc_artifact_release_fn_t release, void *release_user_data, loomc_allocator_t allocator, loomc_launch_config_program_t **out_program)
Loads and verifies a compiled launch-config program.
loomc_status_t loomc_launch_config_program_invoke(loomc_launch_config_program_t *program, loomc_launch_config_function_t function, const uint64_t *workload_argument_bits, loomc_host_size_t workload_argument_count, loomc_launch_config_t *out_config)
Invokes one compiled launch-config function for one kernel workload.
#define LOOMC_LAUNCH_CONFIG_FUNCTION_INVALID_VALUE
Invalid launch-config function token value.
Definition launch_config.h:94
void loomc_launch_config_program_retain(loomc_launch_config_program_t *program)
Retains program for another owner.
loomc_status_t loomc_launch_config_program_lookup_function(const loomc_launch_config_program_t *program, loomc_string_view_t export_name, loomc_launch_config_function_t *out_function)
Resolves a compiled kernel export name to a program-local function token.
void loomc_launch_config_program_release(loomc_launch_config_program_t *program)
Releases program from one owner.
struct loomc_launch_config_program_t loomc_launch_config_program_t
Loaded program containing compiled kernel launch configurations.
Definition launch_config.h:81
Host allocator used for persistent Loom object storage.
Definition base.h:375
Borrowed artifact view owned by a result object.
Definition artifact.h:75
Three-dimensional unsigned extent used by Loom C API structs.
Definition base.h:165
Program-local launch-config function token.
Definition launch_config.h:88
uint64_t value
Program-local function value.
Definition launch_config.h:90
Complete concrete configuration for one compiled kernel launch.
Definition launch_config.h:118
loomc_structure_type_t type
Structure type.
Definition launch_config.h:121
loomc_host_size_t structure_size
Size of this structure in bytes.
Definition launch_config.h:124
loomc_dimension3_t workgroup_cluster_size
Number of workgroups in each cooperative cluster dimension.
Definition launch_config.h:140
void * next
Unordered extension chain for additional launch properties.
Definition launch_config.h:127
uint32_t subgroup_size
Number of invocations in each hardware subgroup.
Definition launch_config.h:145
loomc_dimension3_t workgroup_count
Number of workgroups dispatched along each dimension.
Definition launch_config.h:130
loomc_dimension3_t workgroup_size
Number of invocations in each workgroup along each dimension.
Definition launch_config.h:135
uint64_t workgroup_storage_bytes
Total workgroup-local storage required per workgroup, in bytes.
Definition launch_config.h:153
Non-owning string view over bytes that need not be NUL-terminated.
Definition base.h:63