Skip to content
Agentmart
Submit a tool

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

IndexedApache-2.0
Write a review

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.

Book a call

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.

We use your email only for this newsletter. Privacy

About

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.

Use cases: agent-building

No 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

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
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Piagari

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.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying tilelang-npu-analyze-ir?

CallGet help
Cite this page

tilelang-npu-analyze-ir skill. Agent Mart. https://agentmart.dev/skills/piagari-tilelang-npu-analyze-ir (last updated 2026-10-24)