Окно мониторинга: последние 24 часа (2026-09-29 07:00 ~ 2026-09-30 07:00, пекинское время; предыдущий отчёт был 09-29, окно стыкуется без разрывов и без перекрытий). Источники: GitHub (проверка пушей в 29 репозиториях организации tile-ai, в окне было 7 репозиториев с пушами: tilelang, TileOPs, TileOPs-nightly, tilelang-ascend, tilelang-hygon, TileFoundry, TileOPs.github.io; в основном репозитории 2 слияния и 7 новых открытых, в TileOPs 17 слияний, в репозитории Ascend 2 исправления, в Hygon и TileFoundry по 1 слиянию, 1 ночной снимок с нулевыми сбоями), Google News RSS с несколькими группами запросов на китайском и английском (через прокси, ноль совпадений), Hacker News, arXiv, проверка репозиториев сообщества


Индекс выпуска

  • Главное за сегодня: публичный выпуск бэкенда Ascend 950 — открыт PR нативного бэкенда с 134 коммитами, номер версии синхронно повышен до 0.1.15 (09-30)
    1. Основной прогресс проекта
      • 1.1 Основной репозиторий: слияние упрощённого устранителя неиспользуемых привязок — чтение после записи, побочные эффекты и ссылки на метаданные имеют регрессионную страховку (09-29)
      • 1.2 Основной репозиторий: восстановление попаданий ccache при сборке Windows wheel — параметры clang-cl переписаны раздельно (09-29)
      • 1.3 Очередь основного репозитория: семь новых открытых и линия исправлений атомарных операций, открытых PR — 116 (09-29/09-30)
      • 1.4 TileOPs: слияние четырёх ядер INT8-квантизации и деквантизации — побитовое выравнивание с эталоном torch (09-29/09-30)
      • 1.5 TileOPs: слияние ядра групповой INT4-квантизации, два блочных квантования в очереди (09-30)
      • 1.6 TileOPs: слияние слоя операторов сэмплирования — шесть операторов, стоявших в очереди в прошлом выпуске, официально зачислены (09-29)
      • 1.7 TileOPs: четыре изменения по вниманию — опускание выражения FP8, выгрузка varlen в общую память, исправление головной размерности 512 для SM89 (09-29/09-30)
      • 1.8 TileOPs: два изменения по интерфейсу ядер и управлению общей памятью (09-29)
      • 1.9 TileOPs: три изменения по CI и инженерным стандартам — дымовой тест с восемью параллельными, абсолютные импорты, однократная проверка манифеста (09-29/09-30)
      • 1.10 TileOPs: два изменения по ускорению поэлементных операций — откат деления раз на поток, загрузка f32 двумя по 16 байт (09-29/09-30)
      • 1.11 Ночной снимок: 1030 проверок корректности, 1355 бенчмарков, нулевые сбои и ошибки (09-30 раннее утро)
    1. Адаптация под множественные бэкенды (Ascend / MetaX / Hygon / Moore Threads)
      • 2.1 Ascend: ветка выпуска 950 снова исправлена внутри окна — восстановлены векторизация broadcast и скалярное сокращение (09-30)
      • 2.2 Ascend: два исправления в репозитории ascend — однострочный патч TVM раскрывает истинную причину отката (09-29)
      • 2.3 Hygon: слияние асинхронного копирования и улучшения lowering swizzle кэша (09-29)
      • 2.4 MetaX / Moore Threads / MLIR Ascend: официальные репозитории молчат (проверка 09-30)
    1. Экосистема и стороны внедрения
      • 3.1 TileFoundry: слияние четвёртого этапа AtomSched — понижение HIR до TIR и CLI планирования (09-29)
      • 3.2 Сайт документации: операторы квантизации, сэмплирования и MLP с разделяемыми экспертами вошли в справочник API (09-30)
      • 3.3 Проверка сторон внедрения: в TileKernels и FlashQLA нет пушей внутри окна (09-30)
      • 3.4 Ритм версий: открыт PR повышения до 0.1.15; страницы релизов TileRT и TileFoundry не обновляются (09-30)
    1. Сообщество, руководства и мероприятия
      • 4.1 Проверка репозиториев сообщества: внутри окна новых коммитов нет (09-30)
      • 4.2 Медиа и академическая сторона: в Google News ноль совпадений, на arXiv новых препринтов нет (09-30)
    1. Наблюдения за тенденциями
      • 5.1 От контракта к ядрам: семейство квантизации реализовано за 48 часов
      • 5.2 Ascend 950: нарратив множественных бэкендов движется от «репозитория адаптации» к «нативности в основном репозитории»
      • 5.3 Инженерная несущая способность: рефакторинг CI при росте объёма тестов на +21%
      • 5.4 Пробелы и точки риска
  • Приложение: материалы и пояснения к проверке

