跳到主要内容
TileLang 系统教程

tilelang-tutorial.huandu.me

第 07 章 快速上手:安装与第一个 kernel

/code/07-quickstart/

04-api-surface-check/README.md1237 字节
# 04-api-surface-check · 离线核对本章用到的 API

## 目的

把「本章说 v0.1.15 里有这个 API」从断言变成一次可复现的检查。脚本不 import
tilelang,只读源码文本,把本章(以及对照用的昇腾)每个 API 名在
`_vendor/tilelang-v0.1.15/` 与 `_vendor/tilelang-ascend-v0.1.2.000/` 里搜一遍。

它还带了三条**反向**检查,用来证明本章的一处分界说法:

* 主干 `tilelang/cache/__init__.py` 里**没有**顶层 `clear_cache()`;
* 主干的 `tilelang.ascend.language` 里**没有** `is_npu`、**没有** `alloc_ub`。

(这两条正是「主干昇腾方言」与「独立仓库 tilelang-ascend 方言」的区别,见本章 7.2 节。)

## 运行前提

只有 Python 3.10+,并且能看到本教材仓库(`_vendor/` 与脚本同在仓库内)。
**不需要 tilelang,不需要 GPU。**

## 运行命令

```bash
python check_api_surface.py
python check_api_surface.py --root /path/to/tilelang-book
```

## 预期输出

```text
仓库根:/.../tilelang-book

== 应当存在 ==
  ok   T.Kernel(target-neutral 网格)                _vendor/tilelang-v0.1.15/tilelang/language/kernel.py:431
  ok   T.Parallel(块级并行域)                        _vendor/tilelang-v0.1.15/tilelang/language/loop.py:13
  ...

== 应当不存在(用于证明主干与 tilelang-ascend 的分界) ==
  ok   主干 v0.1.15 的 tilelang/cache 没有顶层 clear_cache() ...

全部 36 项符合预期。
```

**正确性判据**:脚本退出码为 0,最后一行是「全部 N 项符合预期」。

## 验证级别

**在本机运行过(纯 Python,只读源码)。** 它依赖 `_vendor/` 里的锁定版本源码,
不是运行 TileLang。

## 在真实机器上的验证步骤

在被修改过的 checkout 上重跑本脚本,能立刻发现「API 被挪走 / 改名」。若某一条 FAIL,
先看它命中了哪个文件的哪一行,再去对照本章 `references.md` 里的行号。

← 浏览本章全部代码