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
mla_prefill_decode_graph_bf16
def mla_prefill_decode_graph_bf16[collection_t: KVCollectionT, //, mask_str: StringSlice[StaticConstantOrigin], kv_input_fn: def[width: Int](IndexList[2]) capturing -> SIMD[DType.bfloat16, width], target: StringSlice[StaticConstantOrigin] = StringSlice("cpu")](output: TileTensor[DType.bfloat16, linear_idx_type=output.linear_idx_type, element_size=output.element_size], q: TileTensor[DType.bfloat16, linear_idx_type=q.linear_idx_type, element_size=q.element_size], input_row_offsets: TileTensor[DType.uint32, linear_idx_type=input_row_offsets.linear_idx_type, element_size=input_row_offsets.element_size], freqs_cis: TileTensor[linear_idx_type=freqs_cis.linear_idx_type, element_size=freqs_cis.element_size], kv_norm_gamma: TileTensor[linear_idx_type=kv_norm_gamma.linear_idx_type, element_size=kv_norm_gamma.element_size], kv_collection: collection_t, layer_idx: UInt32, scale: Float32, epsilon: Float32, buffer_row_offsets: TileTensor[DType.uint32, linear_idx_type=buffer_row_offsets.linear_idx_type, element_size=buffer_row_offsets.element_size], cache_offsets: TileTensor[DType.uint32, linear_idx_type=cache_offsets.linear_idx_type, element_size=cache_offsets.element_size], buffer_length: Int, max_seq_len: Int, w_k: TileTensor[DType.bfloat16, linear_idx_type=w_k.linear_idx_type, element_size=w_k.element_size], w_uk: TileTensor[DType.bfloat16, linear_idx_type=w_uk.linear_idx_type, element_size=w_uk.element_size], w_uv: TileTensor[DType.bfloat16, linear_idx_type=w_uv.linear_idx_type, element_size=w_uv.element_size], scalar_args_buf: TileTensor[DType.int64, linear_idx_type=scalar_args_buf.linear_idx_type, element_size=scalar_args_buf.element_size], ctx: DeviceContext, num_partitions_in: Optional[Int] = None)
BF16 MLA prefill/decode graph.
Dispatches to prefill or decode based on max sequence length in the batch.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!