mirror of
https://github.com/tile-ai/tilelang.git
synced 2026-10-20 06:30:07 +08:00
* feat(tools): add official no-GPU compile-only entry (#2913) TileLang has no first-class compile-only path for CPU-only CI. This adds the official entry so later CE work can emit inspectable kernel source without a GPU. Signed-off-by: Oliver Zhang <zhiyuanzhang0904@163.com> * feat(tools): strengthen optional compile-only CUDA target (#2913) `--target cuda` should emit real CUDA C when the wheel has codegen FFI, and soft-fail clearly on Metal-style wheels instead of an AttributeError. Signed-off-by: Oliver Zhang <zhiyuanzhang0904@163.com> * fix(tools): honor module order and CUDA target options (#2913) discover_prim_func skipped an earlier PrimFunc when a later @jit existed, and option-bearing CUDA strings skipped the FFI soft-fail. Signed-off-by: Oliver Zhang <zhiyuanzhang0904@163.com> Co-authored-by: Cursor <cursoragent@cursor.com> * fix(tools): drop stale --output_file when compile-only fails (#2913) CE reuses the same output path; a failed run must not leave yesterday's assembly. Unlink before compile, matching the CuTe wrapper. Signed-off-by: Oliver Zhang <zhiyuanzhang0904@163.com> Co-authored-by: Cursor <cursoragent@cursor.com> * fix(tools): reject JSON auto and pin bare CUDA JSON (#2913) CodeRabbit: '{"kind":"auto"}' bypassed the auto ban, and '{"kind":"cuda"}' skipped the sm_80 pin. Apply the same rules as string targets. Signed-off-by: Oliver Zhang <zhiyuanzhang0904@163.com> Co-authored-by: Cursor <cursoragent@cursor.com> * fix(tools): refuse --output_file when it is the input (#2913) Unlink-before-compile deleted example.py if someone passed the same path twice. Compare resolved/samefile paths first. Signed-off-by: Oliver Zhang <zhiyuanzhang0904@163.com> * fix(tools): emit #line from compile-only when the pass exists (#2913) Pass TL_EMIT_LINE_DIRECTIVES so CE can map generated C back to the example. Older wheels do not register the key; skip it there. Signed-off-by: Oliver Zhang <zhiyuanzhang0904@163.com> * test(tools): require #line to name the input file and store line (#2913) CodeRabbit: a bare "#line" token can pass on an unrelated directive. Parse `#line N "file"` and match the example path plus the marked store. Signed-off-by: Oliver Zhang <zhiyuanzhang0904@163.com> * test(tools): give in-process #line lookup its own marker (#2913) _marker_line scans the test file, so a shared line_marker_store hit the example string (line 37) instead of _add (line 50). ROCm CI asserted that. Signed-off-by: Oliver Zhang <zhiyuanzhang0904@163.com> * docs(tools): document the compile-only CLI (#2913) Co-authored-by: Oliver Zhang <LibertychaserUS@users.noreply.github.com> * docs(tools): document remaining compile-only helpers (#2913) Co-authored-by: Oliver Zhang <LibertychaserUS@users.noreply.github.com> --------- Signed-off-by: Oliver Zhang <zhiyuanzhang0904@163.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Oliver Zhang <LibertychaserUS@users.noreply.github.com>