IMPORTANT: To view this page as Markdown, append `.md` to the URL (e.g. /max/get-started.md). For the complete documentation index, see llms.txt.
Skip to main content
For the complete documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /max/get-started.md).

Mojo function

quantize_tensor_dynamic_scaled_fp8

def quantize_tensor_dynamic_scaled_fp8[out_dtype: DType, in_dtype: DType, scales_dtype: DType, InputFnType: def[width: Int, alignment: Int](row: Int, col: Int) -> SIMD[in_dtype, width] & ImplicitlyCopyable & RegisterPassable, //, group_size_or_per_token: Int, num_cols: Int, pdl_level: PDLLevel = PDLLevel.ON](input_fn: InputFnType, scaled_output: TileTensor[out_dtype, Storage=scaled_output.Storage, address_space=scaled_output.address_space, linear_idx_type=scaled_output.linear_idx_type], scales: TileTensor[scales_dtype, Storage=scales.Storage, address_space=scales.address_space, linear_idx_type=scales.linear_idx_type], scale_ub: Float32, ctx: DeviceContext, num_rows: Int) where (eq InputFnType.in_dtype, in_dtype)

TileTensor primary implementation of dynamic scaled FP8 quantization.

Parameters:

  • ​out_dtype (DType): FP8 dtype of the quantized output; must be float8_e4m3fn.
  • ​in_dtype (DType): Dtype of the input values loaded by input_fn.
  • ​scales_dtype (DType): Dtype of the per-group scale factors written to scales; one of bfloat16, float16, or float32.
  • ​InputFnType (def[width: Int, alignment: Int](row: Int, col: Int) -> SIMD[in_dtype, width] & ImplicitlyCopyable & RegisterPassable): Compile-time callable type that loads SIMD[in_dtype, width] tiles for a given (row, col) (inferred).
  • ​group_size_or_per_token (Int): Number of columns per quantization group; -1 selects per-tensor scaling over all num_cols.
  • ​num_cols (Int): Number of columns in the input; the hidden dimension size.
  • ​pdl_level (PDLLevel): Programmatic dependent launch level for the kernels (defaults to PDLLevel.ON).

Args: