Ежедневный отчёт TileLang (2026-09-22)
Окно мониторинга: последние 24 часа (2026-09-21 07:00 ~ 2026-09-22 07:00, пекинское время). Данный выпуск — обычное ежедневное окно, пересечений с предыдущим выпуском нет. Источники: GitHub (проверка пушей в 28 репозиториях организации tile-ai, в окне пуши были в 10 репозиториях; в основном репозитории 6 коммитов за день и три новых элемента в очереди ревью; в TileOPs два коммита по управлению roofline и селектору композитного GEMM, четыре последующих; в TileFoundry два коммита; в Ascend три отката и восстановление ежедневного тестирования; новая ветка Hygon, синхронизация с upstream у MetaX, релиз Sunrise, два новых открытых элемента MLIR Ascend; развёртывание сайта документации), Google News RSS с несколькими группами запросов на китайском и английском (через прокси, нулевых совпадений), Hacker News, arXiv, сторонние репозитории экосистемы
Индекс текущего выпуска
- Главное за день: 6 коммитов в основном репозитории за день — два исправления Fuzzer ICE, перехват silent-ошибок AllReduce и Pythonic-поддержка фронтенда (09-21)
-
- Ход работы над ключевыми проектами
- 1.1 Очередь ревью основного репозитория: две новые линии — цепочка NVRTC и магическое деление, патч SM120 ожидает ревью (09-21)
- 1.2 TileOPs: крупный коммит по управлению roofline — формулы манифеста становятся единственным источником исполнения и пересчитываются (09-21)
- 1.3 TileOPs: селектор композитного GEMM переобучен по измерениям, расхождение с torch._grouped_mm скорректировано (09-21)
- 1.4 TileOPs: три последующих элемента по управлению — обходное исправление, проблема вычисления правил манифеста и предварительный порядок весов W4A16 (09-21)
- 1.5 TileOPs: очередь унификации — черновик предзаполнения DeltaNet и исследование конвейера GQA с переменной длиной (09-21)
- 1.6 Ночной снимок: 1046 эталонных тестов без сбоев, файлы результатов корректности в этот раз не опубликованы вместе со снимком (09-21)
- 1.7 TileFoundry: два коммита — учёт времени жизни буферов с учётом циклов и swizzle в стиле CuTe (09-21)
- Ход работы над ключевыми проектами
-
- Мультибэкендовая адаптация (Ascend / Hygon / MetaX / Sunrise / Moore Threads)
- 2.1 Ascend: три отката отвели коммит на десять тысяч строк и два документа, ежедневное тестирование восстановлено полностью 2448/2448 (09-21/09-22)
- 2.2 Ascend: добавлен пример mhc_bwd, открыты два новых PR с исправлениями (09-21)
- 2.3 Hygon: новая ветка с общим FP32 MMAC K, фрагмент ds_read переведён на упакованное копирование (09-21)
- 2.4 MetaX: main синхронизирован с последним upstream head, ветка dev не затронута (09-21)
- 2.5 Sunrise: выпущен 0.1.14+sunrise.1.1.0, включая исправления CI и sparse mask (09-21)
- 2.6 Moore Threads: подключение внешнего бэкенда MUSA выявило три пробела в API (09-21)
- 2.7 MLIR Ascend: два новых открытых элемента — упакованная сортировка и явное управление памятью (09-21)
- Мультибэкендовая адаптация (Ascend / Hygon / MetaX / Sunrise / Moore Threads)
-
- Экосистема и потребители
- 3.1 Потребители: в TileKernels и FlashQLA в окне пушей не было (04-23 / 09-18)
- 3.2 Проекты сообщества: синхронизация примеров фронтенда PTO учебного репозитория и локализации документации (09-21)
- Экосистема и потребители
-
- Сообщество, обучающие материалы и мероприятия
- 4.1 Сайт документации: по одному автоматическому развёртыванию основного репозитория и TileOPs (09-21)
- 4.2 СМИ и академическое направление: в окне нулевой прирост (09-22)
- 4.3 Ритм версий: новый релиз Sunrise, основной репозиторий v0.1.14 держится уже 20 дней (09-21)
- Сообщество, обучающие материалы и мероприятия
-
- Наблюдения за тенденциями
- 5.1 Глубина исправлений: шесть за день, охватывают от Fuzzer до рантайма
- 5.2 Откат и восстановление Ascend: стоимость валидации крупного коммита оплачена напрямую
- 5.3 Инженерия доверия TileOPs вступает в фазу «защиты от регрессий»
- 5.4 Пробелы и точки риска
- Наблюдения за тенденциями
- Приложение: материалы и пояснения к проверке
Главное за день: 6 коммитов в основном репозитории за день — два исправления Fuzzer ICE, перехват silent-ошибок AllReduce и Pythonic-поддержка фронтенда
Дата: 2026-09-21 — 2026-09-22 Источник: tilelang #3207/#3206/#3260/#3266/#3262/#3230
В окне в основной репозиторий прошло 6 коммитов (пекинское время с 09-21 13:28 до 09-22 01:42, сосредоточены в пределах суток с небольшим), объединением закрыто 5 issue — это день с наивысшей плотностью за последнее время. По порядку:
-
Две правки ICE в Fuzzer (#3206, #3207, объединены подряд в течение двух минут в 01:41 / 01:42): #3206 понижает обычный
assertв теле ядра до допустимой проверки на стороне устройства — ранее генерация кода CUDA наследовала общий visitor, записывая специфичный для хоста вызов сообщения об ошибке иreturn -1в ядро__global__, из-за чего nvcc напрямую отказывался компилировать (исправляет #3019); #3207 исправляет падение во время вызова, когда «выход с динамической формой идёт перед входом, задающим форму» — построение таблицы символов изменено так, чтобы сначала обращаться к входам; оба адаптера tvm_ffi и cython сначала размещают входные тензоры, а затем выделяют выходы, скалярная ветвь и список выравниваются (исправляет #3017). Оба исходных тикета были открыты одним и тем же отчётчиком в один день 08-17 и относятся к точечной зачистке очереди fuzzer. -
Перехват тихой ошибки AllReduce (#3266, 21:18): XOR-бабочка редукции требует, чтобы шаг участвующих потоков был степенью двойки; ранее проверялась только логическая ширина; фрагмент
(32, 3)при редукции по измерению 0 понижался доAllReduce<MaxOp, 96, 3>, столбцы и копии молча смешивались в вычислениях, а ровно при 96 или 192 потоках обмен через разделяемую память выходил за границы. Способ исправления — включить проверку шага вCheckAllReduceWidth(общий дляtl.reduceиtl.finalize_reducer), добавить статическое утверждение в шаблон, а планировщик reducer v2 в этом случае откатывается к широкой схеме. -
Исправление NVRTC (#3260, 00:15): исправлена проблема компиляции warp-редукции (исправляет #3259), добавлен заголовок-шаблон nvrtc_std.h. От открытия issue (09-21 09:48) до объединения исправления — около 14,5 часов.
-
Поддержка Pythonic во фронтенде (#3230, 13:28): циклы времени компиляции принимают Python-итерируемые объекты и генераторные выражения; 5 файлов +1084/-24, включая 766 строк новых тестов; одновременно даётся явный отказ при ненадлежащем использовании
PrimExpr,Bufferи т. п. Закрыты два давних Feature Request — #2451 (ForFrame не итерируем) и #2308 (нулевые накладные расходы на индексацию списка выражений внутриT.unroll). -
#3262 (16:23): удалено предупреждение о повторном связывании неизменяемой переменной, чистое удаление 14 строк.
Оценка: шесть правок — это не скопление однотипных, а три слоя глубины — фронтенд компилятора/границы (две правки Fuzzer), слой обёртки времени выполнения (NVRTC), генерация кода и планирование (AllReduce). Из них правка AllReduce наиболее значима по характеру: она перехватывает класс тихих ошибок, «которые вроде бы работают, но результат незаметно неверен», а линия обороны передвинута к статическим утверждениям и откату планировщика; Pythonic во фронтенде — это реализация крупного пункта, тянущегося через недели (открыт 09-15).
1. Ход ключевых проектов
Обзор окна: основной репозиторий — 6 объединённых коммитов (см. сегодняшние ключевые пункты), 3 вновь открытых и 1 закрытый PR, 2 вновь открытых issue; TileOPs — 2 объединённых, 4 вновь открытых/сопровождаемых, 1 ночной снимок; TileFoundry — 2 объединённых, 2 вновь открытых.
1.1 Очередь ревью основного репозитория: две новые линии — цепочка NVRTC и магическое деление; патч SM120 ждёт ревью (09-21)
Дата: 2026-09-21 Источник: #3263/#3265/#3267 и ещё шесть записей (полный список см. в приложении)
Линия NVRTC: после объединения исправления тот же автор утром открыл #3263 — обёртка NVRTC не передаёт скалярные параметры на стороне хоста; в тот же день патч #3264 закрыт (не объединён), а вместо него открыт #3265 (опускание целочисленных вычислений инвариантов запуска на сторону хоста), продолжающий очередь. Накладные расходы деления при динамических формах выделены в отдельную линию: тикет на требование #3261 и реализация #3267 (tl.LowerMagicDiv, предвычисление магического деления по значению делителя во время выполнения) открыты в один день. Кроме того, открыт #3268 (CMake сохраняет пути к SDK, заданные переменными окружения бэкенда); патч блочного масштабирования SM120 #3257 обновлён внутри окна (6 файлов +252/-42, два коммита) и по-прежнему ждёт ревью; #3245 (перехват неподдерживаемых комбинаций dtype для GEMM перед генерацией кода CUDA) остаётся открытым.
1.2 TileOPs: объединён крупный пункт по управлению roofline — формула индекса становится единственным источником исполнения и пересчитывается (09-21)
Дата: 2026-09-21 Источник: TileOPs #2158
09-21 21:02 слито (открыто 09-20 07:29, завершено в течение двух дней). Три задачи: во-первых, сделать поле roofline реестра единственным источником истины для всех потребителей — один источник (запись), одна поверхность вычисления (сгенерированная eval_roofline()); ранее из 175 реализованных операторов 98 рядом с записью писали собственный метод выполнения, изменение записи не меняло числа, и проверить это было невозможно. Во-вторых, исправить формулы, всего 15 категорий ошибок: промежуточные величины учитывались в стоимости, общие входы и выходы пропускались, артефакты реализации тарифицировались, операторы оценивались по неверному dtype или форме и т. д., затрагивая Conv3d, FFT, серию RoPE, Mamba2, DeltaNetAutograd, постраничный GQA, пакетную нормализацию, групповое матричное умножение и др. В-третьих, дать проверке то, что можно судить: структурный оракул пересчитывает 175 операторов для каждого PR; аудит NCU остаётся ручным (требуются права счётчиков, которые CI не может предоставить), но один полный прогон для 78 собираемых операторов выявил последние два дефекта формул.
Толкование: от «показания, критерия, прослеживаемости» к «единству формулы и выполнения» — «считанное» и «записанное» доказаны как одно и то же; этот коммит — замыкание данной линии управления, и возможность перепроверки оставлена в CI.
1.3 TileOPs: селектор комбинированного GEMM переобучен по измерениям, расхождение с torch._grouped_mm исправлено (09-21)
Дата: 2026-09-21 Источник: TileOPs #2157
09-21 22:57 слито. Селектор — это три статические модели стоимости, противоречащие фактам устройства, исправленные поочерёдно: во-первых, модель не видит число инструкций WGMMA (при N не степени двойки выдаются дважды), считая плитку шириной 192 дешёвой — на практике на узких строках её лучшая конфигурация отстаёт от дескриптора в медиане в 1,38 раза, в худшем случае в 3,82 раза, все 74 сравнения проиграны, block_n=192 внесён в исключения; во-вторых, штраф за мелкое кольцо смотрел только на число волн, ошибочно наказывая формы, где «три волны заполняют устройство» — заменено на двойное условие «волн мало и плиток недостаточно для заполнения SM»; в-третьих, каскадный epilogue изначально обслуживал лишь одну форму плитки — заменён на стробирование по глубине кольца и расширен на m-grouped / K-grouped. Предыстория — в измерениях комбинированный GEMM проиграл torch._grouped_mm 14 раз из 120 точек замера, максимум в 3,3 раза. Попутно: fused silu переписан как 0.5 + 0.5 * tanh(g / 2) (устраняет expf и точное деление, вывод побитово идентичен), ёмкость предварительной перестановки MoE округляется по строковым блокам, в универсальном комбинированном GEMM удалены две таблицы метаданных, объявленные в обоих prim_func, но никем не разыменовываемые.
1.4 TileOPs: три коммита сопровождения управления — исправление обхода, проблема вычисления правил реестра и порядок предварительных весов W4A16 (09-21)
Дата: 2026-09-21 Источник: #2167/#2161/#2168
- #2167 (открыт в 22:34): исправление обхода roofline.
maybe_install_eval_roofline()молча уступает классам, определившимeval_roofline, — именно этот механизм заставлял 98 операторов запускать рукописные методы; после слияния #2158 оставалось ещё 3 переопределения, в этом коммите удалены два переопределения GQA из них, заменены единым подходом «накладывать нагрузку времени вызова поверх атрибута», а для двух видов неправильного использования — «нагрузка равна None» (проблема тайминга на стороне вызывающего) и «нагрузка не является отображением» (ошибка связывания у автора) — добавлены явные сообщения об ошибках. - #2161 (11:20, issue): определения helper в
shape_rulesреестра никогда не вычисляются. 15 записей conv/pool определяют равенствами промежуточные величины_kW,_sWи т. д., а валидатор вычисляет каждую запись независимо, не связывая левую часть равенства, из-за чего 234 правила молча пропускаются с NameError (ограничения окна и все правила диапазона вывода не действуют). Автор измерил три способа исправления и все пометил как «проверено и отклонено», ожидая решения. - #2168 (23:14, черновик): порядок предварительно обработанных весов при чтении W4A16 GEMM. Сейчас для получения каждой пары весов FP16 требуется декодирование shift+mask+spread+LOP3, что по измерениям занимает от 9,5 % до 11,3 % ядра; добавлены
W4A16RepackFwdOp(одна перестановка при загрузке контрольной точки, три входа — три выхода) иGemmW4A16PrepackedKernel. Также исправлен один дефект объявления:weight_scaleобъявлен как FP32 — Machete сразу отклоняет, Marlin не проверяет и молча считает неверно (для эталонной реализации выдаёт [inf, -1531.0, nan]);metadata_bytesв roofline синхронно исправлен.
1.5 TileOPs: очередь унификации — черновик предзаполнения DeltaNet и исследование конвейера GQA переменной длины (09-21)
Дата: 2026-09-21 Источники: #2163/#2162/#2160
- #2163 (15:03, черновик): перенос равнодлинного предзаполнения (T не менее 64 и делится на 64) в унифицированный контракт
DeltaNetFwdOp(вход BTHD, возврат o и FP32 final_state), а также вывод из эксплуатации старых публичных операторов предзаполнения/декодирования; миграция декодирования отложена на потом, упаковка переменной длины и нормализация Q/K L2 внутри ядра пока находятся в состоянии спецификации. Автор отмечает, что проверка на GPU ожидает CI. - #2162 (14:30, черновик): исследование производительности GQA переменной длины — пропуск избыточной маски на уровне целых тайлов, прототип плотного warp-специализированного конвейера, введение базовой линии FlashInfer; на H200 пройдено 36 проверок корректности; автор прямо указывает: «преимущество над FlashInfer не установлено, заявления о производительности не делаются».
- #2160 (PR миграции из предыдущего окна) обновлён один раз в пределах окна, всё ещё на ревью.
- Кроме того, две старые записи #2085 и #2088 закрыты утром 09-21 (без слияния).
1.6 Ночной снимок: 1046 бенчмарков, ноль сбоев, файл результатов корректности на этот раз в снимок не включён (09-21)
Дата: 2026-09-21 Источники: коммит снимка 201e809c/метаданные окружения снимка
Сгенерирован 09-22 в 02:41 для cbf29a82 (точка слияния #2157): 1046 бенчмарков, 0 сбоев, 3 пропуска (по-прежнему три позиции GQA paged), число тест-кейсов на уровне предыдущего снимка — #2157 не добавил новых бенчмарк-кейсов. Окружение совпадает с прошлым выпуском: H200, CUDA 13.2, драйвер 595.71.05, TileLang 0.1.11+cu132 с кодовым обозначением версии, torch 2.13.0, настройки мощности и частоты не изменились. Точка наблюдения: в этот раз снимок опубликовал только bench_results.xml и meta.json; два предыдущих снимка сопровождались test_results.xml (результаты корректности), в этот раз его нет, причина не указана, следует перепроверить на следующем снимке.
1.7 TileFoundry: два слияния — учитывающее циклы время жизни буферов и swizzle в стиле CuTe (09-21)
Дата: 2026-09-21 Источники: TileFoundry #170/#174 и ещё два (полный список см. в приложении)
- #170 (слияние в 14:14, 12 файлов +1214/-172): учитывающее циклы решение задачи времени жизни буферов (исправляет #169) — на основе структурированных SSA-интервалов и событий реального/синтетического использования выводятся ограничения физического переиспользования, что заменяет «суммирование логических времён жизни»;
peak_bytesдля gmem/smem представляет собой верхнюю отметку размещения, для rmem — максимальное проекционное значение; CP-SAT сохраняет все логические блоки и фиксирует пиковые значения по уровням для 52 аналитических тест-кейсов корпуса. - #174 (слияние в 17:44): внедрение XOR swizzle в стиле CuTe —
Swizzle(bits, base, shift)портирован как замороженный функтор,ComposedLayout.innerрасширен и дополнен специализациями алгебры layout (apply/cosize/coalesce/обратный/композиция); генерация кода CUDA выдаётcute::make_composed_layoutбез изменений; правила проекции на стороне устройства и документация спецификации (shard.md, runtime.md) синхронно обновлены. - Два новых открытых: #175 (поддержка анализа начала цикла в зависимости от единиц, 20:20), #176 (нормализация метаданных памяти и трафика, следующего дня 01:58).
2. Мультибэкенд-адаптация (Ascend / Hygon / MetaX / Sunrise / Moore Threads)
2.1 Ascend: три отката аннулируют слияние на десять тысяч строк и два документа, ежедневные тесты снова полностью зелёные 2448/2448 (09-21 — 09-22)
Дата: 2026-09-21 – 2026-09-22 Источники: Ascend #1818/#1819/#1820/откаченный #1753/ежедневный тест #1823/#1817
День массового слияния предыдущего окна завершился одним откатом, три отката были слиты последовательно:
- #1818 в 10:02 полностью отозвал #1753 (слитый 09-20 «FP32-оптимизация построчной редукции и исправление синхронизации Ascend», тогда 72 файла +10117/-3618). Коммит отката также 72 файла, +3618/-10117, точная симметрия; включает удаление реализаций вроде
reduce_2d_v2.h(953 строки) и документации row_reduce. - #1819 в 14:32, #1820 в 14:33 соответственно отозвали два улучшения документации — transpose и select (3 файла +10/-407 и 3 файла +74/-452, включая добавленные ими тесты и документацию API).
- Ни один из трёх PR отката не сопровождался пояснением, причина на стороне репозитория не раскрыта.
Проверка восстановления: ежедневный тест #1823 от 09-22 06:35 сообщил о 2448/2448 полностью пройденных (запуск workflow 35658878616); предыдущий отчёт от 09-21 06:01 (#1817) был отказом на уровне workflow. Для сравнения: проходной лист 09-20 перед волной слияний — 1936/1936 — после трёх откатов масштаб регрессии не снизился, а вырос на 512 пунктов относительно него. Два сопровождающих тикета (#1815 сериализация PTO V2C, #1816 автоматическое отнесение C/V для чисто Vector операторов) в окне обновлений не имеют, остаются открытыми.
Трактовка: откат — это иной способ закрытия цепочки «слияние, проверка, исправление» — крупное слияние привносит риск вниз по потоку, а затем за один рабочий день выполняется открытая компенсация. Точки наблюдения: когда отозванный #1753 вернётся в исправленной форме, и какова будет судьба #1815/#1816 после отката.
2.2 Ascend: слит пример mhc_bwd, открыты два новых PR с исправлениями (09-21)
Дата: 2026-09-21 Источники: #1633/#1821/#1822
Открытый месяц назад (08-19) #1633 был слит в 17:16 (5 файлов +607): добавлен пример оператора mhc_bwd (неявный сопряжённый градиент Sinkhorn) на стороне NPU, включая три оптимизации расписания и усиление верификации — matvec в цикле CG выносит инвариантную к тайлу часть (A, умноженная на +x в расщеплённом векторе) из последовательного цикла (2 отправки вместо 2, умноженных на tilesize); при x0=0 начальный matvec пропускается и в качестве начального значения сразу берётся b; измеренный на перемежающихся A/B seqlen 256/512/1024 в пределах шума, 2048/4096 ускорение 3.1% (2.02 снижается до 1.95, 4.03 снижается до 3.90 мс); дополнительно добавлено утверждение fp32, проверка эталонного CG включена в критерий PASSED (измерено от 5.96e-08 до 1.79e-07), пакетные случаи перенесены в pytest (следуя способу организации mhc_pre). Открыты два новых исправления: #1821 (отклонять несмежные плоские UB BufferRegion), #1822 (сделать in-place T.tile.silu безопасным на AscendC), оба не слиты.
2.3 Hygon: новая ветка делит FP32 MMAC K, фрагмент ds_read переведён на упакованное копирование (09-21)
Дата: 2026-09-21 Источники: коммит ветки 11007fd5/поддержка примера #11
19:50 в ветку feat/hcu-ds-read-fp32-mmac-k отправлен один коммит (3 файла, +50/-32): MmacMicroKDim перемещён в новый файл mmac_micro_k.hpp, чтобы ds_read_format и gemm совместно использовали архитектурно-зависимый FP32 K (для gfx92a/gfx946 — x4, для gfx938 — x8); фрагментное копирование переведено на упакованные 4B/8B слова в обход проблемы легализации извлечения i8 в clang. Для этой ветки пока нет соответствующего PR; PR #11 с поддержкой примеров всё ещё открыт (последнее обновление 09-20).
2.4 MetaX: main синхронизирован с последним upstream-заголовком, ветка dev не тронута (09-21)
Дата: 2026-09-21 Источник: коммит metax main eab74a4a
09:59 main переведён с собственной точки релиза v0.1.14 (e10a13e3, 09-01) быстрым перемотом на последний upstream eab74a4a — то есть на вошедшую в предыдущем окне в основной репозиторий цепочку слияния k-пула GLM-5.3, синхронизировав почти три недели upstream-прироста; ветка линии разработки dev с 09-17 не менялась, теги не обновлялись. Это рутинная синхронизация вслед за upstream, новых действий на стороне MUSA не наблюдается.
2.5 Sunrise: выпущен 0.1.14+sunrise.1.1.0 с исправлениями CI и sparse mask (09-21)
Дата: 2026-09-21 Источник: релиз 0.1.14+sunrise.1.1.0/PR релиза #6
16:00 выпущен новый тег версии 0.1.14+sunrise.1.1.0 (предыдущая версия 0.1.13+sunrise.1.0.0 была 09-08). Путь релиза: ветка-кандидат (отправлена в 11:06) → PR релиза #6 (слит в 15:33) → простановка тега. Основное содержание — инженерия: исправлено выполнение sparse mask, CI останавливается после сбоя восстановления устройства; система CI значительно расширена (добавлены ci/run.sh, ci/install.sh и скрипт преобразования junit в JSONL, ci/lib.sh сильно переработан); добавлены бенчмарк скорости компиляции и документация инструментов compile-only и lower-trace; обновлены переключатель z3 prover и целочисленный анализ в tvm_sunrise.
2.6 Moore Threads: подключение внешнего бэкенда MUSA выявило три пробела в API (09-21)
Дата: 2026-09-21 Источник: TileOPs #2164/#2165/#2166
В трекере TileOPs появился новый режим подключения: MUSA подключается как «внешний бэкенд», а не как встроенный (проверено на MTT S5000). Три issue указывают на три механизма, из-за которых официальные операторы терпят неудачу ещё до достижения зарегистрированного builder MUSA — проверка входных данных CUDA-only в семействах Dropout и RoPE напрямую отвергает тензоры MUSA; внешний вызов с нулевым входом отклоняется; перед внешней диспетчеризацией по-прежнему выполняется запрос устройства CUDA. Контрольная группа работает нормально (LogSumExp достигает builder и завершает выполнение). Ещё два пункта: #2165 — тест бинарного autotune для внешнего бэкенда MUSA всё ещё идёт по встроенному пути сборки CUDA; #2166 — Op.iter_kernels пропускает ядра внешнего бэкенда, реализованные отдельно. Все три вопроса указывают на границу между «регистрируемым внешним бэкендом» и существующими предположениями CUDA.
2.7 MLIR Ascend: открыты два новых PR — упаковка и сортировка, а также явное управление памятью (09-21)
Дата: 2026-09-21 Источник: #189/#190
Два новых PR направлены на инженерию IR на этапе префилл-фазы: #189 (упаковка и сортировка плюс связанный инструментарий для платформы A2, открыт 09-20, обновлён в окне) и #190 (явное управление памятью и конвейером, открыт 09-21 в 16:24) — оба открыты и не слиты.
3. Экосистема и стороны внедрения
3.1 Стороны внедрения: в окне нет отправок в TileKernels и FlashQLA (04-23 / 09-18)
Дата: 2026-09-22 (проверка) Источники: TileKernels/FlashQLA
В окне мониторинга у обоих проектов-потребителей не было пушей: последний пуш TileKernels по-прежнему датируется 04-23; последний пуш FlashQLA — 09-18. На стороне потребителей продолжается тишина.
3.2 Проекты сообщества: обучающий репозиторий — примеры фронтенда PTO и синхронизация локализации документации (09-21)
Дата: 2026-09-21 Источники: коммиты tilelang-tutorials/tilelang-docs-l10n
- Обучающий репозиторий easy-tilelang/tilelang-tutorials добавил группу примеров init_core (22:42, 4 файла, +114): на примере трёх форм фронтенда PTO (чистый Cube, чистый Vector, смешанный) демонстрируется написание кода на TileLang, автор — из Huawei; этот репозиторий — новое обучающее направление, созданное сообществом.
- Репозиторий локализации документации (рабочий процесс Crowdin) завершил раунд синхронизации перевода README на все языки (10:02).
4. Сообщество, руководства и мероприятия
4.1 Сайт документации: по одному автоматическому развёртыванию в основном репозитории и TileOPs (09-21)
Дата: 2026-09-21 Источники: сайт документации основного репозитория/сайт документации TileOPs
Сайт документации основного репозитория в 13:31 получил один автоматический коммит «Update docs»; сайт документации TileOPs в 07:59 — одно развёртывание gh-pages. Оба — автоматические действия конвейера, существенных изменений в содержимом сайтов не наблюдается.
4.2 Медиа и академическая сторона: нулевой прирост в окне (09-22)
Дата: 2026-09-22 Источники: Google News RSS (несколько запросов на китайском и английском, через прокси)/Hacker News/arXiv
Несколько групп запросов Google News на китайском и английском (TileLang за последние 2 дня и за последние 7 дней, комбинации GPU kernel) дали нулевые совпадения в окне мониторинга; по релевантным запросам Hacker News нашлась лишь одна нерелевантная запись со случайным совпадением названия; в тематическом поиске arXiv последняя работа по-прежнему — статья о модели производительности TileSight от 07-24, новых препринтов в окне нет.
4.3 Ритм версий: новый релиз Sunrise, основной репозиторий v0.1.14 уже 20 дней (09-21)
Дата: 2026-09-21 Источники: tilelang v0.1.14/релиз Sunrise
Последний релиз основного репозитория по-прежнему v0.1.14 от 09-02 (уже 20 дней); в этом выпуске добавлен Sunrise 0.1.14+sunrise.1.1.0 (09-21). Остальные без изменений: Ascend v0.1.2.000 (09-09), MLIR Ascend v0.1.2.020.sglang.poc (09-09), Moore Threads v0.1.14+musa.1 (09-11), MetaX v0.1.14 (09-17).
5. Наблюдения за тенденциями
5.1 Глубина исправлений: шесть коммитов за день, от Fuzzer до рантайма
Шесть коммитов, влитых сегодня в основной репозиторий, образуют три уровня глубины: фронтенд компилятора и границы (два ICE от Fuzzer), слой обёртки рантайма (NVRTC), генерация кода и планирование (AllReduce). Два коммита по Fuzzer, открытые одним и тем же reporter’ом в один день 08-17 и теперь точечно закрытые, показывают, что очередь fuzzer обрабатывается системно, а не попутно; коммит по AllReduce перехватил ошибку класса «работает, но тихо считает неверно», перенеся проверку в статические утверждения и откат планировщика — это та же идея, что и «инженерия доверия» на стороне TileOPs с требованием «формула должна быть явно называемой и проверяемой», параллельно проявившаяся в разных репозиториях.
5.2 Откат и восстановление Ascend: стоимость верификации крупного вливания выплачена открыто
Вчерашний «красный» за 24 часа сменился «зелёным»: три коммита-отката вернули вливание на десять тысяч строк и два коммита документации, а сегодняшний ежедневный тест закрылся полным прохождением 2448 пунктов. Откат — не нарратив о неудаче: вливание (09-20 днём), провал верификации (09-21 утром), откат (09-21 с утра до дня), восстановление до полного зелёного (09-22 утром) — полная цепочка заняла менее двух дней. На что смотреть: в какой исправленной форме вернётся отозванный #1753; заслуживает сопоставления на следующей неделе состав прироста регрессии с 1936 до 2448 (тесты каких вливаний вошли в систему вместе с ними).
5.3 TileOPs: инженерия доверия вступает в фазу «защиты от регресса»
В предыдущие дни решалась задача «исправить ошибочное на правильное» (семантика, физика, прослеживаемость, формулы), в текущем окне акцент сместился на «не допустить проникновения ошибок и не позволить правильному откатиться»: #2167 демонтирует механизм обхода формул из контрольного списка и оснащает случаи неправильного использования исключениями; #2161 продвигает проблему «написано, но никогда не исполняется» с уровня формул на уровень правил (234 случая молчаливого пропуска); #2157 переводит три модели стоимости селектора GEMM с интуиции на показания реальных замеров. Общее в них — оснащение системы управления способностью к регрессионному тестированию, а не очередная разовая чистка.
5.4 Пробелы и точки риска
Четыре пункта: во-первых, четыре незавершённых элемента стека k-пула (#3250, #3251, #3253, #3255) второй день подряд остаются без завершающих действий — содержимое уже в основной ветке, но открытые заявки продолжают висеть; во-вторых, застой выпуска релизов основного репозитория достиг 20 дней — очередь ревью очищается с почасовым ритмом, а окно релиза не открыто; в-третьих, откаченные строки FP32-редукции Ascend и два документа по-прежнему не имеют запланированных сроков переработки; в-четвёртых, три вопроса о внешнем бэкенде TileOPs (MUSA) остаются без ответа — если «регистрационное подключение» является направлением следующего этапа, эти три пробела станут предварительным условием для кроссчипового продвижения.
Приложение: материалы и пояснения по проверке
Таблица проверки источников
| Источник | Результат проверки |
|---|---|
| Организация tile-ai (28 репозиториев) | В окне было 10 репозиториев с пушами: tilelang, TileOPs, TileOPs-nightly, tilelang-ascend, tilelang-hygon, tilelang-sunrise, TileFoundry, tilelang-metax, tilelang.github.io, TileOPs.github.io (последние два — развёртывание сайтов) |
| Основной репозиторий tilelang, ветка по умолчанию | 6 слияний (#3207, #3206, #3260, #3266, #3262, #3230); новые #3265, #3267, #3268 и issue #3261, #3263; #3264 закрыт без слияния; #3257, #3245 ожидают ревью; четыре элемента стека k-пула без обновлений |
| TileOPs | 2 слияния (#2158, #2157); новые #2167, #2168, #2163, #2162 (последние два — черновики) и issue #2161; #2160 обновлён; #2085, #2088 закрыты; открыты связанные с MUSA #2164–#2166 |
| TileOPs-nightly | 1 снимок (201e809c, соответствует точке слияния #2157): 1046 бенчмарков, ноль сбоев; файл результатов корректности на этот раз не опубликован |
| TileFoundry | 2 слияния (#170, #174); 2 новых (#175, #176) |
| Ascend | 3 отката (#1818, #1819, #1820) и 1 слияние (#1633); новые #1821, #1822; ежедневные тесты восстановлены 2448/2448 |
| Hygon | 1 пуш в новой ветке (FP32 MMAC K shared и упаковка ds_read) |
| MetaX | Синхронизация с upstream main (e10a13e3 → eab74a4a); dev без изменений |
| Sunrise | Релиз 0.1.14+sunrise.1.1.0 (PR релиза #6) |
| MLIR Ascend | 2 новых (#189, #190) |
| Потребители | TileKernels, FlashQLA — без пушей в окне |
| Репозитории сообщества | tilelang-tutorials: добавлен пример init_core; tilelang-docs-l10n: синхронизация переводов |
| Google News RSS (несколько групп на китайском и английском, через прокси) | Ноль совпадений в окне |
| Hacker News | Совпадений по теме нет (одно случайное совпадение по слову) |
| arXiv | Последняя статья от 07-24, новых препринтов в окне нет |
| Сайт документации | По одному автоматическому развёртыванию для основного репозитория и TileOPs, существенных изменений содержимого не выявлено |
Полный список источников
- [1] tilelang #3207 Исправление выделения вывода динамической формы (слито) — https://github.com/tile-ai/tilelang/pull/3207
- [2] tilelang #3206 assert в теле ядра понижен до проверки на устройстве (слито) — https://github.com/tile-ai/tilelang/pull/3206
- [3] tilelang #3260 Исправление warp-редукции NVRTC (слито) — https://github.com/tile-ai/tilelang/pull/3260
- [4] tilelang #3266 Проверка шага AllReduce (слито) — https://github.com/tile-ai/tilelang/pull/3266
- [5] tilelang #3262 Удаление предупреждения о перепривязке неизменяемых переменных (слито) — https://github.com/tile-ai/tilelang/pull/3262
- [6] tilelang #3230 Поддержка Python-итераторов и генераторов во фронтенде (слито) — https://github.com/tile-ai/tilelang/pull/3230
- [7] tilelang #3019 Исходный тикет Fuzzer: assert в теле ядра — https://github.com/tile-ai/tilelang/issues/3019
- [8] tilelang #3017 Исходный тикет Fuzzer: вывод динамической формы — https://github.com/tile-ai/tilelang/issues/3017
- [9] tilelang #3259 Исходный тикет сбоя компиляции редукции NVRTC — https://github.com/tile-ai/tilelang/issues/3259
- [10] tilelang #2451 Исходный тикет о неитерируемости ForFrame — https://github.com/tile-ai/tilelang/issues/2451
- [11] tilelang #2308 Исходный тикет об индексации списка выражений T.unroll — https://github.com/tile-ai/tilelang/issues/2308
- [12] tilelang #3263 NVRTC не передаёт скалярные параметры хоста (issue) — https://github.com/tile-ai/tilelang/issues/3263
- [13] tilelang #3265 Опускание целочисленных операций инвариантов запуска — https://github.com/tile-ai/tilelang/pull/3265
- [14] tilelang #3267 LowerMagicDiv — магическое деление — https://github.com/tile-ai/tilelang/pull/3267
- [15] tilelang #3261 Тикет требований LowerMagicDiv — https://github.com/tile-ai/tilelang/issues/3261
- [16] tilelang #3268 CMake сохраняет путь SDK из переменной окружения — https://github.com/tile-ai/tilelang/pull/3268
- [17] tilelang #3257 Патч блочного масштабирования SM120 (ожидает ревью) — https://github.com/tile-ai/tilelang/pull/3257
- [18] tilelang #3245 Перехват комбинаций dtype в GEMM — https://github.com/tile-ai/tilelang/pull/3245
- [19] TileOPs #2158 Формула манифеста roofline слита — https://github.com/tile-ai/TileOPs/pull/2158
- [20] TileOPs #2157 Переобучение комбинированного селектора GEMM — https://github.com/tile-ai/TileOPs/pull/2157
- [21] TileOPs #2167 Исправление обхода roofline — https://github.com/tile-ai/TileOPs/pull/2167
- [22] TileOPs #2161 helper манифеста не вычислен (issue) — https://github.com/tile-ai/TileOPs/issues/2161
- [23] TileOPs #2168 Порядок подготовительных весов W4A16 — https://github.com/tile-ai/TileOPs/pull/2168
- [24] TileOPs #2163 Черновик предзаполнения DeltaNet — <https
://github.com/tile-ai/TileOPs/pull/2163>
- [25] TileOPs #2162 исследование конвейера переменной длины GQA — https://github.com/tile-ai/TileOPs/pull/2162
- [26] TileOPs #2160 миграция GQA переменной длины (на рассмотрении) — https://github.com/tile-ai/TileOPs/pull/2160
- [27] TileOPs #2085, #2088 закрытые пункты — https://github.com/tile-ai/TileOPs/pull/2085
- [28] Снимок TileOPs-nightly 201e809c — https://github.com/tile-ai/TileOPs-nightly/commit/201e809c
- [29] Метаданные окружения снимка TileOPs-nightly — https://github.com/tile-ai/TileOPs-nightly/blob/snapshots/meta.json
- [30] TileFoundry #170 время жизни буфера с учётом циклов (слито) — https://github.com/tile-ai/TileFoundry/pull/170
- [31] TileFoundry #174 swizzle в стиле CuTe (слито) — https://github.com/tile-ai/TileFoundry/pull/174
- [32] TileFoundry #175 начало цикла для зависимых единиц — https://github.com/tile-ai/TileFoundry/pull/175
- [33] TileFoundry #176 нормализация метаданных памяти — https://github.com/tile-ai/TileFoundry/pull/176
- [34] Ascend #1818 откат построчной редукции FP32 — https://github.com/tile-ai/tilelang-ascend/pull/1818
- [35] Ascend #1819 откат документации transpose — https://github.com/tile-ai/tilelang-ascend/pull/1819
- [36] Ascend #1820 откат документации select — https://github.com/tile-ai/tilelang-ascend/pull/1820
- [37] Ascend #1753 откатённое слияние — https://github.com/tile-ai/tilelang-ascend/pull/1753
- [38] Ежедневный тест Ascend #1823 (2448 полностью пройдено) — https://github.com/tile-ai/tilelang-ascend/issues/1823
- [39] Ежедневный тест Ascend #1817 (отдельные сбои) — https://github.com/tile-ai/tilelang-ascend/issues/1817
- [40] Ежедневный тест Ascend #1814 (базовая линия 1936 пройдено) — https://github.com/tile-ai/tilelang-ascend/issues/1814
- [41] Ascend #1633 пример mhc_bwd (слито) — https://github.com/tile-ai/tilelang-ascend/pull/1633
- [42] Ascend #1821 отклонение несмежных областей UB — https://github.com/tile-ai/tilelang-ascend/pull/1821
- [43] Ascend #1822 безопасность in-place silu — https://github.com/tile-ai/tilelang-ascend/pull/1822
- [44] Ascend #1815, #1816 два последующих пункта — https://github.com/tile-ai/tilelang-ascend/pull/1815
- [45] Коммит ветки Hygon 11007fd5 — https://github.com/tile-ai/tilelang-hygon/commit/11007fd5
- [46] Hygon PR #11 поддержка примеров — https://github.com/tile-ai/tilelang-hygon/pull/11
- [47] Коммит main MetaX eab74a4a — https://github.com/tile-ai/tilelang-metax/commit/eab74a4a
-
[48] Релиз Sunrise 0.1.14+sunrise.1.1.0 — <https://githu
- [49] Sunrise выпустил PR #6 — https://github.com/tile-ai/tilelang-sunrise/pull/6
- [50] MUSA внешний бэкенд: три вопроса: #2164 — https://github.com/tile-ai/TileOPs/issues/2164
- [51] MUSA внешний бэкенд: три вопроса: #2165 — https://github.com/tile-ai/TileOPs/issues/2165
- [52] MUSA внешний бэкенд: три вопроса: #2166 — https://github.com/tile-ai/TileOPs/issues/2166
- [53] MLIR Ascend #189 упаковка, сортировка и инструментальная цепочка — https://github.com/tile-ai/tilelang-mlir-ascend/pull/189
- [54] MLIR Ascend #190 явное управление памятью и конвейером — https://github.com/tile-ai/tilelang-mlir-ascend/pull/190
- [55] TileKernels (пользователь, без пушей) — https://github.com/deepseek-ai/TileKernels
- [56] FlashQLA (пользователь, без пушей) — https://github.com/QwenLM/FlashQLA
- [57] tilelang-tutorials (репозиторий обучающих материалов сообщества) — https://github.com/easy-tilelang/tilelang-tutorials
- [58] tilelang-docs-l10n (локализация документации) — https://github.com/localizethedocs/tilelang-docs-l10n
- [59] Последний релиз основного репозитория v0.1.14 — https://github.com/tile-ai/tilelang/releases/tag/v0.1.14
- [60] tilelang.github.io (сайт документации) — https://github.com/tile-ai/tilelang.github.io
- [61] TileOPs.github.io (сайт документации) — https://github.com/tile-ai/TileOPs.github.io