Skip to content

Add host_build_graph copies of the paged_attention and qwen3_14b_decode examples - #1665

Closed
noabauma wants to merge 1 commit into
hw-native-sys:mainfrom
huawei-csl:hbg_pa_qwen3
Closed

Add host_build_graph copies of the paged_attention and qwen3_14b_decode examples#1665
noabauma wants to merge 1 commit into
hw-native-sys:mainfrom
huawei-csl:hbg_pa_qwen3

Conversation

@noabauma

@noabauma noabauma commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

examples/a2a3/host_build_graph/ did not exist; these three examples were
tensormap_and_ringbuffer-only.

Added Cases
paged_attention/ Case1, Case2, CaseSmall1/2, CaseVarSeq2/4
paged_attention_manual_scope/ same six
qwen3_14b_decode/ StressBatch16Seq3500 (40 layers, one dispatch)

Why this is nearly free

orchestration/pto_orchestration_api.h is byte-identical between the two
runtimes, and KernelCompiler.compile_orchestration(runtime, source) picks the
include dirs of whichever runtime @scene_test names. So the kernels and the
orchestration C++ are unchanged copies — including qwen3's vendored
paged_attention_cce tree and its 1,980-line generated orchestration. The
Python delta is the runtime= decorator, the class name, and ring sizing.

The one real difference: ring sizing

host_build_graph builds the whole graph before the device schedules anything,
so nothing is reclaimed mid-orchestration (heap tail=0 throughout) and the
entire graph must be resident. Each case carries its own
runtime_env in CASES[*]["config"], so no PTO2_RING_* is needed.

Which knob binds depends on the graph's shape:

  • paged_attention scales task count — Case1 is 65,792 tasks
    (tasks = batch * (4 * ceil(context_len/block_size) + 1)), so
    ring_task_window 131072 / heap 2 GiB; Case2 65536 / 1 GiB.
  • qwen3_14b_decode scales bytes — ~10.6K tasks fits the 16384 default
    window, but 40 layers of simultaneously-live intermediates overrun the
    256 MiB default heap. Measured: 256 MiB → Task Allocator Deadlock - Heap Exhausted (~254 of 256 MiB used, tail=0); 512 MiB passes.

On tensormap_and_ringbuffer none of this is needed, because scope-local
intermediates are freed as orchestration proceeds.

Validation (a2a3, golden checking on)

  • paged_attention + manual_scope: 12/12 cases pass.
  • qwen3_14b_decode: passes, golden checked across all 40 layers' KV writes;
    device_wall 38.1 ms vs 36.8 ms for the upstream TMR example.

Omissions

  • Case3 (head_dim: 256) is not included — it fails on both runtimes:
    the unmodified upstream TMR example gives max_diff=0.1255, hbg gives
    max_diff=nan. The graph executes normally (16 ms device_wall, no deadlock),
    so this is a pre-existing kernel numerics/tiling defect at head_dim > 128,
    not a port artifact. The existing tests/st/.../host_build_graph/paged_attention
    also omits it, without recording why.
  • No SPMD example is ported; host_build_graph has no SPMD coverage in the tree.

@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 112 files, which is 12 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 6e218e5a-4cbb-4d0b-a4b5-852781b734b3

📥 Commits

Reviewing files that changed from the base of the PR and between b5261a7 and c1aa82c.

