Skip to content

gemv: add optional fused RMSNorm/LayerNorm prologue - #167

Open
atassis wants to merge 4 commits into
amd:develfrom
atassis:nr-brick-norm-gemv-prologue
Open

atassis wants to merge 4 commits into
amd:develfrom
atassis:nr-brick-norm-gemv-prologue

Conversation

@atassis

@atassis atassis commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

GEMV can now fold an RMSNorm or LayerNorm over its shared B vector, so a caller that
normalizes before a matvec stops paying a separate round trip for it.

Added

  • prologue={"none","rms","ln"} on the GEMV operator, applied to the shared B vector once
    per acquire, before it feeds every matvec call in the batch — so the cost is O(K) per
    batch, not O(M) as re-normalizing per output tile would be.
  • rms_norm_ref / layer_norm_ref in gemv/reference.py, affine-free and computed in
    float32 to match the kernels' own reduction.
  • test_gemv_norm_prologue, checking the fused result against an A @ norm(B) golden
    across both norms and three shapes.
  • layer_norm_f32 in aie_kernels/aie2{,p}/layer_norm.cc: an extern "C" entry point for
    the layer_norm_bf16_f32_calculation implementation that was already in the file but not
    exported.

Changed

  • The GEMV prologue calls layer_norm_f32 rather than layer_norm. layer_norm
    accumulates the sum in bfloat16 (::aie::vector<T, N> sum_acc) while accumulating the
    sum of squares in f32, so the mean it subtracts loses accuracy as cols grows. That is
    visible here and not in RMSNorm, which needs no mean: against the f32 reference, ln at
    K=2048 missed on ~180 of 8192 outputs and at K=128 on one, while rms matched at the
    same shapes. layer_norm itself is untouched, so nothing else changes behavior.

Removed

  • Nothing.

Known gap

The prologue reads and writes separate pointers, so it needs a second K-element L1 buffer
on top of the B fifo's. At K=8192 with m_input=1 that buffer alone overflows one core's
data memory, and the failure surfaces as Basic sequential allocation also failed from
aiecc rather than as a precondition. The sweep is bounded to K=4096 accordingly; a real
up-front check wants an L1 size the device model exposes, which IRON does not carry today.

PR Merge Checklist

  1. The PR is rebased on the latest devel commit and pointing to devel.
  2. Your PR has been reviewed and approved.
  3. All checks are passing.

@andrej andrej left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A nicer "Kernel" abstraction that encodes (i) the function name (extern C), (ii) the argument specification expected (MLIR func.func signature), (iii) how to compile and link it in would be good at some point in the future. If we have to list every single activation function in every GEMV and GEMM kernel as a custom prologue/epilogue, it will get old quick.

But for now this is good. Thanks!

Comment on lines +107 to +108
# per output tile would be. Both kernels take separate in/out pointers (restrict on
# both), so normalizing needs a second L1 buffer rather than an in-place call.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add an in-place activation kernel in the future? Seems wasteful ...

Comment thread iron/operators/gemv/op.py Outdated
@andrej
andrej enabled auto-merge September 8, 2026 21:20
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

CI Test Results

13e23a1 (2026_09_11_21_46_21)

IRON - CI Summary

Examples

iron/applications/llama_3.2_1b
Test Krackan Status Krackan Phoenix Status Phoenix
test_llama_3_2_1b[llama_3.2_1b_prompt_1024_tokens_1] - - -
test_llama_3_2_1b[llama_3.2_1b_prompt_1024_tokens_40] - - -
test_llama_3_2_1b[llama_3.2_1b_prompt_13_tokens_1] - - -
test_llama_3_2_1b[llama_3.2_1b_prompt_13_tokens_40] - - -

Small

iron/operators/axpy
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_axpy[input_length_2048-num_aie_columns_1-tile_size_2048-scalar_factor_3.0] 173.88 412.70
test_axpy[input_length_2048-num_aie_columns_2-tile_size_1024-scalar_factor_3.0] 174.18 311.80
test_axpy[input_length_2048-num_aie_columns_4-tile_size_512-scalar_factor_3.0] 208.22 471.56
test_axpy[input_length_2048-num_aie_columns_8-tile_size_256-scalar_factor_3.0] 212.20 - -
iron/operators/dequant
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_dequant[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-group_size_32] 146.36 377.44
test_dequant[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-group_size_32] 150.16 385.20
test_dequant[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-group_size_32] 147.82 357.74
test_dequant[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-group_size_32] 182.34 430.50
test_dequant[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-group_size_32] 206.64 482.30
test_dequant[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-group_size_32] 168.10 423.54
test_dequant[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256-group_size_32] 158.40 - -
test_dequant[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128-group_size_32] 204.10 - -
iron/operators/elementwise_add
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_elementwise_add[input_length_2048-num_aie_columns_1-tile_size_2048] 186.52 343.56
test_elementwise_add[input_length_2048-num_aie_columns_2-tile_size_1024] 208.72 329.92
test_elementwise_add[input_length_2048-num_aie_columns_4-tile_size_512] 207.32 547.06
test_elementwise_add[input_length_2048-num_aie_columns_8-tile_size_256] 220.74 - -
iron/operators/elementwise_mul
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_elementwise_mul[input_length_2048-num_aie_columns_1-tile_size_2048] 146.72 270.26
test_elementwise_mul[input_length_2048-num_aie_columns_2-tile_size_1024] 157.34 303.24
test_elementwise_mul[input_length_2048-num_aie_columns_4-tile_size_512] 169.20 364.52
test_elementwise_mul[input_length_2048-num_aie_columns_8-tile_size_256] 181.62 - -
iron/operators/gelu
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_gelu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048] 147.18 307.08
test_gelu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024] 161.82 692.42
test_gelu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024] 165.12 495.64
test_gelu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512] 164.44 392.40
test_gelu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512] 169.30 385.08
test_gelu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256] 181.92 471.26
test_gelu[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256] 177.92 - -
test_gelu[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128] 197.04 - -
iron/operators/gemm
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_gemm[M_1792-K_896-N_1152-num_aie_columns_8-b_col_maj_False-c_col_maj_True-m_64-k_32-n_48-trace_size_0-partition_N_1] 2346.52 - -
test_gemm[M_192-K_384-N_64-num_aie_columns_4-b_col_maj_False-c_col_maj_False-m_48-k_96-n_16-trace_size_0-partition_N_1] 228.02 674.10
test_gemm[M_192-K_384-N_64-num_aie_columns_4-b_col_maj_True-c_col_maj_True-m_48-k_96-n_16-trace_size_0-partition_N_1] 197.94 668.52
test_gemm[M_2048-K_2048-N_2048-num_aie_columns_1-b_col_maj_False-c_col_maj_False-m_64-k_64-n_64-trace_size_0-partition_N_1] 48498.60 82831.54
test_gemm[M_2048-K_2048-N_2048-num_aie_columns_2-b_col_maj_True-c_col_maj_False-m_64-k_64-n_64-trace_size_0-partition_N_1] 28248.22 25201.58
test_gemm[M_2048-K_2048-N_2048-num_aie_columns_8-b_col_maj_True-c_col_maj_True-m_64-k_64-n_64-trace_size_0-partition_N_1] 7904.72 - -
test_gemm[M_384-K_1536-N_1792-num_aie_columns_4-b_col_maj_True-c_col_maj_False-m_32-k_48-n_64-trace_size_0-partition_N_1] 2383.14 4339.42
test_gemm[M_64-K_512-N_256-num_aie_columns_4-b_col_maj_True-c_col_maj_False-m_16-k_64-n_64-trace_size_0-partition_N_4] 3656.12 5817.52
test_gemm[M_896-K_1792-N_640-num_aie_columns_8-b_col_maj_False-c_col_maj_True-m_32-k_64-n_80-trace_size_0-partition_N_1] 1497.26 - -
iron/operators/gemv
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_gemv[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128] 0.19 0.10
test_gemv[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048] 12.63 3.60
test_gemv[M_2048-K_8192-num_aie_columns_2-tile_size_input_1-tile_size_output_1024] 23.55 6.81
test_gemv[M_2048-K_8192-num_aie_columns_4-tile_size_input_1-tile_size_output_512] 40.62 10.10
test_gemv[M_2048-K_8192-num_aie_columns_8-tile_size_input_1-tile_size_output_256] 42.92 - -
test_gemv[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024] 12.57 3.69
test_gemv[M_8192-K_2048-num_aie_columns_2-tile_size_input_4-tile_size_output_1024] 23.70 6.27
test_gemv[M_8192-K_2048-num_aie_columns_4-tile_size_input_4-tile_size_output_1024] 39.98 10.02
test_gemv[M_8192-K_2048-num_aie_columns_8-tile_size_input_4-tile_size_output_1024] 43.43 - -
test_gemv_batched[M_1024-K_1024-num_aie_columns_1-tile_size_input_1-tile_size_output_64-num_batches_2] 8.93 2.51
test_gemv_batched[M_1026-K_64-num_aie_columns_1-tile_size_input_1-tile_size_output_2-num_batches_2] 0.94 0.36
test_gemv_batched[M_256-K_128-num_aie_columns_1-tile_size_input_1-tile_size_output_256-num_batches_4] 1.14 0.68
test_gemv_batched[M_256-K_128-num_aie_columns_8-tile_size_input_1-tile_size_output_32-num_batches_100] 16.14 - -
test_gemv_batched[M_448-K_64-num_aie_columns_8-tile_size_input_1-tile_size_output_56-num_batches_192] 12.95 - -
test_gemv_batched[M_512-K_64-num_aie_columns_8-tile_size_input_4-tile_size_output_64-num_batches_32] 7.80 - -
test_gemv_batched[M_64-K_1536-num_aie_columns_1-tile_size_input_1-tile_size_output_64-num_batches_8] 5.71 1.54
test_gemv_gelu[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128] 0.20 -
test_gemv_gelu[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048] 12.81 -
test_gemv_gelu[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024] 12.15 -
test_gemv_norm_prologue[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128-prologue_ln-norm_ref_<function layer_norm_ref at 0x7830d1cbea20>] 0.20 - -
test_gemv_norm_prologue[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128-prologue_ln-norm_ref_<function layer_norm_ref at 0x7a1c1a288860>] - - 0.09
test_gemv_norm_prologue[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128-prologue_rms-norm_ref_<function rms_norm_ref at 0x7830d1cbe980>] 0.20 - -
test_gemv_norm_prologue[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128-prologue_rms-norm_ref_<function rms_norm_ref at 0x7a1c1a2887c0>] - - 0.09
test_gemv_norm_prologue[M_2048-K_4096-num_aie_columns_1-tile_size_input_1-tile_size_output_2048-prologue_ln-norm_ref_<function layer_norm_ref at 0x7830d1cbea20>] 11.79 - -
test_gemv_norm_prologue[M_2048-K_4096-num_aie_columns_1-tile_size_input_1-tile_size_output_2048-prologue_ln-norm_ref_<function layer_norm_ref at 0x7a1c1a288860>] - - 3.26
test_gemv_norm_prologue[M_2048-K_4096-num_aie_columns_1-tile_size_input_1-tile_size_output_2048-prologue_rms-norm_ref_<function rms_norm_ref at 0x7830d1cbe980>] 12.21 - -
test_gemv_norm_prologue[M_2048-K_4096-num_aie_columns_1-tile_size_input_1-tile_size_output_2048-prologue_rms-norm_ref_<function rms_norm_ref at 0x7a1c1a2887c0>] - - 2.97
test_gemv_norm_prologue[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024-prologue_ln-norm_ref_<function layer_norm_ref at 0x7830d1cbea20>] 12.69 - -
test_gemv_norm_prologue[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024-prologue_ln-norm_ref_<function layer_norm_ref at 0x7a1c1a288860>] - - 3.54
test_gemv_norm_prologue[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024-prologue_rms-norm_ref_<function rms_norm_ref at 0x7830d1cbe980>] 11.77 - -
test_gemv_norm_prologue[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024-prologue_rms-norm_ref_<function rms_norm_ref at 0x7a1c1a2887c0>] - - 3.73
iron/operators/layer_norm
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_layer_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048] 154.66 425.84
test_layer_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024] 152.60 364.74
test_layer_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024] 150.56 557.90
test_layer_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512] 157.02 418.42
test_layer_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512] 146.84 783.56
test_layer_norm[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256] 203.38 787.72
test_layer_norm[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256] 190.16 - -
test_layer_norm[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128] 188.20 - -
iron/operators/leaky_relu
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.01] 190.10 424.02
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.1] 178.68 407.38
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.25] 183.10 656.66
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-alpha_0.01] 173.18 414.50
test_leaky_relu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-alpha_0.01] 176.52 391.86
test_leaky_relu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-alpha_0.01] 197.36 478.26
test_leaky_relu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-alpha_0.01] 176.36 414.48
test_leaky_relu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-alpha_0.01] 172.00 439.16
test_leaky_relu[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256-alpha_0.01] 171.20 - -
test_leaky_relu[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128-alpha_0.01] 225.94 - -
iron/operators/mem_copy
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_mem_copy[input_length_2048-num_cores_1-num_channels_1-bypass_False-tile_size_2048] 156.96 337.86
test_mem_copy[input_length_2048-num_cores_16-num_channels_2-bypass_False-tile_size_128] 199.46 - -
test_mem_copy[input_length_2048-num_cores_2-num_channels_1-bypass_False-tile_size_1024] 167.00 378.10
test_mem_copy[input_length_2048-num_cores_2-num_channels_2-bypass_False-tile_size_1024] 151.08 346.26
test_mem_copy[input_length_2048-num_cores_4-num_channels_1-bypass_False-tile_size_512] 160.84 549.24
test_mem_copy[input_length_2048-num_cores_4-num_channels_2-bypass_False-tile_size_512] 176.92 381.62
test_mem_copy[input_length_2048-num_cores_8-num_channels_1-bypass_False-tile_size_256] 189.92 - -
test_mem_copy[input_length_2048-num_cores_8-num_channels_2-bypass_False-tile_size_256] 240.20 595.88
iron/operators/mha
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_mha[seq_len_16384-dim_64-num_heads_1-num_pipelines_8-num_kv_heads_0] 47632.44 - -
iron/operators/relu
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048] 165.98 359.06
test_relu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024] 165.06 618.92
test_relu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024] 168.80 419.04
test_relu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512] 153.26 416.28
test_relu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512] 167.52 419.62
test_relu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256] 179.30 439.24
test_relu[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256] 168.26 - -
test_relu[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128] 206.28 - -
iron/operators/repeat
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_cols_without_a_legal_split_is_rejected[cols_1031-why_prime > 1023: the only divisors are 1 and cols, neither legal] - -
test_cols_without_a_legal_split_is_rejected[cols_2062-why_2 x 1031: the only word-aligned chunk leaves a 1031-wide chunk count] - -
test_cols_without_a_legal_split_is_rejected[cols_513-why_odd: every divisor is odd, so no chunk is a whole 32-bit word] - -
test_repeat[rows_4-cols_1024-repeat_2-transfer_size_None] 151.98 464.70
test_repeat[rows_8-cols_512-repeat_4-transfer_size_64] 193.38 286.50
test_repeat[rows_8-cols_64-repeat_4-transfer_size_None] 172.06 304.54
iron/operators/rms_norm
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-weighted_False] 178.96 465.92
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-weighted_True] 177.52 375.46
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-weighted_False] 163.88 447.44
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-weighted_True] 173.86 368.94
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-weighted_False] 146.94 688.72
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-weighted_True] 162.48 418.96
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-weighted_False] 169.66 330.98
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-weighted_True] 198.44 469.00
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-weighted_False] 164.28 749.90
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-weighted_True] 225.70 361.76
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-weighted_False] 180.00 463.94
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-weighted_True] 232.44 - -
test_rms_norm[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256-weighted_False] 178.18 - -
test_rms_norm[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256-weighted_True] 211.10 - -
test_rms_norm[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128-weighted_False] 220.48 - -
iron/operators/rope
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_1-method_type_0] 170.38 436.40
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_2-method_type_0] 153.88 432.12
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_4-method_type_0] 165.28 371.90
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_8-method_type_0] 187.22 - -
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_1-method_type_0] 180.96 684.14
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_2-method_type_0] 163.14 539.70
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_4-method_type_0] 158.70 427.48
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_8-method_type_0] 204.22 - -
iron/operators/sigmoid
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_sigmoid[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048] 149.88 345.70
test_sigmoid[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024] 149.32 416.32
test_sigmoid[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024] 167.78 413.60
test_sigmoid[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512] 153.00 337.92
test_sigmoid[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512] 161.28 318.32
test_sigmoid[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256] 188.12 421.18
test_sigmoid[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256] 184.36 - -
test_sigmoid[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128] 195.06 - -
iron/operators/silu
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_silu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048] 163.52 393.60
test_silu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024] 158.26 346.52
test_silu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512] 211.16 457.98
test_silu[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256] 164.80 - -
iron/operators/softmax
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_1024] 164.56 507.14
test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_2048] 203.64 463.24
test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_512] 158.32 501.66
iron/operators/strided_copy
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_strided_copy[chunked_transfer] 150.70 289.66
test_strided_copy[contiguous] 184.04 359.46
test_strided_copy[four_channels] 167.32 357.24
test_strided_copy[kv_slot0] 176.54 287.30
test_strided_copy[kv_slot5] 181.14 331.68
test_strided_copy[kv_slot5_four_channels] 179.18 321.76
test_strided_copy[kv_slot5_two_channels] 163.08 251.34
test_strided_copy[kv_slot_last] 184.38 304.20
test_strided_copy[two_channels] 172.92 316.96
test_strided_copy[two_channels_chunked] 154.22 405.64
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter0] - -
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter1] - -
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter2] - -
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter3] - -
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter4] - -
iron/operators/swiglu_decode
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_swiglu_decode[embedding_dim_1024-hidden_dim_3584] 983.23 12848.48
test_swiglu_decode[embedding_dim_2048-hidden_dim_2048] 1029.05 13374.13
iron/operators/swiglu_prefill
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_swiglu_prefill[seq_len_256-embedding_dim_2048-hidden_dim_2048-prio_accuracy_False] 2168.86 23235.48
iron/operators/tanh
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_tanh[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048] 155.36 353.12
test_tanh[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024] 181.92 433.16
test_tanh[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024] 192.40 309.12
test_tanh[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512] 201.32 389.98
test_tanh[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512] 181.26 398.08
test_tanh[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256] 205.26 447.72
test_tanh[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256] 214.10 - -
test_tanh[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128] 220.52 - -
iron/operators/transpose
Test Krackan Status Krackan Latency (mean) Phoenix Status Phoenix Latency (mean)
test_transpose[M_2048-N_64-aie_columns_1-channels_1-m_64-n_64-s_8-num_batches_1] 225.74 412.60
test_transpose[M_2048-N_64-aie_columns_1-channels_1-m_64-n_64-s_8-num_batches_2] 267.58 506.16
test_transpose[M_2048-N_64-aie_columns_1-channels_2-m_64-n_64-s_8-num_batches_1] 209.74 365.84
Krackan - Small