Главное за сегодня: публичный выпуск бэкенда Ascend 950 — открыт PR нативного бэкенда с 134 коммитами, номер версии синхронно повышен до 0.1.15 (09-30)

Дата: 2026-09-30 Источник: PR бэкенда Ascend 950 (#3308)/ PR повышения версии (#3309)/ ветка выпуска ascend-950-0930

30 сентября ранним утром в основном репозитории TileLang были открыты два знаковых PR: нативный бэкенд для Ascend 950 с пометкой «Public Release 9/30» и повышение номера версии до 0.1.15. Первый в объёме 134 коммитов, 379 файлов, +79956/-733 переводит линейку Ascend из отдельного репозитория адаптации в полноценный бэкенд основного репозитория:

  • Сквозной путь: добавлен языковой диалект Ascend, охватывающий запуск ядер, выделение памяти, перемещение данных и вычислительные операции, включая аппаратно-специализированный lower, автоматическое планирование и синхронизацию, генерацию кода устройства, компиляцию Bisheng и загрузку среды выполнения NPU; пользователь через target="ascend" может напрямую разрабатывать ядра для Ascend 950.
  • Модель программирования: комбинирование Cube (AIC) T.gemm и вычислений Vector (AIV) в одном ядре; области T.SimdVF / T.SimtVF для смешанного программирования SIMD и SIMT; явное выделение UB / L1 / L0; блочное перемещение и межъядерная передача через T.copy / T.dual_copy; путь низкой точности GEMM с блочным масштабированием MXFP8 / MXFP4.
  • Компилятор и планирование: автоматический вывод фрактальных раскладок Ascend и нормализация хранилища; AutoSchedule выполняет планирование Cube/Vector с учётом зависимостей и задержек, конвейеризацию и многобуферизацию; вставка синхронизации внутри ядра и между ядрами с учётом планирования, с устранением избыточной синхронизации, автоматическим выделением и переиспользованием флагов.
  • Интеграция сборки: флаг сборки USE_ASCEND, цепочка компиляции Bisheng, загрузка среды выполнения и запуск ядер входят в основной репозиторий; подключение к мультибэкендной архитектуре через существующий интерфейс бэкендов с переиспользованием общих компиляторных средств.
  • Критерии оценки (в PR): сравнение с Torch NPU, оценка по 4 формам для BF16 GEMM, преобразования FP8 и обратного прохода GQA; для GEMM и GQA сообщается TFLOP/s, для преобразования FP8 — эффективные GB/s.
  • Масштаб и авторство: ветка синхронизирована с main, опережает на 134 коммита, в окне всё ещё добавляются исправления (последний коммит восстанавливает векторизацию широковещательной рассылки и скалярную редукцию, раннее утро 09-30); в Co-author указано 10 человек, включая 2 разработчиков с подписью deepseek.com.
  • Связь: открытый в тот же день PR повышения версии до 0.1.15 меняет только одну строку VERSION (с 0.1.14 до 0.1.15) и фиксируется рядом с бэкендом 950; будет ли это единым релизом, пока неизвестно.

Оценка: в случае слияния Ascend 950 впервые будет реализован в форме нативного бэкенда основного репозитория (ранее поддержка Ascend в основном обеспечивалась отдельным репозиторием адаптации), а «мультибэкендность» повысится с адаптации через зеркальный репозиторий до возможности магистральной ветки; для пользователей разработка операторов для Ascend 950 и ядер в стиле DeepGEMM станет возможной напрямую на TileLang. Риск заключается в стоимости рецензирования и поддержания стабильности после слияния из-за объёма (379 файлов, около 80 тысяч добавленных строк), к тому же производительность на стороне NPU на данный момент имеет публичные критерии только в виде графиков внутри PR.


1. Ключевые достижения проекта

1.1 Основной репозиторий: первоначальное удаление устранения неиспользуемых привязок — регрессионное покрытие для чтения-после-записи, побочных эффектов и ссылок в метаданных (09-29)

Дата: 2026-09-29 Источник: Устранение неиспользуемых привязок (Simplify) (#3293)

  • Новая запись из прошлого выпуска слита в этом окне: для tl.Simplify добавляется UnusedBindRemover, который многократно удаляет неиспользуемые BindNode, когда их значения могут быть отброшены без потери связанных побочных эффектов и чтений volatile-буферов.
  • Граничные правила: обход рефлексивных полей и контейнеров для сохранения привязок, на которые ссылаются метаданные; привязки, используемые в определениях буферов и предикатах загрузки, сохраняются всегда; регрессионные тесты покрывают неиспользуемые макро-привязки, чтение-после-записи, побочные эффекты, volatile-чтения, ссылки в метаданных и узлы разделяемых выражений.
  • Значение: расширение возможностей очистки tl.Simplify идёт в том же направлении, что и исправление границ модульных остатков на прошлой неделе (#3294) — «что можно удалять и что обязательно сохранять» на уровне преобразований постепенно превращается в проверяемый явный список.

1.2 Основной репозиторий: сборка Windows wheel восстановила попадания в ccache — параметры clang-cl переписаны раздельно (09-29)

Дата: 2026-09-29 Источник: Исправление сборки Windows (#3305)

  • Проблема: после восстановления ccache в сборке Windows wheel TVM по-прежнему перекомпилировался многократно — около 32 минут за раз, 554 промаха, доля попаданий всего 20.63%, однотипно на трёх ночных сборках подряд. Причина в том, что CMake выдаёт для clang-cl склеенный параметр -imsvc<path>, а ccache 4.9.1 учитывает его в хэше предобработки; при изменении каталога зависимостей PEP 517 менялся ключ кэша; существующая обёртка нормализует текст предобработки, но не может убрать различия в командной строке.
  • Исправление: -imsvc <path> переписан в раздельную форму, ключ кэша восстановил стабильность; в тот же день создано и слито, автоматически подготовлена сводка с комментариями рецензирования.

1.3 Очередь основного репозитория: семь новых PR и линия исправлений атомарных операций, всего 116 открытых PR (09-29/09-30)

Дата: 2026-09-29, 2026-09-30 Источники: список PR основного репозитория / исправление атомарных операций (#3307) / пример DeepSelect (#3304) / упакованное векторное сравнение (#3303)

  • За окно открыто 7 новых: #3303 — упакованное векторное сравнение FP16/BF16 (исправляет дефект #3302, встроенные маски нормализованы к 0/1, корректное «не равно» для NaN, для CUDA ниже 12 и низких вычислительных возможностей сохранён скалярный запасной путь); #3304 — коммит примера TileLang для DeepSeek DeepSelect Top-K (без inline PTX, зависит от рассматриваемых #3303 и #3296, на RTX 5090 приведено 129 групп измерений в сравнении с torch.topk); #3306, #3307 — линия исправлений атомарных операций (атомарные max/min для int64 и падения AtomicStore для int64/bf16/fp16, прослеживается до нормализации типов в #1716; #3306 закрыт без слияния, #3307 продолжен на рассмотрении); #3308, #3309 — см. сегодняшние ключевые пункты.
  • Обновления существующих: SM120 register A GEMM (#3286), вывод потоков z3 (#3291), перенос строк при импорте C-исходников (#3289), расширение popcount (#3300) и др. — в течение окна были обновления.
  • Температура очереди: открытых PR — 116 (в прошлый период 112); за это окно слито 2 (#3293, #3305), картина «открывается много, сливается мало» сохраняется.

1.4 TileOPs: слиты четыре ядра INT8-квантизации и деквантизации — побитовое совпадение с эталоном torch (09-29/09-30)

Дата: 2026-09-29, 2026-09-30 Источники: по-тензорная деквантизация (#2304) / по-канальная деквантизация (#2306) / по-тензорная квантизация (#2307) / по-канальная квантизация (#2308)

  • Прошлый принцип «сначала контракт, потом реализация» вступил в фазу исполнения ядер: всего четыре операторных слоя семейства INT8 для квантизации и деквантизации реализованы на уровне ядер, статус в перечне переведён в implemented, выход побитово совпадает с эталонной реализацией torch (включая граничный случай с обнулением scale из-за недополнения).
  • По-тензорная деквантизация (#2304): q читается как плоская последовательность, каждый поток на каждом шаге преобразует один 16-байтовый выходной вектор, на каждый блок из 64 потоков — четыре шага, причём сначала выдаются все загрузки; кодовые точки преобразуются через целочисленное сложение со смещением экспоненты и FADD (в обход I2F); выход внутри блока сначала попадает в разделяемую память, затем выполняется пакетная запись (на SM90 используется cp.async.bulk); добавлен вспомогательный механизм загрузки с L1 evict-last (streaming_load.h).
  • По-канальная деквантизация (#2306): вектор при пересечении строк выбирает между масштабами двух строк, выполняется в одной программе при произвольном K; по-канальная квантизация (#2308): один CTA монопольно владеет строкой, строка постоянно живёт в регистрах, масштаб вычисляется через обратное значение и два FMA с корректным округлением, начало и конец строки совместно используют вектор с соседней строкой с применением маски.
  • По-тензорная квантизация (#2307): выполняется за один кооперативный запуск — первая фаза читает и обменивает фрагменты amax (сеточный барьер), вторая фаза квантует фрагменты; ядро строится при каждом вызове с явным объявлением границ компиляции.
  • Прогресс: из 9 spec-only позиций семейства квантизации 7 уже перешли в реализацию ядер (шесть INT8 + одна INT4), для поблочного FP8 и SmoothQuant PR ядер пока не наблюдается.

1.5 TileOPs: слито ядро по-групповой квантизации INT4, две блочные квантизации в очереди (09-30)

Дата: 2026-09-30 Источники: по-групповая квантизация INT4 (#2317) / поблочная квантизация (#2316, на рассмотрении) / поблочная деквантизация (#2318, на рассмотрении)

  • INT4 групповое квантование заняло два ядра: packed_weight, weight_scale, weight_zero побитово совпадают с эталоном torch и используют формат упаковки GemmW4A16FwdOp.repack — выравнивание формата цепочки весов W4A16 является самым практичным пунктом совместимости в этот раз.
  • Ключевые моменты ядра: каждая lane хранит один блок из 32 элементов, в пределах шага K из 128 элементов не требуется межlane-пересылка данных; четырёхна четырёхсловный транспонированный вывод даёт 16 байт непрерывного хранения; размер группы поддерживает степени двойки от 32 до 1024; также предусмотрена строчная версия ядра.
  • На рассмотрении два коммита: поблочное квантование INT8 (#2316) и поблочная деквантование (#2318) — оба используют шаблон планирования из #2304, закрывая последний из трёх уровней «тензор/канал/блок».

1.6 TileOPs: слой сэмплирующих операторов слит — шесть ядер, стоявших в очереди в прошлом выпуске, официально учтены (09-29)

Дата: 2026-09-29 Источник: слой сэмплирующих операторов (#2299)

  • Шесть ядер слоя сэмплирующих операторов, отмеченных в прошлом отчёте как «в очереди на рассмотрение» (TopKMask, MinPMask, TopPMask, TopKTopPMask, SamplingFromProbs, ChainSpeculativeSampling), были слиты 09-29 во второй половине дня: слой операторов, рабочие нагрузки и тесты подготовлены за один раз, эталонные значения выровнены с FlashInfer 0.6.16 (три уровня bf16/fp16/fp32), генерация случайных чисел реализована через целочисленную тензорную арифметику Philox4x32-10 и согласуется с известными векторами ответов Random123. Слой операторов по-прежнему декларативный (kernel_types = {}), реализация ядер ожидается в последующих PR.

1.7 TileOPs: внимание — четыре коммита: понижение выражения FP8, вынос varlen в разделяемую память, исправление головной размерности 512 для SM89 (09-29/09-30)

Дата: 2026-09-29, 2026-09-30 Источник: листовой оператор FP8 GQA (#2294)/ вынос varlen префилла (#2313)/ головная размерность 512 для SM89 (#2312)/ расслоение тестов скользящего окна (#2311)

  • Понижение FP8 GQA (#2294): обнуление выходного аккумулятора заменено на T.clear, маска хвоста KV выражена как учитывающий раскладку цикл T.Parallel, удалены два ставших ненужными CUDA-вспомогательных элемента; относится к инкременту #2113. Рассмотренная замена softcap на T.tanh намеренно исключена из-за отката — сохранён путь приближённого tanh.
  • Вынос varlen в SMEM (#2313): выход префилла varlen GQA больше не записывается разреженно из фрагмента acc_o, а выводится целыми строками по 16 байт через ставший недействительным разделяемый буфер блока запроса, без дополнительных накладных расходов разделяемой памяти; для частичных блоков сохранена защищённая прямая запись.
  • Исправление головной размерности 512 для SM89 (#2312): 32-строчный блок одного warpgroup больше не оставляет блок оценок в регистрах (ранее конфликт вывода раскладки приводил к тому, что кандидат block_m=32 так и не компилировался успешно); в конфигурацию по умолчанию добавлен кандидат 32×16 (требует 68 KiB, что ниже предела SM89).
  • Расслоение тестов (#2311): 8 случаев varlen со скользящим окном помечены как специфичные для SM90 — ранее на SM89 они проявлялись как сбои, а не как пропуски.

1.8 TileOPs: интерфейс ядер и управление разделяемой памятью — два коммита (09-29)

Дата: 2026-09-29 Источник: интерфейс и диспетчеризация ядер (#2300)/ таблица лимитов разделяемой памяти (#2303)

  • Интерфейсизация ядер (#2300): объявление интерфейса ядра для оператора с диспетчеризацией через единый поиск — семь концепций, включая «интерфейс ядра, реализация, спецификация вызова, доступность», внесены в проектный документ ops-design; замена реализации проверяется по контракту интерфейса, а не только по имени ключа, бэкенд может добавлять собственные реализации наряду со встроенными.
  • Управление разделяемой памятью (#2303): лимиты разделяемой памяти сведены в единую таблицу; FP8 GEMM объявляет supported_archs = [90] (вызовы на SM89 явно отклоняются, а не ошибочно выбирают ядро TMA/WGMMA); разреженный MLA выполняет оценку нижней границы для вызовов, не помещающихся в память, и отклоняет их (например, сценарий на SM86/SM89 с 64 головами на блок и d=512 требует не менее 100 KB, что превышает лимит 99 KB, — ранее происходил сбой запуска).

1.9 TileOPs: CI и инженерные нормы — три коммита: восьмипоточный smoke-тест, абсолютные импорты, однократная проверка манифеста (09-29/09-30)

Дата: 2026-09-29, 2026-09-30 Источники: Дымовые тесты GPU с восемью параллельными процессами (#2314) / Спецификация абсолютных импортов (#2310) / Однократная проверка манифеста (#2319)

  • Ускорение дымовых тестов (#2314): дымовые тесты PR переведены с одного процесса на одной карте на восемь рабочих процессов; ленивая генерация проверки подписи; попутно исправлен конфликт барьеров при декодировании bs1. Стоит отметить контекст: число тестов при пуше в основную ветку выросло с 4281 до 5174 (+21%), время выполнения pytest — с 324 секунд до 605 секунд (+87%), прирост в основном за счёт CPU-работы системы манифестов, а не тестов ядер.
  • Спецификация (#2310): все импорты в src/tileops/ переведены на абсолютные и принудительно контролируются ruff TID252 (ban-relative-imports = "all", перезаписано 234 файла); проектная документация синхронизирована.
  • Проверка манифеста (#2319): validate_manifest.py запускается один раз на PR вместо трёх (в дымовых тестах GPU этот тест занимает на критическом пути от 22 до 32 секунд), а метрика насыщения FMA теперь следует за выбранным GPU.

1.10 TileOPs: два ускорения поэлементных операций — откат деления один раз на поток, двойная 16-байтовая загрузка для f32 (09-29/09-30)

Дата: 2026-09-29, 2026-09-30 Источники: Откат деления (#2305) / Загрузка f32 и сохранение bool (#2309)

  • Семейство деления (#2305): Функции FloorDivide, Remainder и Div в режиме floor после перехода на побитовую точность в #2291 замедлились в 1,01–1,28 раза; теперь fast_func выполняет единую быструю проверку на поток, а точный откат с перечитыванием операндов выполняется только в потоках, где проверка не прошла; ядро сохраняет лимит в 32 регистра; в 16-битном быстром пути применяется восходящая коррекция через a * (1/b)`.
  • Загрузка f32 (#2309): в двуместных ядрах с одинаковыми формами теперь выполняется две 16-байтовых загрузки на поток (в соответствии с формой XBLOCK 1024 и четырьмя warp в inductor); результаты сравнения и логических операций типа bool теперь сохраняются одним непрерывным участком на поток — строки, которые ранее отставали от torch-compile в 1,002–1,006 раза, тем самым сошлись.

1.11 Ночной снимок: 1030 проверок корректности, 1355 бенчмарков, ноль падений и ноль ошибок (раннее утро 09-30)

Дата: 2026-09-30 Источники: Коммит снимка b8f4329a35 / Метаданные окружения снимка

  • В окне мониторинга — 1 снимок (09-30 02:53, run 36608962204; соответствует основной ветке TileOPs 2ce972f98f, то есть точке слияния #2313): 1030 проверок корректности (2 пропущено), ноль падений и ноль ошибок; 1355 бенчмарков (39 наборов), ноль падений и ноль ошибок. Окружение: H200, CUDA 13.2, torch 2.13, tilelang 0.1.11+cu132.
  • По сравнению с предыдущим снимком (b7f5a1b4bd, 1027 проверок корректности, 1335 бенчмарков): корректность +3, бенчмарки +20; критерий по-прежнему — «ноль падений». Примечание: точка слияния этого снимка предшествует пакету квантизационных ядер (#2304–#2317); статус регрессий этого пакета отразится в следующем снимке.

2. Адаптация под множество бэкендов (Ascend / MetaX / Hygon / Moore Threads)

2.1 Ascend: 950 — снова исправления в окне релизной ветки — восстановление векторизации broadcast и скалярной редукции (09-30)

Дата: 2026-09-30 Источники: Релизная ветка ascend-950-0930

  • Релизная ветка получила в этом окне мониторинга последний исправляющий коммит (раннее утро 09-30, коммит 39691ebaac): восстановлены векторизация broadcast и скалярная редукция — одно из последних исправлений PR «Public Release 9/30» в окне; ветка синхронизирована с main и опережает его на 134 коммита, основной PR всё ещё открыт. Технические подробности — в сегодняшнем фокусе.

2.2 Ascend: два исправления в репозитории ascend — однострочный патч TVM раскрывает истинную причину отката (09-29)

Дата: 2026-09-29 Источник: Патч TVM для выхода за границы при обратной трассировке (#1846)/ Очистка подмодулей CI (#1847)

  • Истинная причина отката прояснилась (#1846): к фиксированному подмодулю TVM добавлена одна строка патча, исправляющая чтение за границами при генерации ошибочного стека вызовов TVM (конструкция std::string tmp(symname, symsize) заменена на одноаргументный конструктор). Предыстория — зафиксированный в прошлом отчёте случай «#1829 откачен целиком через 4 дня после слияния»: 9 негативных компиляторных тестов, ожидающих выброса tvm.error.InternalError, стабильно давали SIGSEGV на x86 runner и стабильно проходили на ARM runner; однофакторные A/B-эксперименты на той же машине показали, что падение вызвано именно этим дефектом TVM и не связано с логикой #1829. Патч использует существующий механизм apply_tvm_patches.sh (автоматически применяется на трёх точках входа сборки, уже применённые пропускаются, а при будущей неприменимости сборка падает с явной ошибкой, а не молча).
  • Очистка CI (#1847): на самохостинговых runner actions/checkout не очищает подмодули, а git submodule update переключает указатель только при изменении commit, из-за чего патч, внесённый в TVM предыдущим PR, протекал во все последующие сборки (сборка #1846 как раз упала из-за остатка — патч не удалось применить); исправлено сбросом подмодуля перед сборкой.
  • Оценка: #1829 был откачен не из-за собственного дефекта — будет ли откаченная функциональность повторно предложена на чистой базовой линии, является следующей точкой наблюдения.

2.3 Hygon: улучшения асинхронного копирования и lowering кэш-swizzle слиты (09-29)

Дата: 2026-09-29 Источник: Асинхронное копирование Hygon (#13)/ коммит слияния 145fc5a8e7

  • Открытый PR, зафиксированный в прошлом отчёте, слит в текущем окне (9 файлов, +497/-41): улучшены асинхронное копирование и lowering кэш-swizzle. Изменения сосредоточены в codegen_hcu (+121/-29), op/copy.cc (+269/-8), tl_templates/hcu/copy.h (+47) и amd_buffer_addressing.hpp (+20), плюс тонкая настройка стратегии LDS для GEMM; Co-authored подпись Teng Huang. Hygon — единственный отечественный бэкенд этого выпуска, помимо Ascend, где есть продвижение кода.

2.4 MetaX / Moore Threads / MLIR Ascend: официальные репозитории молчат (проверка 09-30)

Дата: 2026-09-30 Источник: репозиторий MetaX/ репозиторий Moore Threads/ репозиторий MLIR Ascend

  • MetaX (последний push 09-24), Moore Threads (09-17), MLIR Ascend (09-24) — в официальных репозиториях за окно мониторинга пушей не было; на стороне сообщества новых коммитов также нет. Активность отечественных бэкендов на этой неделе сосредоточена на Ascend (бэкенд 950 + два исправления) и Hygon (слияние #13).

3. Экосистема и потребители

3.1 TileFoundry: слияние четвёртого этапа AtomSched — понижение HIR в TIR и CLI планирования (09-29)

Дата: 2026-09-29 Источник: Четвёртый этап AtomSched (#192)/ репозиторий TileFoundry

  • Поэтапное слияние объёмом 99 файлов +4885/-2885: добавлен модульный pass ConvertHIRToTIR, понижающий подготовленный HIR планирования в проверенный TIR; добавлены три группы CLI-отчётов tilefoundry schedule finalize / facts / candidates и удалён отклонённый workflow matched.
  • Проектный подход: объявления IR и отношения доступа становятся единственным источником истины, удалены дублирующие проблемные планы, предварительное сканирование, выведенные распределения и написанные вручную аксессоры; список отчётов, сортировка, рендеринг режимов и сопоставление кандидатов HIR/TIR переведены на общую рефлексию и нейтральный реестр. Находится на стадии завершения path «планирование, управляемое объявлениями».

3.2 Сайт документации: операторы квантизации, сэмплирования и shared-expert MLP вошли в справочник API (09-30)

Дата: 2026-09-30 Источник: Обновление сайта документации (#57)

  • Документационный сайт TileOPs синхронно обновляет справочник API после включения операторов квантизации, сэмплирования и MLP с общими экспертами — следует в тот же день за ритмом выхода операторов #2299, #2304–#2317.

3.3 Проверка adopters: TileKernels и FlashQLA без пушей в окне (09-30)

Дата: 2026-09-30 Источники: репозиторий TileKernels/ репозиторий FlashQLA

  • DeepSeek TileKernels по-прежнему остановлен на 2026-04; последний пуш Qwen FlashQLA — 09-28 (предыдущее окно, уже сообщалось о SM100 tcgen05), в текущем окне новых коммитов нет. Публичная активность обоих adopters находится в паузе.

3.4 Ритм версий: PR повышения 0.1.15 открыт; страницы релизов TileRT и TileFoundry стагнируют (09-30)

Дата: 2026-09-30 Источники: страница релизов основного репозитория/ страница релизов TileRT/ страница релизов TileFoundry

  • Основной репозиторий v0.1.14 (релиз 09-02) достиг 28 дней, PR повышения версии 0.1.15 открыт в текущем окне (см. сегодняшние ключевые пункты), официальный release пока не появился; у TileOPs отдельного релиза нет.
  • Страница релизов TileRT по-прежнему на v0.1.5.post2 (упомянутый в прошлом выпуске релизный PR v0.1.6 после слияния не дал официальной публикации); последняя версия TileFoundry — по-прежнему v0.0.2 (09-10).

4. Сообщество, руководства и мероприятия

4.1 Проверка репозиториев сообщества: в окне новых коммитов нет (09-30)

Дата: 2026-09-30 Источники: репозиторий руководств сообщества/ репозиторий конвейеров Sophon BM1690/ инструмент профилирования S5000/ tvm_tilelang_cookbook

  • Четыре репозитория сообщества (tilelang-tutorials, bm1690-pipelines, Tilelang_musa, tvm_tilelang_cookbook) в окне не имеют новых коммитов; в cookbook присутствует лишь автоматический пуш истории звёзд ветки chart (не является содержательной активностью, не учитывается). Достижения по CPU-примерам сайта руководств и конвейерам BM1690, о которых сообщалось в прошлом выпуске, относятся к периоду до текущего и повторно не раскрываются.

4.2 Медиа и академическая сторона: нулевые попадания Google News, новых препринтов на arXiv нет (09-30)

Дата: 2026-09-30 Источники: Google News/ Hacker News/ arXiv

  • Множественные запросы Google News RSS на китайском и английском (через прокси) дали ноль попаданий в 24-часовом окне; попадания по запросам «Ascend 950» на китайском и английском относятся к биржевым и макроэкономическим материалам до окна и не связаны напрямую с релизом бэкенда TileLang (публикация помечена 9/30, медиа ещё не отреагировали). Записи Hacker News в окне к теме не относятся; поиск «tilelang» на arXiv по-прежнему даёт последним TileSight от 07-24.

5. Наблюдения за трендами

5.1 От контракта к ядрам: семейство квантизации реализовано за 48 часов

Наблюдение прошлого выпуска состояло в том, что «в этом слое операторов пока нет ядер, дальнейший ритм определяется их появлением». Менее чем за 48 часов 7 из 9 представителей семейства квантизации вошли в реализацию ядер: четыре оператора INT8 слиты и побитово согласованы с эталоном torch, один оператор INT4 с группировкой слит и согласован с упаковочным форматом W4A16, два поблочных оператора INT8 на рассмотрении. Уже сформирован и шаблон описания для одной партии PR — по каждому указывается побитовое соответствие эталонной реализации, границы компиляции, состояние манифеста и семантика отклонения: «сначала доказать корректность, затем говорить о производительности». При таком ритме следующими точками наблюдения в предстоящем окне станут два оставшихся оператора — поблочный FP8 и SmoothQuant.

5.2 Ascend 950: нарратив о мультибэкендности от «репозитория адаптации» к «нативному в основном репозитории»

Бэкенд Ascend 950 направлен в основной репозиторий напрямую через PR из 379 файлов и около 80 тысяч строк добавлений, причём он был открыт в тот же день, что и повышение версии до 0.1.15 — «мультибэкендность» TileLang переходит от адаптации в зеркальном репозитории к возможностям основной ветки, а в качестве базовой линии для сравнения напрямую выбран собственный Torch NPU от Huawei. В подписях видны письма с домена deepseek.com и 10 соавторов-Co-author из числа ключевых разработчиков сообщества, что говорит о том, что линия Ascend — это полноформатные скоординированные вложения многих сторон, а не точечная адаптация. Следует трезво учитывать: PR ещё не влит, объём огромен, данные о производительности на данный момент ограничены лишь формулировками графиков внутри PR; стабильность основной ветки после влития и затраты на последующее сопровождение будут объектами наблюдения на более длинном цикле.

5.3 Инженерная нагрузка: рефакторинг CI при росте числа тестов на +21%

Число тестов основной ветки выросло с 4281 до 5174 (+21%), время выполнения pytest +87%, прирост в основном за счёт работ на стороне CPU в системе манифестов — это прямая стоимость стратегии «200 операторов, сначала контракты». Ответом дня стали три инженерных меры: восемь параллельных GPU-смоуков, ленивизация проверки подписей, однократность валидации манифестов (устранение двух дублирующихся проверок на каждый PR). Перековка CI из «достаточного» в «выдерживающий масштаб» в период экспансии возможностей — это недооценённое инфраструктурное повествование этой недели.

5.4 Пробелы и точки риска

Во-первых, дифференциация мультибэкендности продолжается: MetaX (после 09-24), Moore Threads (после 09-17), MLIR Ascend (после 09-24) молчат, активность сосредоточена на Ascend и Hygon; во-вторых, «много открывается, мало вливается» в основном репозитории не переломлено — в этом окне влито 2, открыто 7, количество открытых PR достигло 116, пропускная способность ревью по-прежнему остаётся узким местом, и темпы влития большого PR Ascend 950 напрямую это проверят; в-третьих, повторное поднятие откатанной функциональности в #1829, официальный релиз 0.1.15 и дополнительная запись о выпуске TileRT v0.1.6 остаются нерешёнными; в-четвёртых, валидация квантизации и сэмплирующих ядер на данный момент ограничена побитовым совпадением и однопроцессорными бенчмарками, публичной проверки влияния на точность сквозных моделей пока нет.


Приложение: материалы и пояснения к проверке

Источник Результат проверки
Организация tile-ai (29 репозиториев) В окне были пуши в 7 репозиториев: tilelang (2 влито, 7 открыто), TileOPs (17 влито), TileOPs-nightly (1 снимок), tilelang-ascend (2 влито), tilelang-hygon (1 влито), TileFoundry (1 влито), TileOPs.github.io (1)
Основной репозиторий tilelang Влиты #3293, #3305; открыты #3303–#3309, всего 7 (#3306 закрыт без влития); открытых PR — 116; релизная ветка и ветка повышения версии были активны в окне
TileOPs 17 влитий (диапазон #2299–#2319); в том же окне открыто 17; на рассмотрении 4 (#2172, #2315, #2316, #2318); главную роль играет семейство квантизации
tvm (репозиторий-сабмодуль той же организации) В окне коммитов нет
TileOPs-nightly 1 снимок b8f4329a35: корректность 1030 пунктов (пропущено 2), ноль сбоев, ноль ошибок; бенчмарки 1355 пунктов (39 наборов), ноль сбоев, ноль ошибок
TileOPs.github.io 1 (#57: квантизация, сэмплирование и операторы MLP добавлены в справочник API)
Пять репозиториев отечественных бэкендов Ascend: релизный PR #3308 для 950 и два исправления в репозитории ascend; Hygon: влит #13; MetaX (после 09-24), Moore Threads (после 09-17), MLIR Ascend (после 09-24) — активности нет
Пользователи и сообщество TileKernels, FlashQLA без пушей в окне; в четырёх репозиториях сообщества новых коммитов нет (в cookbook только автоматические пуши веток)
Google News / Hacker News / arXiv Ноль совпадений по запросам на китайском и английском (совпадения по Ascend 950 относятся к публикациям о фондовом рынке и макроэкономике до окна); HN к теме не относится; на arXiv последнее по-прежнему TileSight от 07-24

Полный список источников

leOPs/pull/2313>

tilelang_cookbook — https://github.com/RuneFang/tvm_tilelang_cookbook