⛔ Files ignored due to path filters (1)
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/generated/kernel_tiling/kernel_tiling.h is excluded by !**/generated/**
📒 Files selected for processing (112)
  • examples/a2a3/host_build_graph/paged_attention/README.md
  • examples/a2a3/host_build_graph/paged_attention/kernels/aic/aic_pv_matmul.cpp
  • examples/a2a3/host_build_graph/paged_attention/kernels/aic/aic_qk_matmul.cpp
  • examples/a2a3/host_build_graph/paged_attention/kernels/aiv/aiv_online_update.cpp
  • examples/a2a3/host_build_graph/paged_attention/kernels/aiv/aiv_softmax_prepare.cpp
  • examples/a2a3/host_build_graph/paged_attention/kernels/orchestration/paged_attention_orch.cpp
  • examples/a2a3/host_build_graph/paged_attention/test_paged_attention.py
  • examples/a2a3/host_build_graph/paged_attention_manual_scope/README.md
  • examples/a2a3/host_build_graph/paged_attention_manual_scope/kernels/aic/aic_pv_matmul.cpp
  • examples/a2a3/host_build_graph/paged_attention_manual_scope/kernels/aic/aic_qk_matmul.cpp
  • examples/a2a3/host_build_graph/paged_attention_manual_scope/kernels/aiv/aiv_online_update.cpp
  • examples/a2a3/host_build_graph/paged_attention_manual_scope/kernels/aiv/aiv_softmax_prepare.cpp
  • examples/a2a3/host_build_graph/paged_attention_manual_scope/kernels/orchestration/paged_attention_orch.cpp
  • examples/a2a3/host_build_graph/paged_attention_manual_scope/test_paged_attention_manual_scope.py
  • examples/a2a3/host_build_graph/qwen3_14b_decode/README.md
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/down_proj.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/gate_proj.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/gate_proj_0.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/gate_proj_1.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/gate_proj_2.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/gate_proj_3.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/gate_proj_4.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/k_proj.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/out_proj.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/out_proj_0.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/q_proj.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/up_proj.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/up_proj_0.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/up_proj_1.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/up_proj_2.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/up_proj_3.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/up_proj_4.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aic/v_proj.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/attn_out_seed.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/copy_hidden.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/copy_out.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/dcr_xgamma.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/kv_seed.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/mlp_out_seed.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/post_rms_reduce.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/q_seed.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/residual_rms_cast.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/residual_rms_cast_0.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/residual_rms_cast_1.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/residual_rms_cast_2.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/residual_rms_cast_3.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/rms_recip.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/silu.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/aiv/x_gamma0.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/orchestration/decode_fwd_layers.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/attention/entry.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/attention_rope/entry.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/kernel/fai_body.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/kernel/metadata_layout.h
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/kernel/rope_qkv_generated.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/tiling/entry.cpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/tiling/qwen_fai_runtime_tiler.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/arch/arch.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/arch/cross_core_sync.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/arch/local_tensor_buffer.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/arch/resource.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/base_defs.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/coord.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/detail/alignment.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/detail/dependent_false.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/detail/macros.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/block/CombineScale.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/block/block_epilogue.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/block/block_epilogue_init_outputs.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/block/block_epilogue_online_softmax.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/block/block_epilogue_online_softmax_low_prec.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/block/block_epilogue_rescale_o.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/block/block_epilogue_rescale_o_low_prec.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/dispatch_policy.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/tile_common/copy_gm_to_ub.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/tile_common/copy_ub_to_gm.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/tile_common/tile_broadcast_inplace_by_column.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/tile_common/tile_broadcast_inplace_by_row.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/tile_common/tile_broadcast_mul.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/tile_common/tile_broadcast_one_blk.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/tile_common/tile_cast.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/tile_common/tile_copy.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/tile_common/tile_elemwise_add.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/tile_common/tile_elemwise_mul.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/tile_common/tile_elemwise_muls.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/epilogue/tile_common/tile_swizzle.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/block/block_mmad.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/block/block_mmad_pv.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/block/block_mmad_pv_decode.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/block/block_mmad_qk.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/block/block_mmad_qk_decode.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/dispatch_policy.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/gemm_type.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/helper.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/tile_common/copy_gm_to_l1.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/tile_common/copy_gm_to_ub.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/tile_common/copy_l0c_to_gm.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/tile_common/copy_l1_to_bt.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/tile_common/copy_l1_to_l0a.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/tile_common/copy_l1_to_l0b.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/tile_common/copy_ub_to_gm.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/tile_common/tile_copy.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/tile_common/tile_copy_tla.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm/tile_common/tile_mmad.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/gemm_coord.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/layout/layout.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/layout/matrix.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/layout/vector.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/attn_infra/matrix_coord.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/flash_attention_regular.h
  • examples/a2a3/host_build_graph/qwen3_14b_decode/kernels/vendor/paged_attention_cce/vendor/fused_infer_attention_score/kernel_common.hpp
  • examples/a2a3/host_build_graph/qwen3_14b_decode/test_qwen3_14b_decode.py

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@noabauma noabauma closed this Aug 3, 2026
@noabauma
noabauma deleted the hbg_pa_qwen3 branch August 4, 2026 08:23
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.

1 participant