IRON

Tested on 2026_09_11_21_46_21 at commit 13e23a1.

iron/operators/axpy
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_axpy[input_length_2048-num_aie_columns_1-tile_size_2048-scalar_factor_3.0]✅ 5/5173.880.07n/a
test_axpy[input_length_2048-num_aie_columns_2-tile_size_1024-scalar_factor_3.0]✅ 5/5174.180.07n/a
test_axpy[input_length_2048-num_aie_columns_4-tile_size_512-scalar_factor_3.0]✅ 5/5208.220.06n/a
test_axpy[input_length_2048-num_aie_columns_8-tile_size_256-scalar_factor_3.0]✅ 5/5212.200.06n/a
iron/operators/dequant
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_dequant[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-group_size_32]✅ 5/5146.360.04n/a
test_dequant[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-group_size_32]✅ 5/5150.160.04n/a
test_dequant[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-group_size_32]✅ 5/5147.820.04n/a
test_dequant[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-group_size_32]✅ 5/5182.340.03n/a
test_dequant[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-group_size_32]✅ 5/5206.640.03n/a
test_dequant[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-group_size_32]✅ 5/5168.100.03n/a
test_dequant[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256-group_size_32]✅ 5/5158.400.03n/a
test_dequant[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128-group_size_32]✅ 5/5204.100.03n/a
iron/operators/elementwise_add
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_elementwise_add[input_length_2048-num_aie_columns_1-tile_size_2048]✅ 5/5186.520.07n/a
test_elementwise_add[input_length_2048-num_aie_columns_2-tile_size_1024]✅ 5/5208.720.06n/a
test_elementwise_add[input_length_2048-num_aie_columns_4-tile_size_512]✅ 5/5207.320.06n/a
test_elementwise_add[input_length_2048-num_aie_columns_8-tile_size_256]✅ 5/5220.740.06n/a
iron/operators/elementwise_mul
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_elementwise_mul[input_length_2048-num_aie_columns_1-tile_size_2048]✅ 5/5146.720.09n/a
test_elementwise_mul[input_length_2048-num_aie_columns_2-tile_size_1024]✅ 5/5157.340.08n/a
test_elementwise_mul[input_length_2048-num_aie_columns_4-tile_size_512]✅ 5/5169.200.08n/a
test_elementwise_mul[input_length_2048-num_aie_columns_8-tile_size_256]✅ 5/5181.620.08n/a
iron/operators/gelu
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_gelu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5147.180.06n/a
test_gelu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]✅ 5/5161.820.05n/a
test_gelu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5165.120.05n/a
test_gelu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5164.440.05n/a
test_gelu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5169.300.05n/a
test_gelu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]✅ 5/5181.920.05n/a
test_gelu[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256]✅ 5/5177.920.05n/a
test_gelu[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128]✅ 5/5197.040.04n/a
iron/operators/gemm
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_gemm[M_1792-K_896-N_1152-num_aie_columns_8-b_col_maj_False-c_col_maj_True-m_64-k_32-n_48-trace_size_0-partition_N_1]✅ 5/52346.524.011577.86
test_gemm[M_192-K_384-N_64-num_aie_columns_4-b_col_maj_False-c_col_maj_False-m_48-k_96-n_16-trace_size_0-partition_N_1]✅ 5/5228.021.0042.73
test_gemm[M_192-K_384-N_64-num_aie_columns_4-b_col_maj_True-c_col_maj_True-m_48-k_96-n_16-trace_size_0-partition_N_1]✅ 5/5197.941.1348.22
test_gemm[M_2048-K_2048-N_2048-num_aie_columns_1-b_col_maj_False-c_col_maj_False-m_64-k_64-n_64-trace_size_0-partition_N_1]✅ 5/548498.600.52354.24
test_gemm[M_2048-K_2048-N_2048-num_aie_columns_2-b_col_maj_True-c_col_maj_False-m_64-k_64-n_64-trace_size_0-partition_N_1]✅ 5/528248.220.89608.20
test_gemm[M_2048-K_2048-N_2048-num_aie_columns_8-b_col_maj_True-c_col_maj_True-m_64-k_64-n_64-trace_size_0-partition_N_1]✅ 5/57904.723.182173.55
test_gemm[M_384-K_1536-N_1792-num_aie_columns_4-b_col_maj_True-c_col_maj_False-m_32-k_48-n_64-trace_size_0-partition_N_1]✅ 5/52383.143.44901.98
test_gemm[M_64-K_512-N_256-num_aie_columns_4-b_col_maj_True-c_col_maj_False-m_16-k_64-n_64-trace_size_0-partition_N_4]✅ 5/53656.120.3418.46
test_gemm[M_896-K_1792-N_640-num_aie_columns_8-b_col_maj_False-c_col_maj_True-m_32-k_64-n_80-trace_size_0-partition_N_1]✅ 5/51497.264.841496.63
iron/operators/gemv
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_gemv[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128]✅ 5/5n/a0.190.19
test_gemv[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048]✅ 5/5n/a12.6312.62
test_gemv[M_2048-K_8192-num_aie_columns_2-tile_size_input_1-tile_size_output_1024]✅ 5/5n/a23.5523.53
test_gemv[M_2048-K_8192-num_aie_columns_4-tile_size_input_1-tile_size_output_512]✅ 5/5n/a40.6240.59
test_gemv[M_2048-K_8192-num_aie_columns_8-tile_size_input_1-tile_size_output_256]✅ 5/5n/a42.9242.89
test_gemv[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024]✅ 5/5n/a12.5712.56
test_gemv[M_8192-K_2048-num_aie_columns_2-tile_size_input_4-tile_size_output_1024]✅ 5/5n/a23.7023.68
test_gemv[M_8192-K_2048-num_aie_columns_4-tile_size_input_4-tile_size_output_1024]✅ 5/5n/a39.9839.96
test_gemv[M_8192-K_2048-num_aie_columns_8-tile_size_input_4-tile_size_output_1024]✅ 5/5n/a43.4343.41
test_gemv_batched[M_1024-K_1024-num_aie_columns_1-tile_size_input_1-tile_size_output_64-num_batches_2]✅ 5/5n/a8.938.91
test_gemv_batched[M_1026-K_64-num_aie_columns_1-tile_size_input_1-tile_size_output_2-num_batches_2]✅ 5/5n/a0.940.92
test_gemv_batched[M_256-K_128-num_aie_columns_1-tile_size_input_1-tile_size_output_256-num_batches_4]✅ 5/5n/a1.141.13
test_gemv_batched[M_256-K_128-num_aie_columns_8-tile_size_input_1-tile_size_output_32-num_batches_100]✅ 5/5n/a16.1415.95
test_gemv_batched[M_448-K_64-num_aie_columns_8-tile_size_input_1-tile_size_output_56-num_batches_192]✅ 5/5n/a12.9512.72
test_gemv_batched[M_512-K_64-num_aie_columns_8-tile_size_input_4-tile_size_output_64-num_batches_32]✅ 5/5n/a7.807.66
test_gemv_batched[M_64-K_1536-num_aie_columns_1-tile_size_input_1-tile_size_output_64-num_batches_8]✅ 5/5n/a5.715.62
test_gemv_gelu[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128]✅ 5/5n/a0.200.19
test_gemv_gelu[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048]✅ 5/5n/a12.8112.80
test_gemv_gelu[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024]✅ 5/5n/a12.1512.15
test_gemv_norm_prologue[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128-prologue_ln-norm_ref_]✅ 5/5n/a0.200.20
test_gemv_norm_prologue[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128-prologue_rms-norm_ref_]✅ 5/5n/a0.200.20
test_gemv_norm_prologue[M_2048-K_4096-num_aie_columns_1-tile_size_input_1-tile_size_output_2048-prologue_ln-norm_ref_]❌ 0/5n/a11.7911.78
test_gemv_norm_prologue[M_2048-K_4096-num_aie_columns_1-tile_size_input_1-tile_size_output_2048-prologue_rms-norm_ref_]✅ 5/5n/a12.2112.20
test_gemv_norm_prologue[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024-prologue_ln-norm_ref_]✅ 5/5n/a12.6912.68
test_gemv_norm_prologue[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024-prologue_rms-norm_ref_]✅ 5/5n/a11.7711.76
iron/operators/layer_norm
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_layer_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5154.660.05n/a
test_layer_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]✅ 5/5152.600.05n/a
test_layer_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5150.560.06n/a
test_layer_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5157.020.05n/a
test_layer_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5146.840.06n/a
test_layer_norm[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]✅ 5/5203.380.04n/a
test_layer_norm[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256]✅ 5/5190.160.05n/a
test_layer_norm[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128]✅ 5/5188.200.04n/a
iron/operators/leaky_relu
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.01]✅ 5/5190.100.05n/a
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.1]✅ 5/5178.680.05n/a
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.25]✅ 5/5183.100.04n/a
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-alpha_0.01]✅ 5/5173.180.05n/a
test_leaky_relu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-alpha_0.01]✅ 5/5176.520.05n/a
test_leaky_relu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-alpha_0.01]✅ 5/5197.360.04n/a
test_leaky_relu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-alpha_0.01]✅ 5/5176.360.05n/a
test_leaky_relu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-alpha_0.01]✅ 5/5172.000.05n/a
test_leaky_relu[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256-alpha_0.01]✅ 5/5171.200.05n/a
test_leaky_relu[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128-alpha_0.01]✅ 5/5225.940.04n/a
iron/operators/mem_copy
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_mem_copy[input_length_2048-num_cores_1-num_channels_1-bypass_False-tile_size_2048]✅ 5/5156.960.05n/a
test_mem_copy[input_length_2048-num_cores_16-num_channels_2-bypass_False-tile_size_128]✅ 5/5199.460.04n/a
test_mem_copy[input_length_2048-num_cores_2-num_channels_1-bypass_False-tile_size_1024]✅ 5/5167.000.05n/a
test_mem_copy[input_length_2048-num_cores_2-num_channels_2-bypass_False-tile_size_1024]✅ 5/5151.080.06n/a
test_mem_copy[input_length_2048-num_cores_4-num_channels_1-bypass_False-tile_size_512]✅ 5/5160.840.05n/a
test_mem_copy[input_length_2048-num_cores_4-num_channels_2-bypass_False-tile_size_512]✅ 5/5176.920.05n/a
test_mem_copy[input_length_2048-num_cores_8-num_channels_1-bypass_False-tile_size_256]✅ 5/5189.920.04n/a
test_mem_copy[input_length_2048-num_cores_8-num_channels_2-bypass_False-tile_size_256]✅ 5/5240.200.04n/a
iron/operators/mha
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_mha[seq_len_16384-dim_64-num_heads_1-num_pipelines_8-num_kv_heads_0]✅ 5/547632.440.18n/a
iron/operators/relu
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5165.980.05n/a
test_relu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]✅ 5/5165.060.05n/a
test_relu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5168.800.05n/a
test_relu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5153.260.06n/a
test_relu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5167.520.05n/a
test_relu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]✅ 5/5179.300.05n/a
test_relu[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256]✅ 5/5168.260.05n/a
test_relu[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128]✅ 5/5206.280.04n/a
iron/operators/repeat
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_cols_without_a_legal_split_is_rejected[cols_1031-why_prime > 1023: the only divisors are 1 and cols, neither legal]✅ 5/5n/an/an/a
test_cols_without_a_legal_split_is_rejected[cols_2062-why_2 x 1031: the only word-aligned chunk leaves a 1031-wide chunk count]✅ 5/5n/an/an/a
test_cols_without_a_legal_split_is_rejected[cols_513-why_odd: every divisor is odd, so no chunk is a whole 32-bit word]✅ 5/5n/an/an/a
test_repeat[rows_4-cols_1024-repeat_2-transfer_size_None]✅ 5/5151.980.16n/a
test_repeat[rows_8-cols_512-repeat_4-transfer_size_64]✅ 5/5193.380.22n/a
test_repeat[rows_8-cols_64-repeat_4-transfer_size_None]✅ 5/5172.060.03n/a
iron/operators/rms_norm
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-weighted_False]✅ 5/5178.960.05n/a
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-weighted_True]✅ 5/5177.520.07n/a
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-weighted_False]✅ 5/5163.880.05n/a
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-weighted_True]✅ 5/5173.860.06n/a
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-weighted_False]✅ 5/5146.940.06n/a
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-weighted_True]✅ 5/5162.480.06n/a
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-weighted_False]✅ 5/5169.660.05n/a
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-weighted_True]✅ 5/5198.440.05n/a
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-weighted_False]✅ 5/5164.280.05n/a
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-weighted_True]✅ 5/5225.700.04n/a
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-weighted_False]✅ 5/5180.000.05n/a
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-weighted_True]✅ 5/5232.440.04n/a
test_rms_norm[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256-weighted_False]✅ 5/5178.180.05n/a
test_rms_norm[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256-weighted_True]✅ 5/5211.100.04n/a
test_rms_norm[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128-weighted_False]✅ 5/5220.480.04n/a
iron/operators/rope
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_1-method_type_0]✅ 5/5170.380.58n/a
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_2-method_type_0]✅ 5/5153.880.66n/a
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_4-method_type_0]✅ 5/5165.280.60n/a
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_8-method_type_0]✅ 5/5187.220.53n/a
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_1-method_type_0]✅ 5/5180.960.41n/a
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_2-method_type_0]✅ 5/5163.140.47n/a
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_4-method_type_0]✅ 5/5158.700.47n/a
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_8-method_type_0]✅ 5/5204.220.39n/a
iron/operators/sigmoid
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_sigmoid[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5149.880.06n/a
test_sigmoid[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]✅ 5/5149.320.06n/a
test_sigmoid[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5167.780.05n/a
test_sigmoid[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5153.000.06n/a
test_sigmoid[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5161.280.05n/a
test_sigmoid[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]✅ 5/5188.120.05n/a
test_sigmoid[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256]✅ 5/5184.360.05n/a
test_sigmoid[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128]✅ 5/5195.060.04n/a
iron/operators/silu
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_silu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5163.520.05n/a
test_silu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5158.260.05n/a
test_silu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5211.160.04n/a
test_silu[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256]✅ 5/5164.800.05n/a
iron/operators/softmax
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_1024]✅ 5/5164.560.82n/a
test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_2048]✅ 5/5203.640.72n/a
test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5158.320.87n/a
iron/operators/strided_copy
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_strided_copy[chunked_transfer]✅ 5/5150.700.03n/a
test_strided_copy[contiguous]✅ 5/5184.040.02n/a
test_strided_copy[four_channels]✅ 5/5167.320.03n/a
test_strided_copy[kv_slot0]✅ 5/5176.540.77n/a
test_strided_copy[kv_slot5]✅ 5/5181.140.74n/a
test_strided_copy[kv_slot5_four_channels]✅ 5/5179.180.77n/a
test_strided_copy[kv_slot5_two_channels]✅ 5/5163.080.83n/a
test_strided_copy[kv_slot_last]✅ 5/5184.380.72n/a
test_strided_copy[two_channels]✅ 5/5172.920.02n/a
test_strided_copy[two_channels_chunked]✅ 5/5154.220.03n/a
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter0]✅ 1/1n/an/an/a
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter1]✅ 1/1n/an/an/a
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter2]✅ 1/1n/an/an/a
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter3]✅ 1/1n/an/an/a
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter4]✅ 1/1n/an/an/a
iron/operators/swiglu_decode
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_swiglu_decode[embedding_dim_1024-hidden_dim_3584]✅ 5/5983.230.00n/a
test_swiglu_decode[embedding_dim_2048-hidden_dim_2048]✅ 5/51029.050.01n/a
iron/operators/swiglu_prefill
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_swiglu_prefill[seq_len_256-embedding_dim_2048-hidden_dim_2048-prio_accuracy_False]✅ 5/52168.860.97n/a
iron/operators/tanh
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_tanh[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5155.360.05n/a
test_tanh[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]✅ 5/5181.920.05n/a
test_tanh[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5192.400.04n/a
test_tanh[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5201.320.04n/a
test_tanh[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5181.260.05n/a
test_tanh[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]✅ 5/5205.260.04n/a
test_tanh[input_length_2048-num_aie_columns_8-num_channels_1-tile_size_256]✅ 5/5214.100.04n/a
test_tanh[input_length_2048-num_aie_columns_8-num_channels_2-tile_size_128]✅ 5/5220.520.04n/a
iron/operators/transpose
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_transpose[M_2048-N_64-aie_columns_1-channels_1-m_64-n_64-s_8-num_batches_1]✅ 5/5225.742.34n/a
test_transpose[M_2048-N_64-aie_columns_1-channels_1-m_64-n_64-s_8-num_batches_2]✅ 5/5267.583.96n/a
test_transpose[M_2048-N_64-aie_columns_1-channels_2-m_64-n_64-s_8-num_batches_1]✅ 5/5209.742.52n/a
Krackan - Examples

IRON

Tested on 2026_09_11_21_38_15 at commit 13e23a1.

iron/applications/llama_3.2_1b
TestChecksTTFT (mean)TPS (mean)
test_llama_3_2_1b[llama_3.2_1b_prompt_1024_tokens_1]✅ 5/52.06n/a
test_llama_3_2_1b[llama_3.2_1b_prompt_1024_tokens_40]✅ 5/52.097.83
test_llama_3_2_1b[llama_3.2_1b_prompt_13_tokens_1]✅ 5/52.03n/a
test_llama_3_2_1b[llama_3.2_1b_prompt_13_tokens_40]✅ 5/52.017.62
Phoenix - Small

IRON

Tested on 2026_09_11_21_37_21 at commit 13e23a1.

iron/operators/axpy
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_axpy[input_length_2048-num_aie_columns_1-tile_size_2048-scalar_factor_3.0]✅ 5/5412.700.03n/a
test_axpy[input_length_2048-num_aie_columns_2-tile_size_1024-scalar_factor_3.0]✅ 5/5311.800.04n/a
test_axpy[input_length_2048-num_aie_columns_4-tile_size_512-scalar_factor_3.0]✅ 5/5471.560.03n/a
iron/operators/dequant
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_dequant[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-group_size_32]✅ 5/5377.440.01n/a
test_dequant[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-group_size_32]✅ 5/5385.200.01n/a
test_dequant[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-group_size_32]✅ 5/5357.740.02n/a
test_dequant[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-group_size_32]✅ 5/5430.500.01n/a
test_dequant[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-group_size_32]✅ 5/5482.300.01n/a
test_dequant[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-group_size_32]✅ 5/5423.540.01n/a
iron/operators/elementwise_add
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_elementwise_add[input_length_2048-num_aie_columns_1-tile_size_2048]✅ 5/5343.560.04n/a
test_elementwise_add[input_length_2048-num_aie_columns_2-tile_size_1024]✅ 5/5329.920.04n/a
test_elementwise_add[input_length_2048-num_aie_columns_4-tile_size_512]✅ 5/5547.060.03n/a
iron/operators/elementwise_mul
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_elementwise_mul[input_length_2048-num_aie_columns_1-tile_size_2048]✅ 5/5270.260.05n/a
test_elementwise_mul[input_length_2048-num_aie_columns_2-tile_size_1024]✅ 5/5303.240.04n/a
test_elementwise_mul[input_length_2048-num_aie_columns_4-tile_size_512]✅ 5/5364.520.04n/a
iron/operators/gelu
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_gelu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5307.080.03n/a
test_gelu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]✅ 5/5692.420.02n/a
test_gelu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5495.640.02n/a
test_gelu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5392.400.02n/a
test_gelu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5385.080.03n/a
test_gelu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]✅ 5/5471.260.02n/a
iron/operators/gemm
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_gemm[M_192-K_384-N_64-num_aie_columns_4-b_col_maj_False-c_col_maj_False-m_48-k_96-n_16-trace_size_0-partition_N_1]✅ 5/5674.100.3715.74
test_gemm[M_192-K_384-N_64-num_aie_columns_4-b_col_maj_True-c_col_maj_True-m_48-k_96-n_16-trace_size_0-partition_N_1]✅ 5/5668.520.3916.48
test_gemm[M_2048-K_2048-N_2048-num_aie_columns_1-b_col_maj_False-c_col_maj_False-m_64-k_64-n_64-trace_size_0-partition_N_1]✅ 5/582831.540.30207.45
test_gemm[M_2048-K_2048-N_2048-num_aie_columns_2-b_col_maj_True-c_col_maj_False-m_64-k_64-n_64-trace_size_0-partition_N_1]✅ 5/525201.581.00682.36
test_gemm[M_384-K_1536-N_1792-num_aie_columns_4-b_col_maj_True-c_col_maj_False-m_32-k_48-n_64-trace_size_0-partition_N_1]✅ 5/54339.421.94508.30
test_gemm[M_64-K_512-N_256-num_aie_columns_4-b_col_maj_True-c_col_maj_False-m_16-k_64-n_64-trace_size_0-partition_N_4]✅ 5/55817.520.2211.97
iron/operators/gemv
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_gemv[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128]✅ 5/5n/a0.100.10
test_gemv[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048]✅ 5/5n/a3.603.60
test_gemv[M_2048-K_8192-num_aie_columns_2-tile_size_input_1-tile_size_output_1024]✅ 5/5n/a6.816.81
test_gemv[M_2048-K_8192-num_aie_columns_4-tile_size_input_1-tile_size_output_512]✅ 5/5n/a10.1010.10
test_gemv[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024]✅ 5/5n/a3.693.69
test_gemv[M_8192-K_2048-num_aie_columns_2-tile_size_input_4-tile_size_output_1024]✅ 5/5n/a6.276.26
test_gemv[M_8192-K_2048-num_aie_columns_4-tile_size_input_4-tile_size_output_1024]✅ 5/5n/a10.0210.02
test_gemv_batched[M_1024-K_1024-num_aie_columns_1-tile_size_input_1-tile_size_output_64-num_batches_2]✅ 5/5n/a2.512.50
test_gemv_batched[M_1026-K_64-num_aie_columns_1-tile_size_input_1-tile_size_output_2-num_batches_2]✅ 5/5n/a0.360.35
test_gemv_batched[M_256-K_128-num_aie_columns_1-tile_size_input_1-tile_size_output_256-num_batches_4]✅ 5/5n/a0.680.67
test_gemv_batched[M_64-K_1536-num_aie_columns_1-tile_size_input_1-tile_size_output_64-num_batches_8]✅ 5/5n/a1.541.52
test_gemv_gelu[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128]❌ 0/5n/an/an/a
test_gemv_gelu[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048]❌ 0/5n/an/an/a
test_gemv_gelu[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024]❌ 0/5n/an/an/a
test_gemv_norm_prologue[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128-prologue_ln-norm_ref_]❌ 0/5n/a0.090.09
test_gemv_norm_prologue[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128-prologue_rms-norm_ref_]✅ 5/5n/a0.090.09
test_gemv_norm_prologue[M_2048-K_4096-num_aie_columns_1-tile_size_input_1-tile_size_output_2048-prologue_ln-norm_ref_]❌ 0/5n/a3.263.26
test_gemv_norm_prologue[M_2048-K_4096-num_aie_columns_1-tile_size_input_1-tile_size_output_2048-prologue_rms-norm_ref_]❌ 0/5n/a2.972.96
test_gemv_norm_prologue[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024-prologue_ln-norm_ref_]❌ 0/5n/a3.543.54
test_gemv_norm_prologue[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024-prologue_rms-norm_ref_]❌ 0/5n/a3.733.72
iron/operators/layer_norm
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_layer_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5425.840.02n/a
test_layer_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]✅ 5/5364.740.03n/a
test_layer_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5557.900.02n/a
test_layer_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5418.420.02n/a
test_layer_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5783.560.02n/a
test_layer_norm[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]✅ 5/5787.720.01n/a
iron/operators/leaky_relu
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.01]✅ 5/5424.020.02n/a
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.1]✅ 5/5407.380.02n/a
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.25]✅ 5/5656.660.02n/a
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-alpha_0.01]✅ 5/5414.500.02n/a
test_leaky_relu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-alpha_0.01]✅ 5/5391.860.03n/a
test_leaky_relu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-alpha_0.01]✅ 5/5478.260.02n/a
test_leaky_relu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-alpha_0.01]✅ 5/5414.480.02n/a
test_leaky_relu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-alpha_0.01]✅ 5/5439.160.02n/a
iron/operators/mem_copy
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_mem_copy[input_length_2048-num_cores_1-num_channels_1-bypass_False-tile_size_2048]✅ 5/5337.860.03n/a
test_mem_copy[input_length_2048-num_cores_2-num_channels_1-bypass_False-tile_size_1024]✅ 5/5378.100.02n/a
test_mem_copy[input_length_2048-num_cores_2-num_channels_2-bypass_False-tile_size_1024]✅ 5/5346.260.03n/a
test_mem_copy[input_length_2048-num_cores_4-num_channels_1-bypass_False-tile_size_512]✅ 5/5549.240.02n/a
test_mem_copy[input_length_2048-num_cores_4-num_channels_2-bypass_False-tile_size_512]✅ 5/5381.620.02n/a
test_mem_copy[input_length_2048-num_cores_8-num_channels_2-bypass_False-tile_size_256]✅ 5/5595.880.02n/a
iron/operators/relu
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5359.060.02n/a
test_relu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]✅ 5/5618.920.02n/a
test_relu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5419.040.02n/a
test_relu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5416.280.02n/a
test_relu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5419.620.02n/a
test_relu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]✅ 5/5439.240.02n/a
iron/operators/repeat
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_cols_without_a_legal_split_is_rejected[cols_1031-why_prime > 1023: the only divisors are 1 and cols, neither legal]✅ 5/5n/an/an/a
test_cols_without_a_legal_split_is_rejected[cols_2062-why_2 x 1031: the only word-aligned chunk leaves a 1031-wide chunk count]✅ 5/5n/an/an/a
test_cols_without_a_legal_split_is_rejected[cols_513-why_odd: every divisor is odd, so no chunk is a whole 32-bit word]✅ 5/5n/an/an/a
test_repeat[rows_4-cols_1024-repeat_2-transfer_size_None]✅ 5/5464.700.06n/a
test_repeat[rows_8-cols_512-repeat_4-transfer_size_64]✅ 5/5286.500.15n/a
test_repeat[rows_8-cols_64-repeat_4-transfer_size_None]✅ 5/5304.540.02n/a
iron/operators/rms_norm
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-weighted_False]✅ 5/5465.920.02n/a
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-weighted_True]✅ 5/5375.460.04n/a
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-weighted_False]✅ 5/5447.440.02n/a
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-weighted_True]✅ 5/5368.940.03n/a
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-weighted_False]✅ 5/5688.720.02n/a
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-weighted_True]✅ 5/5418.960.03n/a
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-weighted_False]✅ 5/5330.980.03n/a
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-weighted_True]✅ 5/5469.000.02n/a
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-weighted_False]✅ 5/5749.900.01n/a
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-weighted_True]✅ 5/5361.760.03n/a
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-weighted_False]✅ 5/5463.940.02n/a
iron/operators/rope
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_1-method_type_0]✅ 5/5436.400.29n/a
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_2-method_type_0]✅ 5/5432.120.27n/a
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_4-method_type_0]✅ 5/5371.900.29n/a
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_1-method_type_0]✅ 5/5684.140.18n/a
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_2-method_type_0]✅ 5/5539.700.14n/a
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_4-method_type_0]✅ 5/5427.480.18n/a
iron/operators/sigmoid
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_sigmoid[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5345.700.03n/a
test_sigmoid[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]✅ 5/5416.320.02n/a
test_sigmoid[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5413.600.02n/a
test_sigmoid[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5337.920.03n/a
test_sigmoid[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5318.320.03n/a
test_sigmoid[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]✅ 5/5421.180.02n/a
iron/operators/silu
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_silu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5393.600.02n/a
test_silu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5346.520.03n/a
test_silu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5457.980.02n/a
iron/operators/softmax
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_1024]✅ 5/5507.140.32n/a
test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_2048]✅ 5/5463.240.31n/a
test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5501.660.29n/a
iron/operators/strided_copy
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_strided_copy[chunked_transfer]✅ 5/5289.660.01n/a
test_strided_copy[contiguous]✅ 5/5359.460.01n/a
test_strided_copy[four_channels]✅ 5/5357.240.01n/a
test_strided_copy[kv_slot0]✅ 5/5287.300.50n/a
test_strided_copy[kv_slot5]✅ 5/5331.680.44n/a
test_strided_copy[kv_slot5_four_channels]✅ 5/5321.760.42n/a
test_strided_copy[kv_slot5_two_channels]✅ 5/5251.340.53n/a
test_strided_copy[kv_slot_last]✅ 5/5304.200.45n/a
test_strided_copy[two_channels]✅ 5/5316.960.01n/a
test_strided_copy[two_channels_chunked]✅ 5/5405.640.01n/a
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter0]✅ 1/1n/an/an/a
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter1]✅ 1/1n/an/an/a
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter2]✅ 1/1n/an/an/a
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter3]✅ 1/1n/an/an/a
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter4]✅ 1/1n/an/an/a
iron/operators/swiglu_decode
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_swiglu_decode[embedding_dim_1024-hidden_dim_3584]✅ 5/512848.480.00n/a
test_swiglu_decode[embedding_dim_2048-hidden_dim_2048]✅ 5/513374.130.00n/a
iron/operators/swiglu_prefill
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_swiglu_prefill[seq_len_256-embedding_dim_2048-hidden_dim_2048-prio_accuracy_False]✅ 5/523235.480.09n/a
iron/operators/tanh
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_tanh[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5353.120.02n/a
test_tanh[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]✅ 5/5433.160.02n/a
test_tanh[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5309.120.03n/a
test_tanh[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5389.980.02n/a
test_tanh[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5398.080.02n/a
test_tanh[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]✅ 5/5447.720.02n/a
iron/operators/transpose
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_transpose[M_2048-N_64-aie_columns_1-channels_1-m_64-n_64-s_8-num_batches_1]✅ 5/5412.601.40n/a
test_transpose[M_2048-N_64-aie_columns_1-channels_1-m_64-n_64-s_8-num_batches_2]✅ 5/5506.162.19n/a
test_transpose[M_2048-N_64-aie_columns_1-channels_2-m_64-n_64-s_8-num_batches_1]✅ 5/5365.841.50n/a
Phoenix - Examples

IRON

Tested on 2026_09_11_21_51_31 at commit 13e23a1.

Trend tables omitted, the comment hit GitHub's size limit. Full report in the workflow run.

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

CI Test Results

b9b371d (2026_09_08_21_23_32)

IRON - CI Summary

Examples

iron/applications/llama_3.2_1b
Test Krackan Status Krackan Phoenix Status Phoenix
test_llama_3_2_1b[llama_3.2_1b_prompt_1024_tokens_1] - - -
test_llama_3_2_1b[llama_3.2_1b_prompt_1024_tokens_40] - - -
test_llama_3_2_1b[llama_3.2_1b_prompt_13_tokens_1] - - -
test_llama_3_2_1b[llama_3.2_1b_prompt_13_tokens_40] - - -

Small

iron/operators/axpy
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_axpy[input_length_2048-num_aie_columns_1-tile_size_2048-scalar_factor_3.0] - - 282.98
test_axpy[input_length_2048-num_aie_columns_2-tile_size_1024-scalar_factor_3.0] - - 357.14
test_axpy[input_length_2048-num_aie_columns_4-tile_size_512-scalar_factor_3.0] - - 489.32
iron/operators/dequant
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_dequant[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-group_size_32] - - 418.34
test_dequant[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-group_size_32] - - 401.00
test_dequant[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-group_size_32] - - 360.38
test_dequant[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-group_size_32] - - 403.52
test_dequant[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-group_size_32] - - 455.92
test_dequant[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-group_size_32] - - 450.70
iron/operators/elementwise_add
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_elementwise_add[input_length_2048-num_aie_columns_1-tile_size_2048] - - 293.86
test_elementwise_add[input_length_2048-num_aie_columns_2-tile_size_1024] - - 428.18
test_elementwise_add[input_length_2048-num_aie_columns_4-tile_size_512] - - 463.88
iron/operators/elementwise_mul
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_elementwise_mul[input_length_2048-num_aie_columns_1-tile_size_2048] - - 414.00
test_elementwise_mul[input_length_2048-num_aie_columns_2-tile_size_1024] - - 787.04
test_elementwise_mul[input_length_2048-num_aie_columns_4-tile_size_512] - - 435.90
iron/operators/gelu
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_gelu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048] - - 464.42
test_gelu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024] - - 427.82
test_gelu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024] - - 312.28
test_gelu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512] - - 388.94
test_gelu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512] - - 331.38
test_gelu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256] - - 432.04
iron/operators/gemm
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_gemm[M_192-K_384-N_64-num_aie_columns_4-b_col_maj_False-c_col_maj_False-m_48-k_96-n_16-trace_size_0-partition_N_1] - - 630.02
test_gemm[M_192-K_384-N_64-num_aie_columns_4-b_col_maj_True-c_col_maj_True-m_48-k_96-n_16-trace_size_0-partition_N_1] - - 949.74
test_gemm[M_2048-K_2048-N_2048-num_aie_columns_1-b_col_maj_False-c_col_maj_False-m_64-k_64-n_64-trace_size_0-partition_N_1] - - 82870.96
test_gemm[M_2048-K_2048-N_2048-num_aie_columns_2-b_col_maj_True-c_col_maj_False-m_64-k_64-n_64-trace_size_0-partition_N_1] - - 25109.82
test_gemm[M_384-K_1536-N_1792-num_aie_columns_4-b_col_maj_True-c_col_maj_False-m_32-k_48-n_64-trace_size_0-partition_N_1] - - 3787.04
test_gemm[M_64-K_512-N_256-num_aie_columns_4-b_col_maj_True-c_col_maj_False-m_16-k_64-n_64-trace_size_0-partition_N_4] - - 6204.66
iron/operators/gemv
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_gemv[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128] - - 0.08
test_gemv[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048] - - 3.67
test_gemv[M_2048-K_8192-num_aie_columns_2-tile_size_input_1-tile_size_output_1024] - - 6.61
test_gemv[M_2048-K_8192-num_aie_columns_4-tile_size_input_1-tile_size_output_512] - - 12.57
test_gemv[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024] - - 3.63
test_gemv[M_8192-K_2048-num_aie_columns_2-tile_size_input_4-tile_size_output_1024] - - 6.60
test_gemv[M_8192-K_2048-num_aie_columns_4-tile_size_input_4-tile_size_output_1024] - - 12.15
test_gemv_batched[M_1024-K_1024-num_aie_columns_1-tile_size_input_1-tile_size_output_64-num_batches_2] - - 2.06
test_gemv_batched[M_1026-K_64-num_aie_columns_1-tile_size_input_1-tile_size_output_2-num_batches_2] - - 0.33
test_gemv_batched[M_256-K_128-num_aie_columns_1-tile_size_input_1-tile_size_output_256-num_batches_4] - - 0.54
test_gemv_batched[M_64-K_1536-num_aie_columns_1-tile_size_input_1-tile_size_output_64-num_batches_8] - - 1.28
test_gemv_gelu[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128] - - -
test_gemv_gelu[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048] - - -
test_gemv_gelu[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024] - - -
test_gemv_norm_prologue[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128-prologue_ln-norm_ref_<function layer_norm_ref at 0x796408e4ab60>] - - 0.08
test_gemv_norm_prologue[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128-prologue_rms-norm_ref_<function rms_norm_ref at 0x796408e4aac0>] - - 0.07
test_gemv_norm_prologue[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048-prologue_ln-norm_ref_<function layer_norm_ref at 0x796408e4ab60>] - - -
test_gemv_norm_prologue[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048-prologue_rms-norm_ref_<function rms_norm_ref at 0x796408e4aac0>] - - -
test_gemv_norm_prologue[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024-prologue_ln-norm_ref_<function layer_norm_ref at 0x796408e4ab60>] - - 3.64
test_gemv_norm_prologue[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024-prologue_rms-norm_ref_<function rms_norm_ref at 0x796408e4aac0>] - - 3.74
iron/operators/layer_norm
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_layer_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048] - - 363.96
test_layer_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024] - - 419.74
test_layer_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024] - - 605.68
test_layer_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512] - - 377.76
test_layer_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512] - - 416.30
test_layer_norm[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256] - - 450.78
iron/operators/leaky_relu
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.01] - - 324.62
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.1] - - 394.08
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.25] - - 411.20
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-alpha_0.01] - - 458.16
test_leaky_relu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-alpha_0.01] - - 414.64
test_leaky_relu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-alpha_0.01] - - 428.10
test_leaky_relu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-alpha_0.01] - - 722.34
test_leaky_relu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-alpha_0.01] - - 847.00
iron/operators/mem_copy
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_mem_copy[input_length_2048-num_cores_1-num_channels_1-bypass_False-tile_size_2048] - - 332.72
test_mem_copy[input_length_2048-num_cores_2-num_channels_1-bypass_False-tile_size_1024] - - 799.04
test_mem_copy[input_length_2048-num_cores_2-num_channels_2-bypass_False-tile_size_1024] - - 439.14
test_mem_copy[input_length_2048-num_cores_4-num_channels_1-bypass_False-tile_size_512] - - 655.78
test_mem_copy[input_length_2048-num_cores_4-num_channels_2-bypass_False-tile_size_512] - - 501.10
test_mem_copy[input_length_2048-num_cores_8-num_channels_2-bypass_False-tile_size_256] - - 467.42
iron/operators/relu
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048] - - 313.86
test_relu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024] - - 471.26
test_relu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024] - - 313.18
test_relu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512] - - 695.50
test_relu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512] - - 604.24
test_relu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256] - - 495.24
iron/operators/repeat
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_cols_without_a_legal_split_is_rejected[cols_1031-why_prime > 1023: the only divisors are 1 and cols, neither legal] - - -
test_cols_without_a_legal_split_is_rejected[cols_2062-why_2 x 1031: the only word-aligned chunk leaves a 1031-wide chunk count] - - -
test_cols_without_a_legal_split_is_rejected[cols_513-why_odd: every divisor is odd, so no chunk is a whole 32-bit word] - - -
test_repeat[rows_4-cols_1024-repeat_2-transfer_size_None] - - 322.48
test_repeat[rows_8-cols_512-repeat_4-transfer_size_64] - - 639.80
test_repeat[rows_8-cols_64-repeat_4-transfer_size_None] - - 313.56
iron/operators/rms_norm
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-weighted_False] - - 407.88
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-weighted_True] - - 397.82
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-weighted_False] - - 522.60
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-weighted_True] - - 501.66
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-weighted_False] - - 410.88
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-weighted_True] - - 823.08
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-weighted_False] - - 490.82
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-weighted_True] - - 495.94
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-weighted_False] - - 318.64
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-weighted_True] - - 486.64
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-weighted_False] - - 751.92
iron/operators/rope
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_1-method_type_0] - - 673.20
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_2-method_type_0] - - 670.78
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_4-method_type_0] - - 464.12
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_1-method_type_0] - - 345.18
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_2-method_type_0] - - 486.28
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_4-method_type_0] - - 722.46
iron/operators/sigmoid
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_sigmoid[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048] - - 479.90
test_sigmoid[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024] - - 425.02
test_sigmoid[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024] - - 446.18
test_sigmoid[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512] - - 462.40
test_sigmoid[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512] - - 391.76
test_sigmoid[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256] - - 554.66
iron/operators/silu
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_silu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048] - - 325.98
test_silu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024] - - 487.80
test_silu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512] - - 680.70
iron/operators/softmax
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_1024] - - 421.34
test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_2048] - - 379.66
test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_512] - - 441.24
iron/operators/strided_copy
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_strided_copy[chunked_transfer] - - 314.70
test_strided_copy[contiguous] - - 401.74
test_strided_copy[four_channels] - - 315.26
test_strided_copy[kv_slot0] - - 300.46
test_strided_copy[kv_slot5] - - 352.72
test_strided_copy[kv_slot5_four_channels] - - 429.38
test_strided_copy[kv_slot5_two_channels] - - 465.10
test_strided_copy[kv_slot_last] - - 387.38
test_strided_copy[two_channels] - - 303.42
test_strided_copy[two_channels_chunked] - - 660.72
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter0] - - -
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter1] - - -
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter2] - - -
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter3] - - -
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter4] - - -
iron/operators/swiglu_decode
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_swiglu_decode[embedding_dim_1024-hidden_dim_3584] - - 16817.51
test_swiglu_decode[embedding_dim_2048-hidden_dim_2048] - - 15050.28
iron/operators/swiglu_prefill
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_swiglu_prefill[seq_len_256-embedding_dim_2048-hidden_dim_2048-prio_accuracy_False] - - 18639.80
iron/operators/tanh
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_tanh[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048] - - 373.98
test_tanh[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024] - - 506.12
test_tanh[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024] - - 472.00
test_tanh[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512] - - 510.92
test_tanh[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512] - - 478.82
test_tanh[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256] - - 451.46
iron/operators/transpose
Test Krackan Status Krackan Phoenix Status Phoenix Latency (mean)
test_transpose[M_2048-N_64-aie_columns_1-channels_1-m_64-n_64-s_8-num_batches_1] - - 408.98
test_transpose[M_2048-N_64-aie_columns_1-channels_1-m_64-n_64-s_8-num_batches_2] - - 1114.96
test_transpose[M_2048-N_64-aie_columns_1-channels_2-m_64-n_64-s_8-num_batches_1] - - 513.74
Krackan - Examples

