float16_promote.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 core
namespace runtime

Functions

inline bool IsHalfPrecision(int32_t data_type)#

Returns true if the data type is FLOAT16 or BFLOAT16.

Tensor PromoteToFloat32(const Tensor &src, RuntimeContext *rt = nullptr)#

Converts a FLOAT16 or BFLOAT16 tensor to FLOAT32. If the input is already FLOAT or DOUBLE, returns a copy unchanged (no conversion).

Tensor PromoteToFloat32(const Tensor &src, RuntimeContext *rt, int64_t parallel_minimum_elements)#

Converts a half-precision tensor to FLOAT32 with a kernel-specific parallel threshold.

Tensor DemoteFromFloat32(const Tensor &src, int32_t target_dtype, RuntimeContext *rt = nullptr)#

Demotes a FLOAT32 tensor back to FLOAT16 or BFLOAT16.

Parameters:
  • src – The float32 tensor to demote.

  • target_dtype – The target data type (FLOAT16 or BFLOAT16).

Returns:

A new Tensor with data_type == target_dtype and the same shape/name.

Tensor DemoteFromFloat32(const Tensor &src, int32_t target_dtype, RuntimeContext *rt, int64_t parallel_minimum_elements, int output_slot = 0)#

Demotes FLOAT32 with a kernel-specific parallel threshold.