Skip to content

Prune inductor cache during Triton extraction#721

Open
leon062112 wants to merge 2 commits into
PaddlePaddle:developfrom
leon062112:develop
Open

Prune inductor cache during Triton extraction#721
leon062112 wants to merge 2 commits into
PaddlePaddle:developfrom
leon062112:develop

Conversation

@leon062112
Copy link
Copy Markdown
Contributor

PR Category

Feature Enhancement

Description

当前 Triton kernel 提取流程会为每个计算图生成 TorchInductor 编译 cache,包括 output_code.py、Triton 编译中间产物 PTX、.best_config 等文件。完整 cache 体积较大,如果对完整 sample list 跑提取流程,占用空间太大。因此在每个 sample 编译完成后立即裁剪 cache,只保留后续提取和分析所需的最小文件集合。

同时修复了一个 PTX 提取问题:在当前环境中,部分 .best_configtriton_cache_hashnull,原逻辑无法从多个 PTX candidate 中选出 autotune 最终采用的 PTX。

改动内容

  • 新增 cache_pruner.py,用于裁剪单个 sample 的 TorchInductor cache。
  • 在 sample 编译完成后立即调用 cache pruner,降低批量处理时的磁盘峰值占用。
  • 保留后续流程需要的文件:
    • test_compiler_log.log
    • original_graph/model.py
    • original_graph/graph_hash.txt
    • output_code.py
    • *.best_config
    • *.ptx
    • *.json
    • *.pruned_meta.json
  • 删除不再需要的大体积中间产物:
    • *.source
    • *.cubin
    • *.ttir
    • *.ttgir
    • *.llir
    • 其他无关临时文件
  • 删除 *.source 前提取其中的 block size 信息,并写入轻量的 *.pruned_meta.json
  • 增强 PTX 匹配逻辑:
    • 优先使用 .best_config 中的 triton_cache_hash
    • triton_cache_hashnull 时,从 output_code.py# kernel path: 找到对应
      .best_config
    • 使用 XBLOCKnum_warpsnum_stages 等 metadata 匹配正确的 PTX candidate

验证

使用 2 个 typical subgraph sample测试:

Compiled: 2
Kept: 1
Discarded: 1
Extraction: 1 files, 3 kernels, 3 ptx, 1 samples

单个 sample dump 体积对比:
裁剪前: 14M
裁剪后: 1.9M
减少:   约 88.7%

@paddle-bot
Copy link
Copy Markdown

paddle-bot Bot commented May 21, 2026

Thanks for your contribution!

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