IRON

Tested on 2026_09_08_21_23_32 at commit b9b371d.

iron/applications/llama_3.2_1b
TestChecksTTFT (mean)TPS (mean)
test_llama_3_2_1b[llama_3.2_1b_prompt_1024_tokens_1]✅ 5/52.07n/a
test_llama_3_2_1b[llama_3.2_1b_prompt_1024_tokens_40]✅ 5/52.117.82
test_llama_3_2_1b[llama_3.2_1b_prompt_13_tokens_1]✅ 5/52.02n/a
test_llama_3_2_1b[llama_3.2_1b_prompt_13_tokens_40]✅ 5/52.027.60

Trends:

IRON Trends

iron/applications/llama_3.2_1b

test_llama_3_2_1b[llama_3.2_1b_prompt_1024_tokens_1]

Commit/Date TTFT (max)TTFT (mean)TTFT (median)TTFT (min)TTFT (stddev)
b9b371d — 2026-09-08 21:18:162.09 (+0.38%)2.07 (+0.32%)2.07 (+0.29%)2.06 (+0.34%)0.02 (-0.87%)
deb6e1e — 2026-09-03 22:57:172.09 (n/a)2.07 (n/a)2.07 (n/a)2.05 (n/a)0.02 (n/a)

test_llama_3_2_1b[llama_3.2_1b_prompt_1024_tokens_40]

