portable_gemm_tuning.h#

namespace onnx_light

Alias that makes onnx-light headers compatible with code that references ONNX_LIGHT_NAMESPACE (the macro used in the standard onnx package).

Set to ONNX_LIGHT_NAMESPACE so both names resolve to the same namespace.

Symbol-visibility attribute for the public onnx-light C++ API.

Maps the upstream compatibility macro to onnx-light’s explicit proto ABI annotation. This keeps declarations from vendored ONNX headers visible when lib_onnx_proto uses hidden visibility by default.

Namespace alias so that ONNX C++ code (and consumers such as onnxruntime) that refers to the literal onnx namespace — rather than the ONNX_NAMESPACE macro — resolves to the onnx-light namespace. The standard onnx package lives in namespace onnx; onnx-light uses onnx_light (via ONNX_LIGHT_NAMESPACE), so this alias keeps onnx-light a true drop-in. It is only introduced when the onnx-light namespace differs from onnx.

namespace onnx_kernels
namespace tuning#

Functions

void RegisterGemmTuningSchemas(std::span<const int32_t> supported_element_types, uint32_t tuning_abi = 1)#

Registers one portable Gemm tuning schema for every supported element type.

void ConfigureGemmTuning(const core::runtime::KernelTuningParameters &parameters, GemmTuning &tuning, uint32_t tuning_abi = 1)#

Validates and copies resolved Gemm parameters into a typed configuration.

Variables

constexpr const char *kGemmTileM = "algorithm.tile_m"#
constexpr const char *kGemmTileN = "algorithm.tile_n"#
constexpr const char *kGemmTileK = "algorithm.tile_k"#
constexpr const char *kGemmPackBMinimumElements = "algorithm.pack_b_minimum_elements"#
constexpr const char *kGemmSkinnyMLimit = "algorithm.skinny_m_limit"#
constexpr const char *kGemmParallelFmasPerWorkUnit = "parallel.fmas_per_work_unit"#
constexpr const char *kGemmParallelMinimumTasks = "parallel.minimum_tasks"#
constexpr const char *kGemmConversionParallelMinimumElements = "conversion.parallel_minimum_elements"#
struct GemmTuning#
#include <portable_gemm_tuning.h>

Stores the portable Gemm configuration copied into one kernel instance.

Public Members

int64_t tile_m = 64#
int64_t tile_n = 256#
int64_t tile_k = 256#
int64_t pack_b_minimum_elements = 16384#
int64_t skinny_m_limit = 8#
int64_t parallel_fmas_per_work_unit = 256#
int64_t parallel_minimum_tasks = 2#
int64_t conversion_parallel_minimum_elements = 1048576#