tilelang-npu-analyze-ir
Use when an agent needs to inspect generated AscendC source code from a TileLang compiled operator, reason about likely performance issues from the generated…
Skill by Piagari
Chalk Labs
Need help deploying tilelang-npu-analyze-ir?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/piagari-tilelang-npu-analyze-ir
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/tilelang-npu-analyze-ir
What's inside
- Skill name
tilelang-npu-analyze-ir- Description
- Use when an agent needs to inspect generated AscendC source code from a TileLang compiled operator, reason about likely performance issues from the generated code, or compare AscendC output across optimization rounds.
- License
- Apache-2.0
- Instructions
- 78 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (2)
- SKILL.md
- capture_ir.py · scripts/
SKILL.md (first lines)
# Ascend Operator IR Analyzer (TileLang)
## Overview
Extract and inspect the generated AscendC source code from a TileLang compiled operator. TileLang compiles Python DSL kernels into AscendC source via `get_kernel_source()`, which is then compiled by Bisheng into a `.so` for execution on the NPU.
```
Python DSL → TIR (lowering) → AscendC CodeGen → Bisheng → .so
↑
capture_ir.py extracts this
```
## Prerequisites
- `capture_ir.py` depends on `@tilelang.jit` finishing compilation during module import.
- Trigger that compilation with a module-level call such as `compiled_kernel = kernel_func(...)`.
- Do not rely on `_ = kernel_func(...)` or any other exported name that starts with `_`. Even if that import triggers compilation, `capture_ir.py` skips module-level names that start with `_`.
## Default Workflow
1. Clear stale caches before capture:
```bash
find <workspace> -name "__pycache__" -type d -exec rm -rf {} +
```
If a previous JIT attempt failed, also remove stale TileLang memoize artifacts such as `.pkl_memoize_py3` before retrying the same operator and parameters.
2. Print the AscendC source for an operator:
```bash
python3 ./scripts/capture_ir.py --operator-file matmul.py
```
3. Save to a file for inspection or round archival:
```bash
python3 ./scripts/capture_ir.py --operator-file opt-round-1/opt_matmul.py > opt-round-1/ir/ascendc_source.cpp
```
4. If the operator has multiple kernels, list them all first:
```bash
python3 ./scripts/capture_ir.py --operator-file matmul.py --kernel func
```
5. Analyze the AscendC source for performance signals using standard terminal tools:
```bash
# Count compute vs transfer operations
rg -c 'Mmad|Muls|Add|Sub|Max|Min|Exp|Ln|Sqrt|Rsqrt' ascendc_source.cpp
rg -c 'CopyIn|CopyOut|DataCopy' ascendc_source.cpp
# Find synchronization points
rg -n 'pipe_barrier|SetFlag|WaitFlag' ascendc_source.cpp
# Check buffer allocation sizes
rg -n 'LocalTensor' ascendc_source.cpp
```
6. For round-over-round comparison, archive the AscendC source under each round's `ir/` directory and diff:
```bash
diff opt-round-1/ir/ascendc_source.cpp opt-round-2/ir/ascendc_source.cpp
```
## Troubleshooting
| Error | Likely cause | Fix |
| --- | --- | --- |
| `No compiled kernels found` | The operator never triggers `@tilelang.jit` during module import | Add a module-level call such as `compiled_kernel = kernel_func(...)` |
| `No compiled kernels found` after adding a trigger call | The compiled kernel is only exported through a name that starts with `_` | Rename the exported compiled-kernel variable so it does not start with `_` |
| `Compilation Failed` | A stale failed JIT result is being reused from cache | Clear `__pycache__` directories and stale `.pkl_memoize_py3` memoize files, then retry |
## Working Rules
- Prefer `python3 ./scripts/capture_ir.py --operator-file ...` to extract AscendC source rather than ad hoc Python snippets.
- Clear stale `__pycache__` directories and `.pkl_memoize_py3` files before retrying a previously failed compilation with the same inputs.
- Archive AscendC source under `opt-round-N/ir/` for round-level evidence, mirroring the triton-npu-analyze-ir convention.
- Keep the archived AscendC source immutable once captured unless the user explicitly asks to replace it.
- Use `rg`, `grep`, `diff`, or similar terminal tools on the captured source for analysis.
- Present analysis in terms of concrete AscendC code patterns (pipeline stages, buffer sizes, sync density, compute-to-transfer ratio), not only intuition.
- If the user also needs hotspot evidence or operator timing attribution, use the `ascend-npu-profile-operator` skill as a companion skill.From Piagari/helix, Apache-2.0.
More from Piagari/helix
- 0.479score
ascend-npu-plan-git-operator-workspaces
Piagari
Use when a Git branch must be analyzed to plan Ascend NPU operator workspaces for downstream distillation or optimization across Triton, TileLang, or similar…
SkillCFreshness: CClaude Code +9 - 0.479score
ascend-npu-run-eval
Piagari
Execute and evaluate generated operator artifacts.
SkillCFreshness: CClaude Code +9 - 0.479score
managing-gitcode-prs
Piagari
Create, list, and inspect GitCode pull requests for the current project.
SkillCFreshness: CClaude Code +9 - 0.479score
ascend-npu-report
Piagari
Generate a Chinese optimization report from an existing optimize workspace.
SkillCFreshness: CClaude Code +9 - 0.479score
create-pr
Piagari
Use when opening a new pull request for this repository requires the repo's branch, validation, and skill-script checking gates to run before PR creation.
SkillCFreshness: CClaude Code +9 - 0.479score
ascend-npu-gen-bench
Piagari
Generate benchmark code for an Ascend NPU operator.
SkillCFreshness: CClaude Code +9 - 0.479score
ascend-npu-gen-test
Piagari
Generate correctness test code for an Ascend NPU operator from source code and task context.
SkillCFreshness: CClaude Code +9 - 0.476score
ascend-npu-optimize-state
Piagari
Manage temporary optimize workflow state in an Ascend NPU optimize workspace, including baseline acceptance, round start, same-round strategy-state updates…
SkillCFreshness: CClaude Code +9 - 0.475score
ascend-npu-run-eval
Piagari
Execute and evaluate generated operator artifacts.
SkillCFreshness: CClaude Code +9 - 0.475score
ascend-npu-profile-operator
Piagari
Get and analyze Ascend NPU operator performance data.
SkillCFreshness: CClaude Code +9 - 0.475score
ascend-npu-analyze-round-performance
Piagari
Use when an optimize round needs deep performance diagnosis from round-local profile and optional IR evidence, especially to explain scalar/vector/cube…
SkillCFreshness: CClaude Code +9 - 0.475score
helix-pyinstaller-packager
Piagari
Package the helix repository into PyInstaller onefile executables with the built-in skills tree embedded.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jul 7, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/Piagari/helix
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Piagari
- 0.479score
create-pr
Piagari
Use when opening a new pull request for this repository requires the repo's branch, validation, and skill-script checking gates to run before PR creation.
SkillCFreshness: CClaude Code +9 - 0.479score
managing-gitcode-prs
Piagari
Create, list, and inspect GitCode pull requests for the current project.
SkillCFreshness: CClaude Code +9 - 0.479score
ascend-npu-gen-bench
Piagari
Generate benchmark code for an Ascend NPU operator.
SkillCFreshness: CClaude Code +9 - 0.479score
ascend-npu-plan-git-operator-workspaces
Piagari
Use when a Git branch must be analyzed to plan Ascend NPU operator workspaces for downstream distillation or optimization across Triton, TileLang, or similar…
SkillCFreshness: CClaude Code +9 - 0.479score
ascend-npu-report
Piagari
Generate a Chinese optimization report from an existing optimize workspace.
SkillCFreshness: CClaude Code +9 - 0.479score
ascend-npu-run-eval
Piagari
Execute and evaluate generated operator artifacts.
SkillCFreshness: CClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get tilelang-npu-analyze-ir running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
tilelang-npu-analyze-ir skill. Agent Mart. https://agentmart.dev/skills/piagari-tilelang-npu-analyze-ir (last updated 2026-10-24)