Commit/Date TPS (max)TPS (mean)TPS (median)TPS (min)TPS (stddev)TTFT (max)TTFT (mean)TTFT (median)TTFT (min)TTFT (stddev)
b9b371d — 2026-09-08 21:18:167.87 (+0.19%)7.82 (+0.02%)7.82 (-0.10%)7.78 (-0.12%)0.04 (+56.62%)2.20 (+1.57%)2.11 (+0.73%)2.09 (+0.00%)2.07 (+0.98%)0.05 (+16.56%)
deb6e1e — 2026-09-03 22:57:177.85 (n/a)7.82 (n/a)7.83 (n/a)7.79 (n/a)0.02 (n/a)2.17 (n/a)2.09 (n/a)2.09 (n/a)2.05 (n/a)0.05 (n/a)

test_llama_3_2_1b[llama_3.2_1b_prompt_13_tokens_1]

Commit/Date TTFT (max)TTFT (mean)TTFT (median)TTFT (min)TTFT (stddev)
b9b371d — 2026-09-08 21:18:162.05 (+0.34%)2.02 (-0.35%)2.02 (-0.44%)2.00 (-0.50%)0.02 (+79.49%)
deb6e1e — 2026-09-03 22:57:172.04 (n/a)2.03 (n/a)2.03 (n/a)2.01 (n/a)0.01 (n/a)

test_llama_3_2_1b[llama_3.2_1b_prompt_13_tokens_40]

Commit/Date TPS (max)TPS (mean)TPS (median)TPS (min)TPS (stddev)TTFT (max)TTFT (mean)TTFT (median)TTFT (min)TTFT (stddev)
b9b371d — 2026-09-08 21:18:167.61 (-0.21%)7.60 (-0.15%)7.60 (-0.09%)7.57 (-0.20%)0.02 (+9.28%)2.05 (-0.24%)2.02 (-0.41%)2.04 (+0.34%)1.99 (-0.70%)0.03 (+63.95%)
deb6e1e — 2026-09-03 22:57:177.63 (n/a)7.61 (n/a)7.61 (n/a)7.58 (n/a)0.02 (n/a)2.05 (n/a)2.03 (n/a)2.03 (n/a)2.00 (n/a)0.02 (n/a)
Phoenix - Small

IRON

Tested on 2026_09_08_21_23_04 at commit b9b371d.

iron/operators/axpy
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_axpy[input_length_2048-num_aie_columns_1-tile_size_2048-scalar_factor_3.0]✅ 5/5282.980.04n/a
test_axpy[input_length_2048-num_aie_columns_2-tile_size_1024-scalar_factor_3.0]✅ 5/5357.140.04n/a
test_axpy[input_length_2048-num_aie_columns_4-tile_size_512-scalar_factor_3.0]✅ 5/5489.320.03n/a
iron/operators/dequant
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_dequant[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-group_size_32]✅ 5/5418.340.02n/a
test_dequant[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-group_size_32]✅ 5/5401.000.01n/a
test_dequant[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-group_size_32]✅ 5/5360.380.02n/a
test_dequant[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-group_size_32]✅ 5/5403.520.02n/a
test_dequant[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-group_size_32]✅ 5/5455.920.01n/a
test_dequant[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-group_size_32]✅ 5/5450.700.01n/a
iron/operators/elementwise_add
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_elementwise_add[input_length_2048-num_aie_columns_1-tile_size_2048]✅ 5/5293.860.04n/a
test_elementwise_add[input_length_2048-num_aie_columns_2-tile_size_1024]✅ 5/5428.180.03n/a
test_elementwise_add[input_length_2048-num_aie_columns_4-tile_size_512]✅ 5/5463.880.03n/a
iron/operators/elementwise_mul
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_elementwise_mul[input_length_2048-num_aie_columns_1-tile_size_2048]✅ 5/5414.000.03n/a
test_elementwise_mul[input_length_2048-num_aie_columns_2-tile_size_1024]✅ 5/5787.040.02n/a
test_elementwise_mul[input_length_2048-num_aie_columns_4-tile_size_512]✅ 5/5435.900.03n/a
iron/operators/gelu
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_gelu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5464.420.02n/a
test_gelu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]✅ 5/5427.820.02n/a
test_gelu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5312.280.03n/a
test_gelu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5388.940.02n/a
test_gelu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5331.380.03n/a
test_gelu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]✅ 5/5432.040.02n/a
iron/operators/gemm
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_gemm[M_192-K_384-N_64-num_aie_columns_4-b_col_maj_False-c_col_maj_False-m_48-k_96-n_16-trace_size_0-partition_N_1]✅ 5/5630.020.4719.94
test_gemm[M_192-K_384-N_64-num_aie_columns_4-b_col_maj_True-c_col_maj_True-m_48-k_96-n_16-trace_size_0-partition_N_1]✅ 5/5949.740.3113.24
test_gemm[M_2048-K_2048-N_2048-num_aie_columns_1-b_col_maj_False-c_col_maj_False-m_64-k_64-n_64-trace_size_0-partition_N_1]✅ 5/582870.960.30207.36
test_gemm[M_2048-K_2048-N_2048-num_aie_columns_2-b_col_maj_True-c_col_maj_False-m_64-k_64-n_64-trace_size_0-partition_N_1]✅ 5/525109.821.00684.32
test_gemm[M_384-K_1536-N_1792-num_aie_columns_4-b_col_maj_True-c_col_maj_False-m_32-k_48-n_64-trace_size_0-partition_N_1]✅ 5/53787.042.32608.66
test_gemm[M_64-K_512-N_256-num_aie_columns_4-b_col_maj_True-c_col_maj_False-m_16-k_64-n_64-trace_size_0-partition_N_4]✅ 5/56204.660.2111.15
iron/operators/gemv
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_gemv[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128]✅ 5/5n/a0.080.08
test_gemv[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048]✅ 5/5n/a3.673.66
test_gemv[M_2048-K_8192-num_aie_columns_2-tile_size_input_1-tile_size_output_1024]✅ 5/5n/a6.616.60
test_gemv[M_2048-K_8192-num_aie_columns_4-tile_size_input_1-tile_size_output_512]✅ 5/5n/a12.5712.56
test_gemv[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024]✅ 5/5n/a3.633.63
test_gemv[M_8192-K_2048-num_aie_columns_2-tile_size_input_4-tile_size_output_1024]✅ 5/5n/a6.606.59
test_gemv[M_8192-K_2048-num_aie_columns_4-tile_size_input_4-tile_size_output_1024]✅ 5/5n/a12.1512.14
test_gemv_batched[M_1024-K_1024-num_aie_columns_1-tile_size_input_1-tile_size_output_64-num_batches_2]✅ 5/5n/a2.062.06
test_gemv_batched[M_1026-K_64-num_aie_columns_1-tile_size_input_1-tile_size_output_2-num_batches_2]✅ 5/5n/a0.330.33
test_gemv_batched[M_256-K_128-num_aie_columns_1-tile_size_input_1-tile_size_output_256-num_batches_4]✅ 5/5n/a0.540.54
test_gemv_batched[M_64-K_1536-num_aie_columns_1-tile_size_input_1-tile_size_output_64-num_batches_8]✅ 5/5n/a1.281.26
test_gemv_gelu[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128]❌ 0/5n/an/an/a
test_gemv_gelu[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048]❌ 0/5n/an/an/a
test_gemv_gelu[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024]❌ 0/5n/an/an/a
test_gemv_norm_prologue[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128-prologue_ln-norm_ref_]❌ 0/5n/a0.080.08
test_gemv_norm_prologue[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128-prologue_rms-norm_ref_]✅ 5/5n/a0.070.07
test_gemv_norm_prologue[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048-prologue_ln-norm_ref_]❌ 0/5n/an/an/a
test_gemv_norm_prologue[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048-prologue_rms-norm_ref_]❌ 0/5n/an/an/a
test_gemv_norm_prologue[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024-prologue_ln-norm_ref_]❌ 0/5n/a3.643.64
test_gemv_norm_prologue[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024-prologue_rms-norm_ref_]❌ 0/5n/a3.743.74
iron/operators/layer_norm
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_layer_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5363.960.02n/a
test_layer_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]✅ 5/5419.740.02n/a
test_layer_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5605.680.02n/a
test_layer_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5377.760.02n/a
test_layer_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5416.300.02n/a
test_layer_norm[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]✅ 5/5450.780.02n/a
iron/operators/leaky_relu
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.01]✅ 5/5324.620.03n/a
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.1]✅ 5/5394.080.02n/a
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.25]✅ 5/5411.200.02n/a
test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-alpha_0.01]✅ 5/5458.160.02n/a
test_leaky_relu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-alpha_0.01]✅ 5/5414.640.02n/a
test_leaky_relu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-alpha_0.01]✅ 5/5428.100.02n/a
test_leaky_relu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-alpha_0.01]✅ 5/5722.340.02n/a
test_leaky_relu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-alpha_0.01]✅ 5/5847.000.01n/a
iron/operators/mem_copy
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_mem_copy[input_length_2048-num_cores_1-num_channels_1-bypass_False-tile_size_2048]✅ 5/5332.720.03n/a
test_mem_copy[input_length_2048-num_cores_2-num_channels_1-bypass_False-tile_size_1024]✅ 5/5799.040.01n/a
test_mem_copy[input_length_2048-num_cores_2-num_channels_2-bypass_False-tile_size_1024]✅ 5/5439.140.02n/a
test_mem_copy[input_length_2048-num_cores_4-num_channels_1-bypass_False-tile_size_512]✅ 5/5655.780.02n/a
test_mem_copy[input_length_2048-num_cores_4-num_channels_2-bypass_False-tile_size_512]✅ 5/5501.100.02n/a
test_mem_copy[input_length_2048-num_cores_8-num_channels_2-bypass_False-tile_size_256]✅ 5/5467.420.02n/a
iron/operators/relu
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5313.860.03n/a
test_relu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]✅ 5/5471.260.02n/a
test_relu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5313.180.03n/a
test_relu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5695.500.02n/a
test_relu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5604.240.02n/a
test_relu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]✅ 5/5495.240.02n/a
iron/operators/repeat
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_cols_without_a_legal_split_is_rejected[cols_1031-why_prime > 1023: the only divisors are 1 and cols, neither legal]✅ 5/5n/an/an/a
test_cols_without_a_legal_split_is_rejected[cols_2062-why_2 x 1031: the only word-aligned chunk leaves a 1031-wide chunk count]✅ 5/5n/an/an/a
test_cols_without_a_legal_split_is_rejected[cols_513-why_odd: every divisor is odd, so no chunk is a whole 32-bit word]✅ 5/5n/an/an/a
test_repeat[rows_4-cols_1024-repeat_2-transfer_size_None]✅ 5/5322.480.08n/a
test_repeat[rows_8-cols_512-repeat_4-transfer_size_64]✅ 5/5639.800.12n/a
test_repeat[rows_8-cols_64-repeat_4-transfer_size_None]✅ 5/5313.560.02n/a
iron/operators/rms_norm
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-weighted_False]✅ 5/5407.880.02n/a
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-weighted_True]✅ 5/5397.820.03n/a
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-weighted_False]✅ 5/5522.600.02n/a
test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-weighted_True]✅ 5/5501.660.02n/a
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-weighted_False]✅ 5/5410.880.02n/a
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-weighted_True]✅ 5/5823.080.03n/a
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-weighted_False]✅ 5/5490.820.02n/a
test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-weighted_True]✅ 5/5495.940.02n/a
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-weighted_False]✅ 5/5318.640.03n/a
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-weighted_True]✅ 5/5486.640.02n/a
test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-weighted_False]✅ 5/5751.920.02n/a
iron/operators/rope
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_1-method_type_0]✅ 5/5673.200.25n/a
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_2-method_type_0]✅ 5/5670.780.23n/a
test_rope[rows_32-cols_512-angle_rows_32-aie_columns_4-method_type_0]✅ 5/5464.120.23n/a
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_1-method_type_0]✅ 5/5345.180.23n/a
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_2-method_type_0]✅ 5/5486.280.17n/a
test_rope[rows_32-cols_512-angle_rows_8-aie_columns_4-method_type_0]✅ 5/5722.460.15n/a
iron/operators/sigmoid
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_sigmoid[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5479.900.02n/a
test_sigmoid[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]✅ 5/5425.020.02n/a
test_sigmoid[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5446.180.02n/a
test_sigmoid[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5462.400.02n/a
test_sigmoid[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5391.760.02n/a
test_sigmoid[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]✅ 5/5554.660.02n/a
iron/operators/silu
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_silu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5325.980.03n/a
test_silu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5487.800.02n/a
test_silu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5680.700.02n/a
iron/operators/softmax
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_1024]✅ 5/5421.340.34n/a
test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_2048]✅ 5/5379.660.38n/a
test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5441.240.35n/a
iron/operators/strided_copy
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_strided_copy[chunked_transfer]✅ 5/5314.700.01n/a
test_strided_copy[contiguous]✅ 5/5401.740.01n/a
test_strided_copy[four_channels]✅ 5/5315.260.01n/a
test_strided_copy[kv_slot0]✅ 5/5300.460.48n/a
test_strided_copy[kv_slot5]✅ 5/5352.720.40n/a
test_strided_copy[kv_slot5_four_channels]✅ 5/5429.380.33n/a
test_strided_copy[kv_slot5_two_channels]✅ 5/5465.100.33n/a
test_strided_copy[kv_slot_last]✅ 5/5387.380.35n/a
test_strided_copy[two_channels]✅ 5/5303.420.01n/a
test_strided_copy[two_channels_chunked]✅ 5/5660.720.01n/a
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter0]✅ 1/1n/an/an/a
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter1]✅ 1/1n/an/an/a
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter2]✅ 1/1n/an/an/a
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter3]✅ 1/1n/an/an/a
test_transfer_size_not_dividing_per_channel_share_is_rejected[iter4]✅ 1/1n/an/an/a
iron/operators/swiglu_decode
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_swiglu_decode[embedding_dim_1024-hidden_dim_3584]✅ 5/516817.510.00n/a
test_swiglu_decode[embedding_dim_2048-hidden_dim_2048]✅ 5/515050.280.00n/a
iron/operators/swiglu_prefill
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_swiglu_prefill[seq_len_256-embedding_dim_2048-hidden_dim_2048-prio_accuracy_False]✅ 5/518639.800.12n/a
iron/operators/tanh
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_tanh[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]✅ 5/5373.980.02n/a
test_tanh[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]✅ 5/5506.120.02n/a
test_tanh[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]✅ 5/5472.000.02n/a
test_tanh[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]✅ 5/5510.920.02n/a
test_tanh[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]✅ 5/5478.820.02n/a
test_tanh[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]✅ 5/5451.460.02n/a
iron/operators/transpose
TestChecksLatency (mean)Bandwidth (mean)Throughput (mean)
test_transpose[M_2048-N_64-aie_columns_1-channels_1-m_64-n_64-s_8-num_batches_1]✅ 5/5408.981.38n/a
test_transpose[M_2048-N_64-aie_columns_1-channels_1-m_64-n_64-s_8-num_batches_2]✅ 5/51114.961.68n/a
test_transpose[M_2048-N_64-aie_columns_1-channels_2-m_64-n_64-s_8-num_batches_1]✅ 5/5513.741.16n/a

Trends:

IRON Trends

iron/operators/axpy

test_axpy[input_length_2048-num_aie_columns_1-tile_size_2048-scalar_factor_3.0]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.05 (-2.46%)0.04 (+29.64%)0.04 (+51.78%)0.04 (+80.19%)0.00 (-75.49%)310.50 (-44.50%)282.98 (-30.31%)278.00 (-34.12%)260.40 (+2.56%)19.97 (-85.76%)
deb6e1e — 2026-09-03 22:38:330.05 (n/a)0.03 (n/a)0.03 (n/a)0.02 (n/a)0.01 (n/a)559.50 (n/a)406.08 (n/a)422.00 (n/a)253.90 (n/a)140.18 (n/a)

test_axpy[input_length_2048-num_aie_columns_2-tile_size_1024-scalar_factor_3.0]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.05 (-19.94%)0.04 (+8.31%)0.04 (+96.59%)0.02 (+93.17%)0.01 (-47.59%)543.20 (-48.24%)357.14 (-30.88%)275.50 (-49.13%)251.10 (+24.93%)131.86 (-62.02%)
deb6e1e — 2026-09-03 22:38:330.06 (n/a)0.04 (n/a)0.02 (n/a)0.01 (n/a)0.02 (n/a)1049.40 (n/a)516.68 (n/a)541.60 (n/a)201.00 (n/a)347.21 (n/a)

test_axpy[input_length_2048-num_aie_columns_4-tile_size_512-scalar_factor_3.0]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.06 (+22.88%)0.03 (-9.39%)0.02 (-28.51%)0.02 (-11.15%)0.02 (+41.70%)660.60 (+12.54%)489.32 (+18.11%)538.10 (+39.88%)207.20 (-18.62%)181.47 (+21.65%)
deb6e1e — 2026-09-03 22:38:330.05 (n/a)0.03 (n/a)0.03 (n/a)0.02 (n/a)0.01 (n/a)587.00 (n/a)414.30 (n/a)384.70 (n/a)254.60 (n/a)149.17 (n/a)
iron/operators/dequant

test_dequant[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-group_size_32]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.02 (-29.39%)0.02 (-33.23%)0.01 (-40.33%)0.01 (-58.74%)0.01 (+9.39%)773.60 (+142.36%)418.34 (+74.77%)406.90 (+67.59%)216.10 (+41.61%)225.53 (+262.45%)
deb6e1e — 2026-09-03 22:38:330.03 (n/a)0.02 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)319.20 (n/a)239.36 (n/a)242.80 (n/a)152.60 (n/a)62.22 (n/a)

test_dequant[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-group_size_32]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.02 (-36.23%)0.01 (-23.68%)0.01 (-24.69%)0.01 (-7.01%)0.00 (-58.54%)527.60 (+7.54%)401.00 (+20.16%)358.20 (+32.77%)325.10 (+56.83%)87.47 (-33.96%)
deb6e1e — 2026-09-03 22:38:330.03 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.01 (n/a)490.60 (n/a)333.72 (n/a)269.80 (n/a)207.30 (n/a)132.45 (n/a)

test_dequant[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-group_size_32]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.02 (-15.34%)0.02 (-22.43%)0.02 (-24.56%)0.01 (-26.78%)0.00 (+21.18%)451.90 (+36.57%)360.38 (+31.14%)346.00 (+32.57%)283.30 (+18.14%)70.28 (+94.69%)
deb6e1e — 2026-09-03 22:38:330.02 (n/a)0.02 (n/a)0.02 (n/a)0.02 (n/a)0.00 (n/a)330.90 (n/a)274.80 (n/a)261.00 (n/a)239.80 (n/a)36.10 (n/a)

test_dequant[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-group_size_32]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (+28.17%)0.02 (+41.42%)0.01 (+11.26%)0.01 (+241.02%)0.01 (+8.02%)554.10 (-70.68%)403.52 (-49.58%)507.60 (-10.13%)189.90 (-22.01%)184.55 (-73.03%)
deb6e1e — 2026-09-03 22:38:330.02 (n/a)0.01 (n/a)0.01 (n/a)0.00 (n/a)0.01 (n/a)1889.60 (n/a)800.34 (n/a)564.80 (n/a)243.50 (n/a)684.35 (n/a)

test_dequant[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-group_size_32]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.02 (-5.85%)0.01 (-12.40%)0.01 (+4.42%)0.01 (-18.47%)0.00 (-17.17%)633.20 (+22.67%)455.92 (+12.26%)463.10 (-4.24%)270.80 (+6.24%)128.65 (+1.82%)
deb6e1e — 2026-09-03 22:38:330.02 (n/a)0.01 (n/a)0.01 (n/a)0.01 (n/a)0.01 (n/a)516.20 (n/a)406.14 (n/a)483.60 (n/a)254.90 (n/a)126.36 (n/a)

test_dequant[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-group_size_32]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.02 (+4.83%)0.01 (-13.51%)0.01 (-24.51%)0.01 (+5.60%)0.01 (-3.67%)668.80 (-5.31%)450.70 (+12.07%)438.00 (+32.49%)234.30 (-4.60%)155.35 (-17.75%)
deb6e1e — 2026-09-03 22:38:330.02 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.01 (n/a)706.30 (n/a)402.16 (n/a)330.60 (n/a)245.60 (n/a)188.89 (n/a)
iron/operators/elementwise_add

test_elementwise_add[input_length_2048-num_aie_columns_1-tile_size_2048]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.06 (n/a)0.04 (n/a)0.05 (n/a)0.03 (n/a)0.01 (n/a)416.30 (n/a)293.86 (n/a)269.10 (n/a)201.80 (n/a)79.42 (n/a)

test_elementwise_add[input_length_2048-num_aie_columns_2-tile_size_1024]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.04 (n/a)0.03 (n/a)0.03 (n/a)0.02 (n/a)0.01 (n/a)625.30 (n/a)428.18 (n/a)436.10 (n/a)274.20 (n/a)135.58 (n/a)

test_elementwise_add[input_length_2048-num_aie_columns_4-tile_size_512]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.04 (n/a)0.03 (n/a)0.03 (n/a)0.02 (n/a)0.01 (n/a)655.40 (n/a)463.88 (n/a)453.00 (n/a)293.00 (n/a)129.25 (n/a)
iron/operators/elementwise_mul

test_elementwise_mul[input_length_2048-num_aie_columns_1-tile_size_2048]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.06 (n/a)0.03 (n/a)0.02 (n/a)0.02 (n/a)0.02 (n/a)523.80 (n/a)414.00 (n/a)507.90 (n/a)211.20 (n/a)144.44 (n/a)

test_elementwise_mul[input_length_2048-num_aie_columns_2-tile_size_1024]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.04 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.01 (n/a)1950.90 (n/a)787.04 (n/a)591.90 (n/a)291.00 (n/a)663.06 (n/a)

test_elementwise_mul[input_length_2048-num_aie_columns_4-tile_size_512]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.05 (n/a)0.03 (n/a)0.03 (n/a)0.02 (n/a)0.01 (n/a)717.80 (n/a)435.90 (n/a)374.70 (n/a)249.40 (n/a)188.12 (n/a)
iron/operators/gelu

test_gelu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.01 (n/a)631.80 (n/a)464.42 (n/a)445.90 (n/a)300.10 (n/a)122.83 (n/a)

test_gelu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.01 (n/a)553.20 (n/a)427.82 (n/a)441.60 (n/a)242.60 (n/a)117.28 (n/a)

test_gelu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (n/a)0.03 (n/a)0.03 (n/a)0.02 (n/a)0.01 (n/a)478.70 (n/a)312.28 (n/a)281.60 (n/a)234.50 (n/a)95.82 (n/a)

test_gelu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (n/a)0.02 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)504.50 (n/a)388.94 (n/a)362.60 (n/a)264.00 (n/a)105.93 (n/a)

test_gelu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.04 (n/a)0.03 (n/a)0.03 (n/a)0.02 (n/a)0.01 (n/a)470.80 (n/a)331.38 (n/a)290.00 (n/a)204.00 (n/a)124.93 (n/a)

test_gelu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.00 (n/a)608.10 (n/a)432.04 (n/a)401.30 (n/a)303.90 (n/a)111.67 (n/a)
iron/operators/gemm

test_gemm[M_192-K_384-N_64-num_aie_columns_4-b_col_maj_False-c_col_maj_False-m_48-k_96-n_16-trace_size_0-partition_N_1]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:100.93 (+41.41%)0.47 (+0.76%)0.41 (-4.00%)0.17 (-53.14%)0.28 (+147.84%)1279.00 (+113.42%)630.02 (+27.00%)538.70 (+4.16%)236.80 (-29.27%)389.21 (+294.89%)39.86 (+41.41%)19.94 (+0.76%)17.52 (-4.00%)7.38 (-53.14%)12.05 (+147.84%)
deb6e1e — 2026-09-03 22:38:330.66 (n/a)0.46 (n/a)0.43 (n/a)0.37 (n/a)0.11 (n/a)599.30 (n/a)496.08 (n/a)517.20 (n/a)334.80 (n/a)98.56 (n/a)28.19 (n/a)19.79 (n/a)18.25 (n/a)15.75 (n/a)4.86 (n/a)

test_gemm[M_192-K_384-N_64-num_aie_columns_4-b_col_maj_True-c_col_maj_True-m_48-k_96-n_16-trace_size_0-partition_N_1]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:100.47 (-16.39%)0.31 (-26.10%)0.35 (-16.24%)0.12 (-64.86%)0.16 (+75.14%)1865.60 (+184.61%)949.74 (+74.22%)626.00 (+19.40%)475.30 (+19.60%)608.27 (+459.66%)19.85 (-16.39%)13.24 (-26.10%)15.08 (-16.24%)5.06 (-64.86%)6.71 (+75.14%)
deb6e1e — 2026-09-03 22:38:330.56 (n/a)0.42 (n/a)0.42 (n/a)0.34 (n/a)0.09 (n/a)655.50 (n/a)545.14 (n/a)524.30 (n/a)397.40 (n/a)108.69 (n/a)23.74 (n/a)17.91 (n/a)18.00 (n/a)14.40 (n/a)3.83 (n/a)

test_gemm[M_2048-K_2048-N_2048-num_aie_columns_1-b_col_maj_False-c_col_maj_False-m_64-k_64-n_64-trace_size_0-partition_N_1]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:100.31 (+1.04%)0.30 (+0.14%)0.30 (-0.26%)0.30 (-0.68%)0.01 (+19.37%)85022.30 (+0.69%)82870.96 (-0.13%)82961.50 (+0.26%)80840.50 (-1.03%)1508.32 (+18.95%)212.52 (+1.04%)207.36 (+0.14%)207.08 (-0.26%)202.06 (-0.68%)3.77 (+19.37%)
deb6e1e — 2026-09-03 22:38:330.31 (n/a)0.30 (n/a)0.30 (n/a)0.30 (n/a)0.00 (n/a)84441.40 (n/a)82982.52 (n/a)82742.70 (n/a)81682.30 (n/a)1268.00 (n/a)210.33 (n/a)207.07 (n/a)207.63 (n/a)203.45 (n/a)3.16 (n/a)

test_gemm[M_2048-K_2048-N_2048-num_aie_columns_2-b_col_maj_True-c_col_maj_False-m_64-k_64-n_64-trace_size_0-partition_N_1]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:101.02 (-0.43%)1.00 (-1.04%)1.00 (-1.65%)0.98 (-1.45%)0.02 (+49.09%)25622.60 (+1.47%)25109.82 (+1.06%)25214.60 (+1.67%)24649.40 (+0.43%)386.26 (+51.47%)696.97 (-0.43%)684.32 (-1.04%)681.35 (-1.65%)670.50 (-1.45%)10.52 (+49.09%)
deb6e1e — 2026-09-03 22:38:331.03 (n/a)1.01 (n/a)1.01 (n/a)1.00 (n/a)0.01 (n/a)25251.20 (n/a)24846.02 (n/a)24799.50 (n/a)24544.40 (n/a)255.00 (n/a)699.95 (n/a)691.51 (n/a)692.75 (n/a)680.36 (n/a)7.06 (n/a)

test_gemm[M_384-K_1536-N_1792-num_aie_columns_4-b_col_maj_True-c_col_maj_False-m_32-k_48-n_64-trace_size_0-partition_N_1]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:103.69 (+0.98%)2.32 (-17.93%)2.18 (-25.57%)1.50 (-23.21%)0.83 (-1.65%)5370.60 (+30.23%)3787.04 (+23.05%)3703.00 (+34.35%)2181.90 (-0.97%)1154.81 (+20.04%)968.83 (+0.98%)608.66 (-17.93%)570.87 (-25.57%)393.61 (-23.21%)216.86 (-1.65%)
deb6e1e — 2026-09-03 22:38:333.66 (n/a)2.83 (n/a)2.92 (n/a)1.95 (n/a)0.84 (n/a)4124.00 (n/a)3077.52 (n/a)2756.20 (n/a)2203.30 (n/a)962.01 (n/a)959.42 (n/a)741.61 (n/a)766.98 (n/a)512.59 (n/a)220.50 (n/a)

test_gemm[M_64-K_512-N_256-num_aie_columns_4-b_col_maj_True-c_col_maj_False-m_16-k_64-n_64-trace_size_0-partition_N_4]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:100.28 (+15.14%)0.21 (+0.12%)0.19 (-7.32%)0.17 (-6.08%)0.04 (+63.79%)7451.90 (+6.47%)6204.66 (+1.60%)6393.70 (+7.90%)4460.40 (-13.15%)1112.93 (+44.52%)15.05 (+15.14%)11.15 (+0.12%)10.50 (-7.32%)9.01 (-6.08%)2.32 (+63.79%)
deb6e1e — 2026-09-03 22:38:330.24 (n/a)0.21 (n/a)0.21 (n/a)0.18 (n/a)0.03 (n/a)6999.10 (n/a)6106.98 (n/a)5925.70 (n/a)5135.70 (n/a)770.08 (n/a)13.07 (n/a)11.13 (n/a)11.33 (n/a)9.59 (n/a)1.42 (n/a)
iron/operators/gemv

test_gemv[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:100.12 (n/a)0.08 (n/a)0.08 (n/a)0.03 (n/a)0.03 (n/a)0.12 (n/a)0.08 (n/a)0.07 (n/a)0.03 (n/a)0.03 (n/a)

test_gemv[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:103.86 (n/a)3.67 (n/a)3.70 (n/a)3.38 (n/a)0.18 (n/a)3.86 (n/a)3.66 (n/a)3.70 (n/a)3.37 (n/a)0.18 (n/a)

test_gemv[M_2048-K_8192-num_aie_columns_2-tile_size_input_1-tile_size_output_1024]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:107.46 (+0.69%)6.61 (+2.51%)7.09 (+5.84%)5.65 (-0.19%)0.86 (+12.73%)7.45 (+0.69%)6.60 (+2.51%)7.08 (+5.84%)5.65 (-0.19%)0.86 (+12.73%)
deb6e1e — 2026-09-03 22:38:337.41 (n/a)6.45 (n/a)6.69 (n/a)5.66 (n/a)0.76 (n/a)7.40 (n/a)6.44 (n/a)6.69 (n/a)5.66 (n/a)0.76 (n/a)

test_gemv[M_2048-K_8192-num_aie_columns_4-tile_size_input_1-tile_size_output_512]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:1014.00 (+38.00%)12.57 (+43.47%)13.51 (+59.01%)8.25 (+0.61%)2.42 (+208.52%)13.99 (+38.00%)12.56 (+43.47%)13.50 (+59.01%)8.25 (+0.61%)2.42 (+208.52%)
deb6e1e — 2026-09-03 22:38:3310.15 (n/a)8.76 (n/a)8.50 (n/a)8.20 (n/a)0.78 (n/a)10.14 (n/a)8.75 (n/a)8.49 (n/a)8.20 (n/a)0.78 (n/a)

test_gemv[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:103.79 (n/a)3.63 (n/a)3.66 (n/a)3.33 (n/a)0.18 (n/a)3.79 (n/a)3.63 (n/a)3.66 (n/a)3.32 (n/a)0.18 (n/a)

test_gemv[M_8192-K_2048-num_aie_columns_2-tile_size_input_4-tile_size_output_1024]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:107.60 (+1.43%)6.60 (-0.36%)7.06 (+8.17%)5.27 (-8.65%)0.99 (+49.83%)7.59 (+1.43%)6.59 (-0.36%)7.05 (+8.17%)5.27 (-8.65%)0.99 (+49.83%)
deb6e1e — 2026-09-03 22:38:337.49 (n/a)6.62 (n/a)6.52 (n/a)5.77 (n/a)0.66 (n/a)7.49 (n/a)6.62 (n/a)6.52 (n/a)5.77 (n/a)0.66 (n/a)

test_gemv[M_8192-K_2048-num_aie_columns_4-tile_size_input_4-tile_size_output_1024]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:1014.12 (+0.50%)12.15 (-3.12%)14.05 (+2.33%)9.18 (+22.26%)2.66 (-5.71%)14.12 (+0.50%)12.14 (-3.12%)14.04 (+2.33%)9.17 (+22.26%)2.66 (-5.71%)
deb6e1e — 2026-09-03 22:38:3314.05 (n/a)12.54 (n/a)13.73 (n/a)7.51 (n/a)2.82 (n/a)14.05 (n/a)12.54 (n/a)13.72 (n/a)7.50 (n/a)2.82 (n/a)

test_gemv_batched[M_1024-K_1024-num_aie_columns_1-tile_size_input_1-tile_size_output_64-num_batches_2]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:103.00 (-4.83%)2.06 (-18.10%)1.69 (-44.44%)1.04 (-4.41%)0.85 (-3.76%)2.99 (-4.83%)2.06 (-18.10%)1.68 (-44.44%)1.04 (-4.41%)0.85 (-3.76%)
deb6e1e — 2026-09-03 22:38:333.15 (n/a)2.52 (n/a)3.04 (n/a)1.09 (n/a)0.89 (n/a)3.14 (n/a)2.51 (n/a)3.03 (n/a)1.09 (n/a)0.89 (n/a)

test_gemv_batched[M_1026-K_64-num_aie_columns_1-tile_size_input_1-tile_size_output_2-num_batches_2]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:100.57 (+0.20%)0.33 (-10.03%)0.36 (+2.10%)0.08 (-1.82%)0.18 (-9.09%)0.56 (+0.20%)0.33 (-10.03%)0.35 (+2.10%)0.07 (-1.82%)0.18 (-9.09%)
deb6e1e — 2026-09-03 22:38:330.57 (n/a)0.37 (n/a)0.35 (n/a)0.08 (n/a)0.20 (n/a)0.56 (n/a)0.37 (n/a)0.34 (n/a)0.08 (n/a)0.20 (n/a)

test_gemv_batched[M_256-K_128-num_aie_columns_1-tile_size_input_1-tile_size_output_256-num_batches_4]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:100.67 (-8.26%)0.54 (+32.74%)0.53 (+14.20%)0.39 (+404.28%)0.12 (-50.74%)0.66 (-8.26%)0.54 (+32.74%)0.52 (+14.20%)0.39 (+404.28%)0.12 (-50.74%)
deb6e1e — 2026-09-03 22:38:330.73 (n/a)0.41 (n/a)0.46 (n/a)0.08 (n/a)0.24 (n/a)0.72 (n/a)0.41 (n/a)0.46 (n/a)0.08 (n/a)0.24 (n/a)

test_gemv_batched[M_64-K_1536-num_aie_columns_1-tile_size_input_1-tile_size_output_64-num_batches_8]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:102.50 (+1.36%)1.28 (-19.24%)0.79 (-55.37%)0.44 (-0.61%)0.98 (+27.79%)2.46 (+1.36%)1.26 (-19.24%)0.78 (-55.37%)0.43 (-0.61%)0.96 (+27.79%)
deb6e1e — 2026-09-03 22:38:332.47 (n/a)1.58 (n/a)1.78 (n/a)0.44 (n/a)0.76 (n/a)2.43 (n/a)1.55 (n/a)1.75 (n/a)0.43 (n/a)0.75 (n/a)

test_gemv_gelu[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128]

No metrics available.

test_gemv_gelu[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048]

No metrics available.

test_gemv_gelu[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024]

No metrics available.

test_gemv_norm_prologue[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128-prologue_ln-norm_ref_<function layer_norm_ref at 0x796408e4ab60>]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:100.14 (n/a)0.08 (n/a)0.07 (n/a)0.05 (n/a)0.03 (n/a)0.13 (n/a)0.08 (n/a)0.07 (n/a)0.05 (n/a)0.03 (n/a)

test_gemv_norm_prologue[M_128-K_128-num_aie_columns_1-tile_size_input_32-tile_size_output_128-prologue_rms-norm_ref_<function rms_norm_ref at 0x796408e4aac0>]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:100.08 (n/a)0.07 (n/a)0.07 (n/a)0.06 (n/a)0.01 (n/a)0.08 (n/a)0.07 (n/a)0.07 (n/a)0.06 (n/a)0.01 (n/a)

test_gemv_norm_prologue[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048-prologue_ln-norm_ref_<function layer_norm_ref at 0x796408e4ab60>]

No metrics available.

test_gemv_norm_prologue[M_2048-K_8192-num_aie_columns_1-tile_size_input_1-tile_size_output_2048-prologue_rms-norm_ref_<function rms_norm_ref at 0x796408e4aac0>]

No metrics available.

test_gemv_norm_prologue[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024-prologue_ln-norm_ref_<function layer_norm_ref at 0x796408e4ab60>]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:103.81 (n/a)3.64 (n/a)3.65 (n/a)3.44 (n/a)0.15 (n/a)3.81 (n/a)3.64 (n/a)3.65 (n/a)3.44 (n/a)0.15 (n/a)

test_gemv_norm_prologue[M_8192-K_2048-num_aie_columns_1-tile_size_input_4-tile_size_output_1024-prologue_rms-norm_ref_<function rms_norm_ref at 0x796408e4aac0>]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Throughput (max)Throughput (mean)Throughput (median)Throughput (min)Throughput (stddev)
b9b371d — 2026-09-08 21:18:103.88 (n/a)3.74 (n/a)3.77 (n/a)3.60 (n/a)0.12 (n/a)3.88 (n/a)3.74 (n/a)3.77 (n/a)3.59 (n/a)0.12 (n/a)
iron/operators/layer_norm

test_layer_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (n/a)0.02 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)477.50 (n/a)363.96 (n/a)336.80 (n/a)263.30 (n/a)88.99 (n/a)

test_layer_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (n/a)0.02 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)531.70 (n/a)419.74 (n/a)494.40 (n/a)271.80 (n/a)124.79 (n/a)

test_layer_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.04 (n/a)0.02 (n/a)0.03 (n/a)0.00 (n/a)0.01 (n/a)1881.90 (n/a)605.68 (n/a)268.40 (n/a)227.80 (n/a)716.04 (n/a)

test_layer_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.04 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.01 (n/a)565.60 (n/a)377.76 (n/a)404.30 (n/a)201.50 (n/a)146.91 (n/a)

test_layer_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (n/a)0.02 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)522.40 (n/a)416.30 (n/a)462.60 (n/a)283.20 (n/a)111.87 (n/a)

test_layer_norm[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.05 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.01 (n/a)659.30 (n/a)450.78 (n/a)456.80 (n/a)172.50 (n/a)176.68 (n/a)
iron/operators/leaky_relu

test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.01]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.04 (+13.68%)0.03 (+31.71%)0.03 (+76.24%)0.02 (+18.04%)0.01 (-14.00%)502.10 (-15.29%)324.62 (-28.17%)294.70 (-43.25%)222.70 (-12.01%)105.70 (-34.92%)
deb6e1e — 2026-09-03 22:38:330.03 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.01 (n/a)592.70 (n/a)451.90 (n/a)519.30 (n/a)253.10 (n/a)162.42 (n/a)

test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.1]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (-9.77%)0.02 (+5.77%)0.03 (+60.63%)0.01 (-7.77%)0.01 (-17.80%)631.70 (+8.43%)394.08 (-7.42%)308.10 (-37.73%)287.50 (+10.83%)150.05 (-0.17%)
deb6e1e — 2026-09-03 22:38:330.03 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.01 (n/a)582.60 (n/a)425.66 (n/a)494.80 (n/a)259.40 (n/a)150.31 (n/a)

test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-alpha_0.25]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (-14.74%)0.02 (-13.26%)0.02 (-13.73%)0.01 (-21.53%)0.01 (-4.93%)619.60 (+27.44%)411.20 (+18.44%)352.30 (+15.89%)255.70 (+17.29%)163.77 (+36.21%)
deb6e1e — 2026-09-03 22:38:330.04 (n/a)0.03 (n/a)0.03 (n/a)0.02 (n/a)0.01 (n/a)486.20 (n/a)347.18 (n/a)304.00 (n/a)218.00 (n/a)120.23 (n/a)

test_leaky_relu[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-alpha_0.01]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (-11.09%)0.02 (-8.74%)0.02 (-2.83%)0.01 (-23.90%)0.01 (-7.04%)645.20 (+31.41%)458.16 (+10.98%)453.90 (+2.90%)297.20 (+12.49%)125.96 (+39.95%)
deb6e1e — 2026-09-03 22:38:330.03 (n/a)0.02 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)491.00 (n/a)412.84 (n/a)441.10 (n/a)264.20 (n/a)90.01 (n/a)

test_leaky_relu[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-alpha_0.01]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (-42.22%)0.02 (-10.84%)0.02 (-8.42%)0.02 (+6.48%)0.01 (-51.44%)516.80 (-6.10%)414.64 (-0.33%)501.60 (+9.19%)265.80 (+73.16%)132.84 (-14.37%)
deb6e1e — 2026-09-03 22:38:330.05 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.02 (n/a)550.40 (n/a)416.02 (n/a)459.40 (n/a)153.50 (n/a)155.14 (n/a)

test_leaky_relu[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-alpha_0.01]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (+88.11%)0.02 (+22.97%)0.02 (+0.12%)0.02 (+10.15%)0.01 (+351.61%)533.00 (-9.21%)428.10 (-12.68%)472.60 (-0.11%)239.30 (-46.83%)113.12 (+102.81%)
deb6e1e — 2026-09-03 22:38:330.02 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.00 (n/a)587.10 (n/a)490.24 (n/a)473.10 (n/a)450.10 (n/a)55.77 (n/a)

test_leaky_relu[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-alpha_0.01]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (+4.17%)0.02 (+14.55%)0.02 (-1.22%)0.00 (+6.42%)0.01 (+25.19%)1897.10 (-6.03%)722.34 (-4.99%)513.30 (+1.22%)240.10 (-4.00%)683.77 (-4.13%)
deb6e1e — 2026-09-03 22:38:330.03 (n/a)0.02 (n/a)0.02 (n/a)0.00 (n/a)0.01 (n/a)2018.90 (n/a)760.24 (n/a)507.10 (n/a)250.10 (n/a)713.23 (n/a)

test_leaky_relu[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-alpha_0.01]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.02 (-36.38%)0.01 (-22.28%)0.02 (+0.64%)0.00 (-70.63%)0.01 (-3.22%)2128.70 (+240.48%)847.00 (+65.08%)533.10 (-0.63%)486.10 (+57.16%)717.43 (+447.31%)
deb6e1e — 2026-09-03 22:38:330.03 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.01 (n/a)625.20 (n/a)513.10 (n/a)536.50 (n/a)309.30 (n/a)131.08 (n/a)
iron/operators/mem_copy

test_mem_copy[input_length_2048-num_cores_1-num_channels_1-bypass_False-tile_size_2048]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.04 (-2.05%)0.03 (+2.02%)0.03 (+5.71%)0.02 (+20.44%)0.01 (+4.86%)452.10 (-16.97%)332.72 (-2.30%)294.20 (-5.40%)226.80 (+2.07%)106.73 (-11.87%)
deb6e1e — 2026-09-03 22:38:330.04 (n/a)0.03 (n/a)0.03 (n/a)0.02 (n/a)0.01 (n/a)544.50 (n/a)340.56 (n/a)311.00 (n/a)222.20 (n/a)121.11 (n/a)

test_mem_copy[input_length_2048-num_cores_2-num_channels_1-bypass_False-tile_size_1024]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.02 (-48.94%)0.01 (-45.92%)0.01 (-39.20%)0.00 (-71.88%)0.01 (-42.53%)1916.30 (+255.59%)799.04 (+117.00%)554.20 (+64.50%)457.40 (+95.89%)626.71 (+339.74%)
deb6e1e — 2026-09-03 22:38:330.04 (n/a)0.03 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)538.90 (n/a)368.22 (n/a)336.90 (n/a)233.50 (n/a)142.52 (n/a)

test_mem_copy[input_length_2048-num_cores_2-num_channels_2-bypass_False-tile_size_1024]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (-18.69%)0.02 (-10.76%)0.02 (+3.56%)0.01 (+0.20%)0.01 (-26.51%)585.70 (-0.20%)439.14 (+6.29%)483.90 (-3.43%)264.20 (+23.00%)157.85 (-7.99%)
deb6e1e — 2026-09-03 22:38:330.04 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.01 (n/a)586.90 (n/a)413.14 (n/a)501.10 (n/a)214.80 (n/a)171.55 (n/a)

test_mem_copy[input_length_2048-num_cores_4-num_channels_1-bypass_False-tile_size_512]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (-16.98%)0.02 (-36.29%)0.02 (-41.22%)0.00 (-76.18%)0.01 (+42.82%)1841.60 (+319.79%)655.78 (+140.16%)398.10 (+70.13%)269.90 (+20.44%)669.85 (+620.78%)
deb6e1e — 2026-09-03 22:38:330.04 (n/a)0.03 (n/a)0.04 (n/a)0.02 (n/a)0.01 (n/a)438.70 (n/a)273.06 (n/a)234.00 (n/a)224.10 (n/a)92.93 (n/a)

test_mem_copy[input_length_2048-num_cores_4-num_channels_2-bypass_False-tile_size_512]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.02 (-37.65%)0.02 (-29.64%)0.01 (-44.61%)0.01 (+4.24%)0.00 (-53.19%)584.40 (-4.06%)501.10 (+32.79%)563.20 (+80.51%)388.00 (+60.40%)101.95 (-30.42%)
deb6e1e — 2026-09-03 22:38:330.03 (n/a)0.02 (n/a)0.03 (n/a)0.01 (n/a)0.01 (n/a)609.10 (n/a)377.36 (n/a)312.00 (n/a)241.90 (n/a)146.51 (n/a)

test_mem_copy[input_length_2048-num_cores_8-num_channels_2-bypass_False-tile_size_256]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (-5.62%)0.02 (+16.29%)0.02 (+27.49%)0.01 (+124.89%)0.01 (-12.81%)812.30 (-55.53%)467.42 (-33.55%)403.20 (-21.57%)274.60 (+5.94%)225.88 (-64.63%)
deb6e1e — 2026-09-03 22:38:330.03 (n/a)0.02 (n/a)0.02 (n/a)0.00 (n/a)0.01 (n/a)1826.80 (n/a)703.40 (n/a)514.10 (n/a)259.20 (n/a)638.71 (n/a)
iron/operators/repeat

test_cols_without_a_legal_split_is_rejected[cols_1031-why_prime > 1023: the only divisors are 1 and cols, neither legal]

No metrics available.

test_cols_without_a_legal_split_is_rejected[cols_2062-why_2 x 1031: the only word-aligned chunk leaves a 1031-wide chunk count]

No metrics available.

test_cols_without_a_legal_split_is_rejected[cols_513-why_odd: every divisor is odd, so no chunk is a whole 32-bit word]

No metrics available.

test_repeat[rows_4-cols_1024-repeat_2-transfer_size_None]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.11 (-3.10%)0.08 (+0.97%)0.08 (-5.39%)0.05 (+4.55%)0.02 (+1.08%)508.40 (-4.35%)322.48 (-1.33%)311.30 (+5.70%)233.40 (+3.18%)110.48 (-6.35%)
deb6e1e — 2026-09-03 22:38:330.11 (n/a)0.08 (n/a)0.08 (n/a)0.05 (n/a)0.02 (n/a)531.50 (n/a)326.84 (n/a)294.50 (n/a)226.20 (n/a)117.97 (n/a)

test_repeat[rows_8-cols_512-repeat_4-transfer_size_64]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.17 (-2.78%)0.12 (-16.59%)0.15 (+3.93%)0.02 (-77.31%)0.06 (+104.75%)1938.10 (+340.68%)639.80 (+109.74%)280.30 (-3.78%)240.00 (+2.87%)733.27 (+808.24%)
deb6e1e — 2026-09-03 22:38:330.18 (n/a)0.14 (n/a)0.14 (n/a)0.09 (n/a)0.03 (n/a)439.80 (n/a)305.04 (n/a)291.30 (n/a)233.30 (n/a)80.73 (n/a)

test_repeat[rows_8-cols_64-repeat_4-transfer_size_None]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.02 (-4.11%)0.02 (+33.05%)0.02 (+62.90%)0.01 (+23.07%)0.00 (-21.26%)471.10 (-18.75%)313.56 (-28.59%)279.60 (-38.60%)239.90 (+4.26%)95.48 (-33.53%)
deb6e1e — 2026-09-03 22:38:330.02 (n/a)0.01 (n/a)0.01 (n/a)0.01 (n/a)0.01 (n/a)579.80 (n/a)439.12 (n/a)455.40 (n/a)230.10 (n/a)143.64 (n/a)
iron/operators/rms_norm

test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-weighted_False]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (-13.95%)0.02 (-19.36%)0.02 (-32.80%)0.01 (-21.58%)0.01 (-11.30%)610.90 (+27.51%)407.88 (+25.15%)403.30 (+48.82%)259.30 (+16.17%)144.63 (+26.61%)
deb6e1e — 2026-09-03 22:38:330.04 (n/a)0.03 (n/a)0.03 (n/a)0.02 (n/a)0.01 (n/a)479.10 (n/a)325.92 (n/a)271.00 (n/a)223.20 (n/a)114.23 (n/a)

test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_1-tile_size_2048-weighted_True]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.05 (+19.16%)0.03 (-4.52%)0.03 (-37.77%)0.02 (+10.10%)0.01 (+28.66%)501.30 (-9.17%)397.82 (+7.14%)478.20 (+60.69%)231.30 (-16.07%)123.94 (+2.89%)
deb6e1e — 2026-09-03 22:38:330.04 (n/a)0.04 (n/a)0.04 (n/a)0.02 (n/a)0.01 (n/a)551.90 (n/a)371.30 (n/a)297.60 (n/a)275.60 (n/a)120.46 (n/a)

test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-weighted_False]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.04 (+32.95%)0.02 (+6.58%)0.02 (-10.76%)0.01 (-43.93%)0.01 (+115.03%)1036.60 (+78.36%)522.60 (+18.97%)480.00 (+12.04%)211.30 (-24.78%)323.10 (+197.04%)
deb6e1e — 2026-09-03 22:38:330.03 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.01 (n/a)581.20 (n/a)439.26 (n/a)428.40 (n/a)280.90 (n/a)108.78 (n/a)

test_rms_norm[input_length_2048-num_aie_columns_1-num_channels_2-tile_size_1024-weighted_True]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (-48.09%)0.02 (-27.22%)0.02 (-7.63%)0.02 (+35.80%)0.00 (-76.14%)553.90 (-26.36%)501.66 (+7.97%)532.80 (+8.25%)361.70 (+92.60%)78.95 (-66.72%)
deb6e1e — 2026-09-03 22:38:330.05 (n/a)0.03 (n/a)0.02 (n/a)0.01 (n/a)0.02 (n/a)752.20 (n/a)464.64 (n/a)492.20 (n/a)187.80 (n/a)237.23 (n/a)

test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-weighted_False]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (+25.47%)0.02 (+24.20%)0.02 (+10.00%)0.01 (-0.55%)0.01 (+94.28%)567.80 (+0.57%)410.88 (-13.81%)447.80 (-9.09%)261.20 (-20.29%)140.22 (+51.00%)
deb6e1e — 2026-09-03 22:38:330.02 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.00 (n/a)564.60 (n/a)476.72 (n/a)492.60 (n/a)327.70 (n/a)92.86 (n/a)

test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_1-tile_size_1024-weighted_True]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.07 (+54.10%)0.03 (-4.59%)0.02 (-39.72%)0.00 (-75.09%)0.03 (+103.61%)2446.90 (+301.46%)823.08 (+110.60%)464.00 (+65.89%)144.70 (-35.08%)939.23 (+416.90%)
deb6e1e — 2026-09-03 22:38:330.05 (n/a)0.03 (n/a)0.04 (n/a)0.02 (n/a)0.01 (n/a)609.50 (n/a)390.82 (n/a)279.70 (n/a)222.90 (n/a)181.70 (n/a)

test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-weighted_False]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.04 (-27.27%)0.02 (-27.47%)0.02 (-33.31%)0.01 (-53.00%)0.01 (-19.67%)1064.40 (+112.75%)490.82 (+54.17%)416.90 (+49.96%)224.50 (+37.56%)337.80 (+129.48%)
deb6e1e — 2026-09-03 22:38:330.05 (n/a)0.03 (n/a)0.03 (n/a)0.02 (n/a)0.01 (n/a)500.30 (n/a)318.36 (n/a)278.00 (n/a)163.20 (n/a)147.20 (n/a)

test_rms_norm[input_length_2048-num_aie_columns_2-num_channels_2-tile_size_512-weighted_True]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (-24.47%)0.02 (-8.66%)0.02 (-12.11%)0.02 (+80.18%)0.01 (-49.83%)575.30 (-44.50%)495.94 (-7.17%)530.90 (+13.78%)322.00 (+32.40%)102.35 (-65.51%)
deb6e1e — 2026-09-03 22:38:330.04 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.01 (n/a)1036.60 (n/a)534.22 (n/a)466.60 (n/a)243.20 (n/a)296.73 (n/a)

test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-weighted_False]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (-37.27%)0.03 (-10.80%)0.03 (-11.06%)0.02 (+22.78%)0.01 (-60.80%)458.80 (-18.55%)318.64 (-1.53%)292.10 (+12.43%)264.20 (+59.44%)79.61 (-48.32%)
deb6e1e — 2026-09-03 22:38:330.05 (n/a)0.03 (n/a)0.03 (n/a)0.01 (n/a)0.01 (n/a)563.30 (n/a)323.58 (n/a)259.80 (n/a)165.70 (n/a)154.03 (n/a)

test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_1-tile_size_512-weighted_True]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (-34.30%)0.02 (+3.99%)0.02 (+24.17%)0.01 (+144.38%)0.01 (-51.86%)675.10 (-59.08%)486.64 (-29.99%)428.90 (-19.47%)340.50 (+52.21%)158.25 (-71.30%)
deb6e1e — 2026-09-03 22:38:330.04 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.01 (n/a)1649.90 (n/a)695.12 (n/a)532.60 (n/a)223.70 (n/a)551.46 (n/a)

test_rms_norm[input_length_2048-num_aie_columns_4-num_channels_2-tile_size_256-weighted_False]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.03 (+24.84%)0.02 (-9.63%)0.02 (-9.97%)0.00 (-66.24%)0.01 (+118.30%)1876.00 (+196.23%)751.92 (+58.63%)528.60 (+11.07%)258.90 (-19.89%)641.60 (+483.03%)
deb6e1e — 2026-09-03 22:38:330.03 (n/a)0.02 (n/a)0.02 (n/a)0.01 (n/a)0.00 (n/a)633.30 (n/a)474.00 (n/a)475.90 (n/a)323.20 (n/a)110.04 (n/a)
iron/operators/rope

test_rope[rows_32-cols_512-angle_rows_32-aie_columns_1-method_type_0]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.40 (+15.02%)0.25 (-14.68%)0.23 (-32.58%)0.05 (-72.19%)0.14 (+89.84%)1887.20 (+259.54%)673.20 (+86.38%)432.40 (+48.34%)245.00 (-13.06%)689.69 (+527.70%)
deb6e1e — 2026-09-03 22:38:330.35 (n/a)0.29 (n/a)0.34 (n/a)0.19 (n/a)0.08 (n/a)524.90 (n/a)361.20 (n/a)291.50 (n/a)281.80 (n/a)109.88 (n/a)

test_rope[rows_32-cols_512-angle_rows_32-aie_columns_2-method_type_0]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.35 (+16.33%)0.23 (+5.67%)0.23 (+12.02%)0.05 (-70.68%)0.12 (+151.07%)1831.50 (+241.06%)670.78 (+44.16%)432.00 (-10.73%)284.10 (-14.04%)655.84 (+665.22%)
deb6e1e — 2026-09-03 22:38:330.30 (n/a)0.22 (n/a)0.20 (n/a)0.18 (n/a)0.05 (n/a)537.00 (n/a)465.30 (n/a)483.90 (n/a)330.50 (n/a)85.71 (n/a)

test_rope[rows_32-cols_512-angle_rows_32-aie_columns_4-method_type_0]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.35 (-2.92%)0.23 (+8.48%)0.20 (+3.31%)0.15 (+278.25%)0.07 (-35.88%)640.50 (-73.56%)464.12 (-43.07%)483.50 (-3.20%)282.80 (+3.02%)132.77 (-85.31%)
deb6e1e — 2026-09-03 22:38:330.36 (n/a)0.21 (n/a)0.20 (n/a)0.04 (n/a)0.12 (n/a)2422.70 (n/a)815.30 (n/a)499.50 (n/a)274.50 (n/a)903.57 (n/a)

test_rope[rows_32-cols_512-angle_rows_8-aie_columns_1-method_type_0]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.27 (-8.74%)0.23 (+0.85%)0.25 (+5.07%)0.14 (-2.15%)0.05 (-17.01%)515.20 (+2.20%)345.18 (-2.38%)290.10 (-4.82%)274.40 (+9.58%)100.47 (-7.25%)
deb6e1e — 2026-09-03 22:38:330.29 (n/a)0.22 (n/a)0.24 (n/a)0.15 (n/a)0.06 (n/a)504.10 (n/a)353.58 (n/a)304.80 (n/a)250.40 (n/a)108.32 (n/a)

test_rope[rows_32-cols_512-angle_rows_8-aie_columns_2-method_type_0]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.31 (-10.07%)0.17 (-21.33%)0.14 (-9.27%)0.12 (-1.11%)0.08 (-27.14%)604.80 (+1.12%)486.28 (+17.71%)537.90 (+10.20%)234.90 (+11.17%)146.29 (-19.49%)
deb6e1e — 2026-09-03 22:38:330.35 (n/a)0.22 (n/a)0.15 (n/a)0.12 (n/a)0.11 (n/a)598.10 (n/a)413.10 (n/a)488.10 (n/a)211.30 (n/a)181.71 (n/a)

test_rope[rows_32-cols_512-angle_rows_8-aie_columns_4-method_type_0]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.20 (-31.01%)0.15 (+5.94%)0.18 (+37.82%)0.04 (-46.57%)0.06 (-22.39%)1954.80 (+87.15%)722.46 (+12.66%)418.00 (-27.44%)375.90 (+44.97%)689.71 (+137.07%)
deb6e1e — 2026-09-03 22:38:330.28 (n/a)0.14 (n/a)0.13 (n/a)0.07 (n/a)0.08 (n/a)1044.50 (n/a)641.28 (n/a)576.10 (n/a)259.30 (n/a)290.93 (n/a)
iron/operators/softmax

test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_1024]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.51 (+3.89%)0.34 (+0.11%)0.30 (+5.00%)0.24 (+11.48%)0.12 (-10.16%)555.70 (-10.31%)421.34 (-2.83%)432.70 (-4.75%)257.50 (-3.77%)136.89 (-14.85%)
deb6e1e — 2026-09-03 22:38:330.49 (n/a)0.34 (n/a)0.29 (n/a)0.21 (n/a)0.13 (n/a)619.60 (n/a)433.62 (n/a)454.30 (n/a)267.60 (n/a)160.77 (n/a)

test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_2048]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.54 (+13.14%)0.38 (+10.48%)0.31 (-11.33%)0.26 (+23.12%)0.13 (+23.61%)502.20 (-18.79%)379.66 (-8.91%)427.60 (+12.79%)244.40 (-11.61%)116.67 (-14.21%)
deb6e1e — 2026-09-03 22:38:330.47 (n/a)0.34 (n/a)0.35 (n/a)0.21 (n/a)0.10 (n/a)618.40 (n/a)416.80 (n/a)379.10 (n/a)276.50 (n/a)135.99 (n/a)

test_softmax[input_length_32768-num_aie_columns_2-num_channels_2-tile_size_512]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.53 (-3.36%)0.35 (-11.42%)0.30 (-19.20%)0.20 (-24.37%)0.15 (+38.06%)667.90 (+32.23%)441.24 (+23.49%)431.40 (+23.79%)245.60 (+3.45%)183.43 (+86.71%)
deb6e1e — 2026-09-03 22:38:330.55 (n/a)0.39 (n/a)0.38 (n/a)0.26 (n/a)0.11 (n/a)505.10 (n/a)357.32 (n/a)348.50 (n/a)237.40 (n/a)98.24 (n/a)
iron/operators/strided_copy

test_strided_copy[chunked_transfer]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.02 (+5.80%)0.01 (+17.11%)0.01 (+26.52%)0.01 (+24.32%)0.00 (-14.04%)394.00 (-19.58%)314.70 (-16.68%)297.90 (-20.96%)241.30 (-5.48%)64.41 (-34.28%)
deb6e1e — 2026-09-03 22:38:330.02 (n/a)0.01 (n/a)0.01 (n/a)0.01 (n/a)0.00 (n/a)489.90 (n/a)377.72 (n/a)376.90 (n/a)255.30 (n/a)98.01 (n/a)

test_strided_copy[contiguous]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.01 (-4.53%)0.01 (+16.83%)0.01 (+40.38%)0.01 (+3.24%)0.00 (+0.25%)543.00 (-3.14%)401.74 (-14.04%)345.40 (-28.77%)298.70 (+4.73%)116.44 (+6.20%)
deb6e1e — 2026-09-03 22:38:330.01 (n/a)0.01 (n/a)0.01 (n/a)0.01 (n/a)0.00 (n/a)560.60 (n/a)467.36 (n/a)484.90 (n/a)285.20 (n/a)109.64 (n/a)

test_strided_copy[four_channels]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.02 (+18.64%)0.01 (+25.21%)0.01 (+17.05%)0.01 (+29.17%)0.00 (+14.14%)428.70 (-22.58%)315.26 (-21.35%)312.50 (-14.55%)211.70 (-15.69%)93.22 (-28.74%)
deb6e1e — 2026-09-03 22:38:330.02 (n/a)0.01 (n/a)0.01 (n/a)0.01 (n/a)0.00 (n/a)553.70 (n/a)400.84 (n/a)365.70 (n/a)251.10 (n/a)130.81 (n/a)

test_strided_copy[kv_slot0]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.66 (+7.26%)0.48 (-2.88%)0.49 (-0.40%)0.27 (-15.75%)0.14 (+26.92%)495.90 (+18.69%)300.46 (+7.01%)267.30 (+0.41%)199.70 (-6.77%)114.08 (+43.00%)
deb6e1e — 2026-09-03 22:38:330.62 (n/a)0.50 (n/a)0.50 (n/a)0.32 (n/a)0.11 (n/a)417.80 (n/a)280.78 (n/a)266.20 (n/a)214.20 (n/a)79.78 (n/a)

test_strided_copy[kv_slot5]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.46 (-10.57%)0.40 (+6.10%)0.45 (+53.79%)0.25 (-5.12%)0.09 (-25.62%)533.00 (+5.38%)352.72 (-8.24%)291.60 (-34.97%)285.10 (+11.80%)105.91 (-9.05%)
deb6e1e — 2026-09-03 22:38:330.52 (n/a)0.37 (n/a)0.29 (n/a)0.26 (n/a)0.12 (n/a)505.80 (n/a)384.38 (n/a)448.40 (n/a)255.00 (n/a)116.45 (n/a)

test_strided_copy[kv_slot5_four_channels]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.45 (-20.80%)0.33 (-28.07%)0.31 (-36.37%)0.23 (-16.34%)0.10 (-10.73%)572.30 (+19.55%)429.38 (+40.07%)431.20 (+57.14%)293.00 (+26.24%)123.39 (+25.69%)
deb6e1e — 2026-09-03 22:38:330.57 (n/a)0.46 (n/a)0.48 (n/a)0.28 (n/a)0.11 (n/a)478.70 (n/a)306.54 (n/a)274.40 (n/a)232.10 (n/a)98.18 (n/a)

test_strided_copy[kv_slot5_two_channels]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.54 (+19.57%)0.33 (-17.82%)0.24 (-43.53%)0.21 (-31.20%)0.15 (+131.42%)622.20 (+45.34%)465.10 (+36.77%)546.20 (+77.11%)243.20 (-16.37%)171.62 (+190.52%)
deb6e1e — 2026-09-03 22:38:330.45 (n/a)0.40 (n/a)0.43 (n/a)0.31 (n/a)0.06 (n/a)428.10 (n/a)340.06 (n/a)308.40 (n/a)290.80 (n/a)59.07 (n/a)

test_strided_copy[kv_slot_last]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.45 (-18.86%)0.35 (-22.55%)0.36 (-26.53%)0.25 (-1.67%)0.07 (-37.90%)525.80 (+1.70%)387.38 (+23.89%)366.90 (+36.09%)291.60 (+23.25%)86.19 (-25.23%)
deb6e1e — 2026-09-03 22:38:330.56 (n/a)0.46 (n/a)0.49 (n/a)0.26 (n/a)0.12 (n/a)517.00 (n/a)312.68 (n/a)269.60 (n/a)236.60 (n/a)115.27 (n/a)

test_strided_copy[two_channels]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.02 (+37.86%)0.01 (+45.46%)0.02 (+46.23%)0.01 (+13.83%)0.00 (+43.97%)503.80 (-12.15%)303.42 (-29.64%)269.90 (-31.62%)204.30 (-27.45%)115.54 (-3.38%)
deb6e1e — 2026-09-03 22:38:330.01 (n/a)0.01 (n/a)0.01 (n/a)0.01 (n/a)0.00 (n/a)573.50 (n/a)431.22 (n/a)394.70 (n/a)281.60 (n/a)119.59 (n/a)

test_strided_copy[two_channels_chunked]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.02 (+15.06%)0.01 (+0.67%)0.01 (+17.21%)0.00 (-75.31%)0.01 (+163.30%)1875.00 (+304.97%)660.72 (+58.56%)370.30 (-14.68%)261.90 (-13.11%)684.57 (+928.80%)
deb6e1e — 2026-09-03 22:38:330.01 (n/a)0.01 (n/a)0.01 (n/a)0.01 (n/a)0.00 (n/a)463.00 (n/a)416.70 (n/a)434.00 (n/a)301.40 (n/a)66.54 (n/a)

test_transfer_size_not_dividing_per_channel_share_is_rejected[iter0]

No metrics available.

test_transfer_size_not_dividing_per_channel_share_is_rejected[iter1]

No metrics available.

test_transfer_size_not_dividing_per_channel_share_is_rejected[iter2]

No metrics available.

test_transfer_size_not_dividing_per_channel_share_is_rejected[iter3]

No metrics available.

test_transfer_size_not_dividing_per_channel_share_is_rejected[iter4]

No metrics available.

iron/operators/swiglu_decode

test_swiglu_decode[embedding_dim_1024-hidden_dim_3584]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.00 (+0.00%)0.00 (-30.43%)0.00 (-60.00%)0.00 (+0.00%)0.00 (-13.63%)21201.99 (-1.00%)16817.51 (+42.65%)20204.76 (+159.69%)5770.81 (+0.98%)6487.42 (-13.50%)
deb6e1e — 2026-09-03 22:38:330.00 (n/a)0.00 (n/a)0.00 (n/a)0.00 (n/a)0.00 (n/a)21415.50 (n/a)11789.16 (n/a)7780.39 (n/a)5714.62 (n/a)7500.24 (n/a)

test_swiglu_decode[embedding_dim_2048-hidden_dim_2048]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.00 (-7.69%)0.00 (-7.50%)0.00 (-16.67%)0.00 (-20.00%)0.00 (+12.76%)22179.53 (+24.72%)15050.28 (+19.56%)17841.27 (+19.86%)6719.17 (+10.57%)7685.71 (+41.84%)
deb6e1e — 2026-09-03 22:38:330.00 (n/a)0.00 (n/a)0.00 (n/a)0.00 (n/a)0.00 (n/a)17782.76 (n/a)12587.83 (n/a)14885.21 (n/a)6077.00 (n/a)5418.64 (n/a)
iron/operators/swiglu_prefill

test_swiglu_prefill[seq_len_256-embedding_dim_2048-hidden_dim_2048-prio_accuracy_False]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:100.14 (-0.70%)0.12 (+30.08%)0.13 (+68.31%)0.08 (+16.13%)0.03 (-11.80%)25315.24 (-13.89%)18639.80 (-24.49%)15794.92 (-40.57%)14712.81 (+0.65%)4647.91 (-19.47%)
deb6e1e — 2026-09-03 22:38:330.14 (n/a)0.09 (n/a)0.08 (n/a)0.07 (n/a)0.03 (n/a)29397.45 (n/a)24686.08 (n/a)26578.49 (n/a)14617.47 (n/a)5771.46 (n/a)
iron/operators/transpose

test_transpose[M_2048-N_64-aie_columns_1-channels_1-m_64-n_64-s_8-num_batches_1]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:101.63 (-11.77%)1.38 (+1.68%)1.49 (-10.12%)0.78 (+10.57%)0.34 (-33.64%)669.70 (-9.56%)408.98 (-8.69%)351.40 (+11.27%)321.80 (+13.35%)146.88 (-28.25%)
deb6e1e — 2026-09-03 22:38:331.85 (n/a)1.36 (n/a)1.66 (n/a)0.71 (n/a)0.52 (n/a)740.50 (n/a)447.88 (n/a)315.80 (n/a)283.90 (n/a)204.70 (n/a)

test_transpose[M_2048-N_64-aie_columns_1-channels_1-m_64-n_64-s_8-num_batches_2]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:102.44 (-20.41%)1.68 (-14.10%)1.86 (+33.75%)0.30 (-77.90%)0.81 (+0.31%)3474.70 (+352.43%)1114.96 (+84.08%)562.80 (-25.23%)429.90 (+25.63%)1320.56 (+519.97%)
deb6e1e — 2026-09-03 22:38:333.06 (n/a)1.96 (n/a)1.39 (n/a)1.37 (n/a)0.81 (n/a)768.00 (n/a)605.68 (n/a)752.70 (n/a)342.20 (n/a)213.00 (n/a)

test_transpose[M_2048-N_64-aie_columns_1-channels_1-m_64-n_64-s_8]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
4bb8427 — 2026-06-25 20:01:371.58 (-2.67%)1.21 (+5.65%)1.29 (+41.89%)0.66 (-20.05%)0.38 (-2.53%)792.90 (+25.08%)479.12 (-3.80%)406.80 (-29.52%)331.10 (+2.76%)189.18 (+26.62%)
4bb8427 — 2026-06-23 22:46:491.63 (n/a)1.14 (n/a)0.91 (n/a)0.83 (n/a)0.38 (n/a)633.90 (n/a)498.02 (n/a)577.20 (n/a)322.20 (n/a)149.40 (n/a)

test_transpose[M_2048-N_64-aie_columns_1-channels_2-m_64-n_64-s_8-num_batches_1]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
b9b371d — 2026-09-08 21:18:101.76 (-9.87%)1.16 (-12.09%)0.98 (-27.50%)0.63 (-21.89%)0.46 (+7.97%)830.30 (+28.03%)513.74 (+19.24%)533.50 (+37.93%)297.20 (+10.98%)209.85 (+47.97%)
deb6e1e — 2026-09-03 22:38:331.96 (n/a)1.32 (n/a)1.36 (n/a)0.81 (n/a)0.42 (n/a)648.50 (n/a)430.84 (n/a)386.80 (n/a)267.80 (n/a)141.82 (n/a)

test_transpose[M_2048-N_64-aie_columns_1-channels_2-m_64-n_64-s_8]

Commit/Date Bandwidth (max)Bandwidth (mean)Bandwidth (median)Bandwidth (min)Bandwidth (stddev)Latency (max)Latency (mean)Latency (median)Latency (min)Latency (stddev)
4bb8427 — 2026-06-25 20:01:371.75 (-15.44%)1.32 (-0.50%)1.36 (+22.47%)0.77 (-19.20%)0.36 (-21.75%)678.10 (+23.76%)430.02 (-0.09%)385.10 (-18.34%)300.10 (+18.29%)146.96 (+19.46%)
4bb8427 — 2026-06-23 22:46:492.07 (n/a)1.32 (n/a)1.11 (n/a)0.96 (n/a)0.46 (n/a)547.90 (n/a)430.40 (n/a)471.60 (n/a)253.70 (n/a)123.02 (n/a)

atassis and others added 4 commits September 11, 2026 19:32
Adds an opt-in `prologue` parameter to GEMV. `prologue="none"` (default) is
byte-identical to before; `prologue="rms"`/`"ln"` normalizes the shared B
vector once per acquire, before it feeds every matvec call in that batch, so
a decode-time norm+GEMV becomes one dispatch instead of a separate elementwise
pass. Affine-free (gamma/beta fold into the weight matrix host-side), matching
the existing rms_norm.cc/layer_norm.cc kernels' own convention.

Both kernels take separate restrict-qualified in/out pointers, so normalizing
b in place would violate their aliasing contract (the fix amd#135 used for gelu,
an in-place wrapper, isn't available here without touching two kernel files
for one call site). Instead each core gets a second L1 Buffer for the
normalized vector; matvec reads from that instead of the raw acquire. Reuses
rms_norm.cc/layer_norm.cc as-is, no kernel changes.

rms_norm.cc and layer_norm.cc exist under both aie2 and aie2p with the same
extern-C signature, so unlike the gelu epilogue this prologue is not NPU2-only.

Test: test_gemv_norm_prologue compares against an A @ norm(B) golden across
three shapes for each of rms/ln, with the standard latency/bandwidth metrics.
rms_norm_ref/layer_norm_ref reproduce the kernels' f32 reduction math; checked
against a hand-derived formula at rel-L2 < 1e-7 (pure numpy, no device).

Not device-verified: I don't have hardware access in this session. Tolerances
(rel_tol=0.05, abs_tol=1e-2) follow the gelu epilogue's precedent, not a
measurement.
auto-merge was automatically disabled September 11, 2026 17:14

Head branch was pushed to by a user without write access

@atassis
atassis force-pushed the nr-brick-norm-gemv-prologue branch from 1b7d479 to 9858d9b Compare September 11, 2026 17:14
@andrej

andrej commented Sep 15, 2026

Copy link
Copy Markdown
Collaborator

One warning:

  /workspace/runner/_work/IRON/IRON/build/GEMV_M2048_K4096_col1_tsi1_tso2048_batch1_npu2_proln.mlir.d/aie.mlir:13:10: warning: cannot determine this core's stack requirement: no stack size information for 'layer_norm_f32' -- it is called (directly, or conservatively through a function-pointer reference) but its defining object was not measurable (missing .stack_sizes, an archive/bitcode input, or not part of this core's link_files); stack_size is not being validated for this core. Set stack_size_override on the affected kernel's external_func()/func.func declaration (Kernel(...)/ExternalFunction(...) in IRON) to enable it

And these errors:

  _ test_gemv_norm_prologue[iter0-M_2048-K_4096-num_aie_columns_1-tile_size_input_1-tile_size_output_2048-prologue_ln-norm_ref_<function layer_norm_ref at 0x7830d1cbea20>] _
  iron/operators/gemv/test.py:251: in test_gemv_norm_prologue
      assert not errors, f"Test failed with errors: {errors}"
  E   AssertionError: Test failed with errors: {'output': [0]}
  E   assert not {'output': [0]}
  ----------------------------- Captured stdout call -----------------------------
  Device: <abc.NPU2 object at 0x7830d1731400>
  Matrix dimensions: M=2048, K=4096
  Tiling: m_input=1, m_output=2048
  Columns: 1
  Mismatch in output[0]: expected -310.000000, got -372.000000

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants