Окно мониторинга: 2026-10-23 07:00 ~ 2026-10-26 07:00 (пекинское время, 72 часа, охватывает период с пятницы по понедельник).

Источники: порепозиторная проверка организации GitHub tile-ai (tilelang / TileOPs / TileFoundry / tilelang-ascend〔ascendc_pto〕/ tilelang-hygon / tilelang-sunrise / tilelang-metax / tilelang-musa / tilelang-mlir-ascend / TileRT / tilescale / DeepStack / три сайта документации) + поиск подтверждённых данных о слитых и находящихся на рассмотрении изменениях (две группы: is:merged и is:open) + полная проверка новых issue + проверка diff на уровне коммитов и тегов на странице релизов + проверка статуса публикаций на PyPI + проверка репозиториев потребителей (TileKernels / FlashQLA) + поиск новых репозиториев сообщества + множественные запросы в Google News на китайском и английском языках (через прокси) + Hacker News + arXiv + материалы отраслевых СМИ.


Индекс текущего выпуска

  • Ключевое за сегодня: за 72 часа влито 78 коммитов, 76 обновлений на рассмотрении; до первого релиза TileOPs на PyPI остался последний пункт, в CHANGELOG зафиксирована версия 0.1.0 (26.10); замена встроенного TVM на отдельно упакованный TIRx в основном репозитории затрагивает 1043 файла; в репозитории Ascend влит situ_glu, ежедневные тесты — 2903 пункта, все пройдены за день
    1. Основной прогресс проекта
      • 1.1 Основной репозиторий: id барьера имён partial-sync дублируется между двумя классами доменов памяти (#3643) (25.10)
      • 1.2 Основной репозиторий: понижение распространения NaN в clamp откатано, T.clamp возвращён к min/max (#3628) (23.10)
      • 1.3 Основной репозиторий: int64 атомарные max/min и падения AtomicStore для int64, bf16, fp16 (#3307) (23.10)
      • 1.4 Основной репозиторий: VectorizeLoop больше не игнорирует шаг цикла молча (#3345) (23.10)
      • 1.5 Основной репозиторий: результаты автотюнинга не записываются обратно после попадания NVRTC в дисковый кэш (#3193) (23.10)
      • 1.6 На рассмотрении: замена встроенного TVM на отдельно упакованный TIRx, изменения в 1043 файлах (#3666) (25.10)
      • 1.7 На рассмотрении: освобождению TMEM на sm_100 не хватает барьера CTA, дрейф ведущих инструкций в warp-специализации (#3645 / #3663 / #3664) (25.10)
      • 1.8 Новые дефекты: сбой понижения редукции на sm_120, три примера внимания превышают разделяемую память (#3647 / #3646) (25.10)
    1. Адаптация под множество бэкендов (Ascend / Hygon / новые CPU и ROCm)
      • 2.1 Основной репозиторий Ascend: пример DeepGEMM поддерживает упакованный ввод FP4×FP4 (#3589) (23.10)
      • 2.2 Основной репозиторий Ascend: DMA сохраняет базовое смещение буфера, границы области поднимаются заранее, полный жизненный цикл циклического буфера (#3627 / #3625 / #3606) (23.10)
      • 2.3 Основной репозиторий Ascend: образ CI обновлён до еженедельной сборки cann9.3.0 (#3630) (23.10)
      • 2.4 Ascend на рассмотрении: копирование E4M3 из UB→L1, раннее отклонение переполнения накристальной памяти (#3639 / #3655) (24~25.10)
      • 2.5 Ascend на рассмотрении: цель PTO по умолчанию использует исполнительный бэкенд tvm_ffi (#3516) (24.10)
      • 2.6 Репозиторий Ascend: влит оператор situ_glu, выровнен по gated-активации Kimi K3 (#1891) (23.10)
      • 2.7 Репозиторий Ascend на рассмотрении: разреженный MLA, kpool GLM-5.3 и три примера нормализации (23~25.10)
      • 2.8 Репозиторий Ascend: ежедневные тесты — 2903 пункта, все пройдены; тестовая задача следующего дня сообщает о сбое (#1941 / #1944) (25~26.10)
      • 2.9 Hygon: три коммита в основную ветку, конвейер регистров снова на рассмотрении (#26 / #18 / #27) (23~25.10)
      • 2.10 Новые бэкенды на рассмотрении: BF16/INT8 GEMM для Intel AMX, FP4 и E8M0 для ROCm (#3637 / #3665) (24~25.10)
    1. Экосистема и стороны внедрения (TileOPs / TileFoundry / дистрибутивы)
      • 3.1 TileOPs: из восьми пунктов подготовки к первому релизу выполнено семь, в CHANGELOG зафиксирована 0.1.0 (#2738) (25.10)
      • 3.2 TileOPs: публичные имена и пути утверждены окончательно, упаковка переведена на метаданные с поддержкой 3.13 (#2741 / #2742 / #2746) (25.10)
      • 3.3 TileOPs: точка входа для написания операторов сведена к authoring, eager-вызовы сведены к единому исполнителю (#2743 / #2744) (25.10)
      • 3.4 TileOPs: общая семантика операторов описана за один раз, проверка ввода генерируется из манифеста (#2751 / #2758 / #2760) (25.10)
      • 3.5 TileOPs: документация релиза, сторонние уведомления и точка входа установки через pip (#2753) (25.10)
      • 3.6 Производительность TileOPs: ширина партиции предзаполнения GDN выбирается по собственной длине вызова, нативное gated-управление KDA перенесено в kernel (#2745 / #2683) (23~25.10)
      • 3.7 Производительность TileOPs: объединённое состояние внимания, постраничный GQA и хвост indexer (#2739 / #2752 / #2735 / #2730) (24~25.10)
      • 3.8 Производительность TileOPs: узкие тайлы хвоста GEMM, многоуровневое промежуточное хранение ping-pong BMM (#2733 / #2734 / #2720) (23~25.10)
      • 3.9 Производительность TileOPs: загрузка бокса A и нативная ширина WGMMA для MoE, поэлементное обратное значение и построчное вещание (#2711 / #2715 / #2710 / #2725) (23~24.10)
      • 3.10 Производительность TileOPs: редукция и нормализация переведены на 16-байтовое чтение evict-last (#2757 / #2759 / #2748 / #2737) (25.10)
      • 3.11 Корректность и CI TileOPs: хвост сканирования SSD, развёртывание сегментов GLA, проверка релиза H200 (#2716 / #2750 / #2749 / #2718 / #2713) (23~25.10)
      • 3.12 TileFoundry: sm_89

E4M3 warp MMA и поправерочная проверка возможностей по инструкциям (#261 / #262 / #264) (10-23~24)

  • 3.13 TileFoundry: адресация целевого layout для cp.async и обратный layout MLA (#263 / #260 / #257) (10-23)
  • 3.14 TileFoundry: разделение на три дистрибутивных пакета core / nvidia / apple, тестовый ввод загружается только один раз (#268 / #269) (10-25)
  • 3.15 Дистрибутив: PR на выпуск Sunrise 0.1.15+sunrise.1.2.0 влит (#9) (10-23)
    1. Сообщество, руководства и мероприятия
      • 4.1 Новый репозиторий: tilelang-puzzles-ascend для PTO — руководство по квантизованным операторам PTO для Ascend (10-23)
      • 4.2 Новый репозиторий: китайскоязычный тренировочный сайт для собеседований по операторам TileLang, 9 модулей, 18 задач (10-23)
      • 4.3 Репозитории навыков и руководств сообщества продолжают пополняться, сайт документации получил четыре изменения вслед за первым выпуском (10-23~25)
      • 4.4 Обсуждение: пользователь TileScale спрашивает, можно ли обновить используемую версию TileLang (#72) (10-25)
    1. Наблюдения за трендами

Главное за сегодня

За 72 часа организация tile-ai влила 78 коммитов (TileOPs 51, tilelang 10, TileFoundry 10, сайт документации 4, tilelang-ascend 1, tilelang-hygon 1, tilelang-sunrise 1), в стадии проверки обновлено 76, открыто 19 новых issue. Самое важное — в очереди на выпуск: трекинг-задача «первичная очистка» в TileOPs (#2738) — семь из восьми пунктов выполнены, остались только пробный запуск в TestPyPI и первый tag, при этом в CHANGELOG уже 10-25 в 23:17 внесена первая запись об официальной версии «0.1.0 - 2026-10-26», где заявлено, что операторы импортируются как tileops.<family>.<Op>, tileops.backend и tileops.authoring предназначены соответственно для бэкендов и для сторонних разработчиков операторов, а конфигурация проверки зафиксирована на SM90 (H200), Python 3.12/3.13, PyTorch 2.13, TileLang 0.1.12, CUDA 13.2; однако на PyPI последней версией этого пакета по-прежнему остаётся 0.0.1.dev2 от 2025-10-09, в репозитории нет ни одного tag и release, и первый выпуск находится в последней клетке — «документация готова, артефакты не загружены». 10 влитых коммитов основного репозитория сосредоточены на тихих ошибках: повторяющиеся номера именованных барьеров между доменами памяти (#3643), откат понижения распространения NaN в T.clamp (#3628), падения int64 атомарных max/min и AtomicStore (#3307), потеря шага цикла в VectorizeLoop (#3345). В стадии проверки наиболее примечателен #3666: удаление 3rdparty/tvm и полный перенос фронтенда и понижения в отдельно упакованный TIRx, 1043 файла +71428/-104176. В линии Ascend в тот же день влит оператор gated-активации Kimi K3 situ_glu (#1891); ежедневные тесты этого репозитория 10-25 сообщили, что все 2903 пункта пройдены, а ранним утром 10-26 снова сообщили о сбое тестового задания (#1944).


1. Прогресс ключевых проектов

1.1 Основной репозиторий: повторение id именованных барьеров partial-sync между двумя классами доменов памяти (#3643)

Влит 10-25 в 14:30, 2 файла +57/-1, исправляет #3642. ThreadSync запускается по одному разу для shared и shared.dyn, каждый раз создаёт новый переписыватель и нумерует заново от kFirstUsedBarrier; второй прогон пропускает уже переписанные первым прогоном синхронизации, но не знает, что эти id уже заняты, и потому назначает один и тот же bar.sync id, count двум непересекающимся группам потоков. Исправление — сделать нумерацию непрерывной между двумя прогонами и добавить утверждение для повторного использования между доменами. Такие дефекты не проявляются на этапе компиляции и возникают лишь эпизодически в больших kernel.

Источник: https://github.com/tile-ai/tilelang/pull/3643

1.2 Основной репозиторий: откат понижения распространения NaN в clamp, T.clamp возвращается к min/max (#3628)

Влит 10-23 в 16:51. Откат всей цепочки #3205: удалён встроенный tl.clamp, регистрации понижения во всех бэкендах, ветки codegen и вспомогательные функции на стороне устройства (включая регистрацию для Ascend), T.clamp(x, lo, hi) восстановлен как T.min(T.max(x, lo), hi), причина — дополнительная обработка NaN мешала упрощению и векторизации min/max. Потребность в NaN не исчезла: в тот же день отдельно открыт #3605 с реализацией T.clamp_symmetric отдельно для CUDA SM86+, разделение обязанностей таково: «T.clamp сохраняет универсальность, новый интерфейс сохраняет семантику».

Источник: https://github.com/tile-ai/tilelang/pull/3628

1.3 Основной репозиторий: падения int64 атомарных max/min и AtomicStore для int64, bf16, fp16 (#3307)

Объединено 10-23 18:44. normalize_atomic_type с #1716 нормализует int64_t в unsigned long long для поддержки atomic add, из-за чего max/min формы Atomic и ссылочные формы на int64 напрямую падают, AtomicStore также затронут и дополнительно поражает bf16 и fp16. Исправление выбирает тип отдельно для int64 по операциям, AtomicStore идёт через независимую диспетчеризацию типов. Это типичная регрессия «изменение общей нормализации ради одной операции ломает остальные».

Источник: https://github.com/tile-ai/tilelang/pull/3307

1.4 Основной репозиторий: VectorizeLoop больше не игнорирует шаг цикла молча (#3345)

Объединено 10-23 19:02, относится к F319, отслеживаемому в #3301. Векторизатор получает только (loop_var, extent, body), шаг вообще не передаётся: T.vectorized(0, 8, step=2) (набор итераций 0/2/4/6) понижается в непрерывный доступ, покрывающий весь [0, 8). Исправление отклоняет неединичный шаг перед входом в векторизацию и выдаёт диагностику. Общая черта этой партии подпунктов: фронтенд принимает конструкции, которые невозможно понизить, а бэкенд выдаёт машинный код другой программы.

Источник: https://github.com/tile-ai/tilelang/pull/3345

1.5 Основной репозиторий: после попадания NVRTC в дисковый кеш результаты автотюнинга не записываются обратно (#3193)

Объединено 10-23 15:04. При загрузке kernel из диска NVRTC не устанавливает adapter.libpath, а после выбора конфигурации при тюнинге нужно сохранить кешированный kernel по этому полю, поэтому при каждом попадании выбрасывается AttributeError, результат отбрасывается, и пользователь видит «при каждом запуске идёт повторный тюнинг». Исправление восстанавливает libpath на пути загрузки кеша, согласуя его с путём свежей компиляции, и добавляет тесты перезагрузки кеша и негативный контроль.

Источник: https://github.com/tile-ai/tilelang/pull/3193

1.6 На рассмотрении: замена встроенного TVM на отдельно упакованный TIRx, изменения в 1043 файлах (#3666)

Отправлено 10-25 19:16, 1043 файла +71428/-104176. Удаляются 3rdparty/tvm и запись submodule (сохраняются CUTLASS и заголовки HIP), фронтенд, нативные тензоры и scoped IR, понижающие pass, бэкендные конвейеры и исполнительные адаптеры целиком переносятся в отдельно собираемый и публикуемый tvm_tirx, слой совместимости ограничен внутри TileLang, глобальный псевдоним tvm не задаётся, вторая копия TIRx не сохраняется. Это доводит до конца линию предыдущих выпусков «сначала tvm fork, затем основной репозиторий»: основа переходит от vendored исходников к внешней зависимости, после чего возможны независимые релизы и откаты, а влияние слияния охватывает весь репозиторий.

Источник: https://github.com/tile-ai/tilelang/pull/3666

1.7 На рассмотрении: освобождению TMEM на sm_100 не хватает CTA-барьера, дрейф ведущих операторов перед warp-специализацией (#3645 / #3663 / #3664)

Три однородных, все касаются автоматической warp-специализации и нового хранилища Blackwell. #3645: освобождение тензорной памяти на sm_100 без CTA-уровневого барьера, производящий warp может освободить её, пока потребляющий warp всё ещё читает аккумулятор через tcgen05.mma/tcgen05.ld. #3663: специализация переносит ведущие операторы за пределами внешнего цикла T.serial внутрь тела цикла, инициализация, которая должна выполниться один раз, повторяется на каждой итерации, вывод неверен. #3664: когда внутри if обёрнут специализированный конвейер и после if есть операторы, понижение, связанное с setmaxnreg, приводит к сбою ptxas. Если рассмотреть все три вместе, по-прежнему отсутствует полная семантическая модель того, «какие операторы принадлежат какому warp и где заканчивается их жизненный цикл».

Источники: https://github.com/tile-ai/tilelang/pull/3645, https://github.com/tile-ai/tilelang/issues/3663, https://github.com/tile-ai/tilelang/issues/3664

1.8 Новые дефекты: сбой понижения редукции на sm_120, три примера внимания превышают разделяемую память (#3647 / #3646)

10-25 09:08, два отчёта в один день. Первый — сбой понижения ReduceOp для gdn wy_fast_bwd_split на sm_120: исходный индекс зависит от удерживаемого потоком сегмента редукции и не покрывается существующими правилами; второй — три примера attention_sink, gqa_bwd, block_causal_attention_varlen превышают лимит разделяемой памяти одного блока в 101376 байт. Соответствующее исправление #3662 уже открыто: выбираются меньшие тайлы, меньшее число стадий конвейера и 128 потоков в соответствии с лимитами устройства, на больших устройствах сохраняются прежние значения по умолчанию. Ограничения ёмкости потребительского Blackwell становятся жёсткой границей для примеров и таблиц тюнинга.

Источники: https://github.com/tile-ai/tilelang/issues/3647, https://github.com/tile-ai/tilelang/issues/3646


2. Адаптация под несколько бэкендов (Ascend / Hygon / новые CPU и ROCm)

2.1 Основной репозиторий Ascend: пример DeepGEMM поддерживает упакованный вход FP4×FP4 (#3589)

Смержен 10-23 в 10:26. Для трёх наборов интерфейсов DeepGEMM — dense, M-grouped, K-grouped — открыт упакованный вход E2M1 FP4×FP4 с переиспользованием существующего ядра MX GEMM и эвристик; логические размерности восстанавливаются из упакованного байтового хранения с выравниванием на 64 элемента для FP4; на стороне бэкенда изменено только хвостовое заполнение K для MX, пакетный конструктор также принимает FP4. Публичные интерфейсы batch/einsum по-прежнему сохраняют FP8 для соответствия DeepGEMM-Ascend-Nightly, деквантование FP8×FP4 оставлено на будущее.

Источники: https://github.com/tile-ai/tilelang/pull/3589

2.2 Основной репозиторий Ascend: DMA сохраняет базовое смещение буфера, границы региона повышаются раньше, полный жизненный цикл циклического буфера (#3627 / #3625 / #3606)

Три коммита смержены 10-23, все — исправления раскладки и жизненного цикла. #3627: планировщик DMA терял Buffer.elem_offset, и при конструировании алиаса UB с elem_offset=256 вызов T.copy(алиас, out) фактически читал с элемента 0; исправление — учёт базового смещения в адресе и сохранение родительского смещения при шаговых срезах (включая вложенные). #3625: минимум и длина региона повышаются через Int64Promoter до построения полуоткрытого интервала, чтобы преобразование int32 не скрывало динамическую верхнюю границу, не исчерпывало бюджет Z3 на доказательстве перекрытия и не вносило лишнюю межытерационную зависимость в in-place персистентный RoPE. #3606: сводка жизненного цикла подбуфера должна полностью покрывать обращения, чтобы допускать повышение; внешне предзагруженное значение живёт на протяжении всего родительского цикла, что предотвращает перекрытие при переиспользовании во вложенных и ручных конвейерах.

Источники: https://github.com/tile-ai/tilelang/pull/3627, https://github.com/tile-ai/tilelang/pull/3625, https://github.com/tile-ai/tilelang/pull/3606

2.3 Основной репозиторий Ascend: CI-образ обновлён до недельной сборки cann9.3.0 (#3630)

Смержен 10-23 в 19:20, изменён только CI: тестовый контейнер задания ascend поднят с cann9.3.0-weekly.20260930 до cann9.3.0-weekly.20261021-ubuntu22.04-py3.12. Он определяет, какая версия среды выполнения CANN фактически проверяется всеми регрессионными тестами на стороне Ascend, и является предпосылкой для оценки срока действия выводов по этой линии.

Источники: https://github.com/tile-ai/tilelang/pull/3630

2.4 Ascend на рассмотрении: копирование E4M3 из UB→L1, раннее отклонение переполнения on-chip памяти (#3639 / #3655)

#3639 открывает для Ascend 950 копирование float8_e4m3fn из UB→L1: ND-вход переупорядочивается через существующий конвейер scatter/post-copy, предупакованный NZ переносится напрямую, анализ footprint и задержек дополнен шириной элемента FP8. #3655 заставляет MergeUBAllocations на этапе понижения проверять запланированное занятие по ёмкостям UB, L1, L0A, L0B, L0C и выдавать диагностику вместо порождения выходящего за границы выделения — причина в том, что два независимых цикла каждый законно выбрали две версии 32KB тайла L0A, и после объединения лимит превышен. Управление on-chip памятью смещается от ошибок времени выполнения к отказу на этапе компиляции.

Источники: https://github.com/tile-ai/tilelang/pull/3639, https://github.com/tile-ai/tilelang/pull/3655

2.5 Ascend на рассмотрении: цель PTO по умолчанию использует исполнительный бэкенд tvm_ffi (#3516)

Изменение на рассмотрении, обновлено 10-24: для pto добавлена поддержка tvm_ffi, которая установлена по умолчанию, execution_backend="auto" теперь разрешается в tvm_ffi. Общий host-codegen отвечает за MakePackedAPI и сборку C-хоста, модуль среды выполнения Ascend через aclrtLaunchKernelWithHostArgs запускает aibin, скомпилированный PTODSL, так же как и путь AscendC. То же направление, что и #3634 на стороне CPU основного репозитория (унификация на TVM-FFI, удаление CPU-специфичной обёртки Cython): исполнительные бэкенды идут по пути упрощения.

Источники: https://github.com/tile-ai/tilelang/pull/3516

2.6 Репозиторий Ascend: смержен оператор situ_glu, соответствующая активации гейта Kimi K3 (#1891)

Совместимо с 10-23 16:04. Семантика и ограничения dtype/shape/attr поэлементно согласованы с activation/situ_glu из CANN ops-nn, эталон точности взят по золотому стандарту PyTorch на CPU fp64; чистый одиночный Vector-ядерный оператор, хост объединяет входные оси в (rows, cut*inner) zero-copy представление согласно dim, разбиение по не последнему измерению не выполняется с шагом. Оператор соответствует активации прямого гейта Kimi K3 Stable LatentMoE, вместе с градиентом situ_glu из предыдущего выпуска и разреженным MLA, список операторов репозитория Ascend постепенно разворачивается по конкретным структурам диалоговых моделей.

Источник: https://github.com/tile-ai/tilelang-ascend/pull/1891

2.7 Репозиторий Ascend на рассмотрении: разреженный MLA, GLM-5.3 kpool и три примера нормализации (10-23~25)

Среди 24 на рассмотрении со стороны операторов представлены sparse_mla_fwd (#1929, прямой проход DSA разреженного MLA, varlen-упаковка случайных строк gather + онлайн softmax + двойной GEMM QK/PV, fast-путь ограничен условиями H=128, G=1, dim/tail=(512,64) и др.) и сжатие GLM-5.3 kpool (#1910, поразмерное softmax-пулирование внутри пула, прохождение границы BF16, вращение Hadamard-128, квантование E4M3 и рассеивание строк и scale в постраничный cache). Со стороны примеров добавлены rms_norm (#1558), NMS (#1748, попарный IoU сжимается в 1 бит в битовую карту uint16, при N=4096 2MB заменяет матрицу 64MB) и GroupNorm (#1607).

Источники: https://github.com/tile-ai/tilelang-ascend/pull/1929, https://github.com/tile-ai/tilelang-ascend/pull/1910, https://github.com/tile-ai/tilelang-ascend/pull/1748

2.8 Репозиторий Ascend: ежедневный тест 2903 пункта все пройдены, задание тестирования следующего дня сообщает о сбое (#1941 / #1944)

Аккаунт-робот 10-25 05:15 сообщил, что ежедневный тест из 2903 пунктов полностью пройден, проходимость 100%; 10-26 04:30 снова сообщил о сбое задания test в workflow, 10-24 05:08 имеется ещё одна запись о сбое. #1944 не приложен перечень сбойных случаев, но по временному ряду ежедневный полный прогон стабилизировался на уровне порядка 2900 и выполняет роль регрессионного шлюза, один сбой означает, что какой-либо новый коммит или изменение окружения прервал существующие случаи.

Источники: https://github.com/tile-ai/tilelang-ascend/issues/1941, https://github.com/tile-ai/tilelang-ascend/issues/1944

2.9 Hygon: три коммита в основную ветку, конвейер регистров снова на рассмотрении (#26 / #18 / #27)

Основная ветка 10-23 17:57 единовременно приняла три коммита (авторские даты 10-14, 10-16, 10-20, относятся к пакетному принятию): исправление слота MLS и линейного чтения DS, поддержка CI DTK 26.04/26.10, переход на wave64 shuffle и векторизованное сохранение BF16; принятый #26 дополнительно исправляет дескриптор разбиения MLS warp для FP4. На рассмотрении #18 повторно вводит конвейер регистров (может сосуществовать с конвейером разделяемой памяти, вставка commit и barrier по ступеням конвейера), а при числе warp более 4 включает warp diverge, цель — довести example_gemm до уровня, сопоставимого с ROCm, 10-25 06:00 было обновление; #27 обрабатывает понижение встроенных функций, точность и целочисленный векторизованный codegen. В сопоставлении с «удалением enable_register_pipeline в объединённой ветке» из предыдущего выпуска та же возможность переделывается в форме PR.

Источники: https://github.com/tile-ai/tilelang-hygon/pull/26, https://github.com/tile-ai/tilelang-hygon/pull/18, https://github.com/tile-ai/tilelang-hygon/pull/27

2.10 Новые бэкенды на рассмотрении: BF16/INT8 GEMM для Intel AMX, FP4 и E8M0 для ROCm (#3637 / #3665)

#3637 Добавление бэкенда Intel AMX для пути CPU: обнаружение цели, опции компиляции, диспетчеризация GEMM, ядра BF16 и INT8 используют упаковку AVX-512/VNNI и выровненное переиспользование временного буфера, на стороне исполнения — адаптивный OpenMP для 1 ядра, 40 ядер, 120 ядер. Ранее TileFoundry уже запустил пример предзаполнения на Apple AMX, а этот коммит встраивает AMX непосредственно в путь CPU основного репозитория. #3665 исправляет две бреши в шаблоне HIP: T.cast(x, T.float4_e2m1fn) на HIP печатается как (fp4_e2_t)x, а у этого типа есть только явный конструктор, из-за чего число с плавающей точкой усекается до целочисленного хранения (1.0 превращается в 0.5, 2.0 — в 1.0); одновременно добавлен тип E8M0 и включён программный FP4 на gfx94x.

Источники: https://github.com/tile-ai/tilelang/pull/3637, https://github.com/tile-ai/tilelang/pull/3665


3. Экосистема и потребители (TileOPs / TileFoundry / дистрибутивы)

3.1 TileOPs: в первичной очистке выполнено семь из восьми пунктов, CHANGELOG фиксирует 0.1.0 (#2738)

25.10 в 10:45 создан трекинг-тикет «Release clean-up», отмечено семь из восьми пунктов: именование, упаковка и файлы репозитория, Python 3.13, публичный API и точки расширения, поведение операторов, валидация входов, сайт документации; единственный незавершённый — «сторонние уведомления, документация по установке из PyPI, группа dev-зависимостей, CHANGELOG и шаги релиза, пробный прогон в TestPyPI и простановка первого tag, выполняется мейнтейнером». CHANGELOG тогда же получил первую запись версии «0.1.0 - 2026-10-26» с указанием первого релиза, а docs/stability.md поясняет, что считается публичным интерфейсом. Сверка PyPI: последняя версия tileops по-прежнему 0.0.1.dev2 от 2025-10-09; сверка GitHub: нет ни tag, ни release. Кроме того, #2756 заранее открывает «Post-release clean-up».

Источники: https://github.com/tile-ai/TileOPs/issues/2738, https://github.com/tile-ai/TileOPs/blob/main/CHANGELOG.md

3.2 TileOPs: публичные имена и пути окончательно зафиксированы одним разом, упаковка переведена на метаданные и поддержан 3.13 (#2741 / #2742 / #2746)

#2741 — единовременное переименование на 739 файлов +6452/-6740: tileops, модули семейств операторов, tileops.backend, tileops.manifest, tileops.trace и новый tileops.authoring становятся публичной поверхностью, остальное уходит вниз в _ops, _kernels, _utils, _perf, удалён ленивый слой экспорта tileops.ops, у оператора остаётся только один путь импорта. #2742 исправляет метаданные упаковки (bench перенесён из extra в dependency group, dev дедуплицирован и дополнен pre-commit и pytest-timeout, объявлены Linux/CUDA 13/Python 3, в пакет добавлен py.typed), добавлены CHANGELOG и шаблон дефекта. #2746 фиксирует requires-python как >=3.12 и убирает верхнюю границу; на Python 3.13.15 + torch 2.13.0 + tilelang 0.1.12 из PyPI на H200 пройдены все 43 упаковочных теста.

Источники: https://github.com/tile-ai/TileOPs/pull/2741, https://github.com/tile-ai/TileOPs/pull/2742, https://github.com/tile-ai/TileOPs/pull/2746

3.3 TileOPs: вход для написания операторов сведён к authoring, eager-вызовы сведены к единственному исполнителю (#2743 / #2744)

#2743 определяет точку расширения: внешний по отношению к репозиторию код пишет операторы через наследование от tileops.authoring.Op, объявляет запись манифеста как атрибут класса spec, при создании класса это проверяется валидатором, вместе с чем предоставляются проверка сигнатуры, вывод форм, roofline и границы компиляции; только внутренние классы tileops берут одноимённую запись и обслуживаются бэкендом напрямую. #2744 сводит повторно выводимые при каждом eager-вызове определение сигнатуры, спецификацию вызова, программу ядра и запись вызова к «одному plan на каждую специализацию»: при параллельности разрешение происходит один раз, а при неудаче сборки опубликованная тюнинговая конфигурация откатывается. Интерфейсы как для авторов операторов, так и для вызывающих превращаются из неявного соглашения в явный контракт.

Источники: https://github.com/tile-ai/TileOPs/pull/2743, https://github.com/tile-ai/TileOPs/pull/2744

3.4 TileOPs: общая семантика операторов описана за один раз, валидация входов генерируется из манифеста (#2751 / #2758 / #2760)

#2751 и #2758 закрепляют принцип «одно соглашение на каждое понятие» в документации и применяют его оператор за оператором: LSE всех attention унифицирован как float32 натурального логарифма, плотный [B,H,S] и упакованный [H,T] хранятся согласно этой раскладке (GQADenseBwdOp ранее читал по основанию 2), для строк без видимых ключей вывод 0 и -inf; out= всегда является keyword-only аргументом и возвращает этот объект, обратные операторы образуют пары с соответствующими прямыми. #2760 заменяет ручную пооператорную проверку упакованных смещений в validate_inputs на генерацию из манифеста, попутно устраняя риск в четырёх операторах линейного внимания, где cu_seqlens брался по позиции параметра.

Источники: https://github.com/tile-ai/TileOPs/pull/2758, https://github.com/tile-ai/TileOPs/pull/2760

3.5 TileOPs: публикация документации, сторонние уведомления и точка входа pip-установки (#2753)

11 файлов +103/-32: THIRD_PARTY_NOTICES включает MIT-уведомление для кода команды Qwen (два kernel предзаполнения GDN переписаны оттуда), публикуется как license-файл вместе с wheel и sdist; первый экран README заменён на pip install tileops с проверенной конфигурацией (Linux, Python 3.12/3.13, PyTorch 2.13, TileLang 0.1.12, CUDA Toolkit 13.2 и nvcc, SM90). Примечание к коммиту требует слияния непосредственно перед простановкой тега, что взаимно упорядочено с последним пунктом трекера.

Источники: https://github.com/tile-ai/TileOPs/pull/2753

3.6 Производительность TileOPs: ширина разбиения предзаполнения GDN выбирается по длине самого вызова, нативное гейтирование KDA в kernel (#2745 / #2683)

#2745 исправляет предзаполнение GDNFwdOp: ранее ширина разбиения бралась по числу key head, и q35-397b-tp8-32768 разбивал каждый проход на 64 сегмента через 4 волны, ночной бенчмарк показывал лишь 0.988 от FlashInfer; после выбора разбиения по длине последовательности самого вызова и value head bf16 снизился с 289.3 до 200.6 микросекунд (1.434× FlashInfer), fp16 — с 285.0 до 195.2 микросекунд (1.468×). #2683 позволяет прямому проходу KDA напрямую принимать исходное гейтирование (включая опциональный dt_bias и ограниченное гейтирование), 16 файлов +3095/-458, добавлено 28 рабочих нагрузок, и каждая строка KDAFwdOp превышает базовую линию FLA, сильно затухающие chunk пересчитываются в парные Gram-члены во избежание NaN.

Источники: https://github.com/tile-ai/TileOPs/pull/2745, https://github.com/tile-ai/TileOPs/pull/2683

3.7 Производительность TileOPs: объединение состояний attention, постраничный GQA и хвостовая волна indexer (#2739 / #2752 / #2735 / #2730)

#2739 добавляет в MergeAttentionStatesFwdOp программу с защитой от отсутствия строк и однократное сохранение LSE после объединения; ранее на llama-70b-cascade было лишь 0.985 от нативного merge_state FlashInfer, две другие строки — от 0.988 до 0.999. #2752 обеспечивает одновременную поддержку натурального логарифма и основания 2 (exp2/log2), сетка из 16 строк в одной волне заменена на CTA с 512 потоками, обрабатывающий 64 строки. #2735 исправляет переполнение временного буфера RoPE в qwen35: FP8-кэш с head dim 256 переведён с тайла в 64 строки одного warpgroup на 128 строк двух warpgroup (ранее лишь 0.16–0.57× от самой быстрой сравниваемой реализации), строки flat dim-64 переведены на warpgroup с тремя консьюмерами. #2730 нарезает последний неполный блок FP8 indexer по степеням двойки на не более чем 16 CTA, но на практике длинные строки из-за сортировки FMNMX в ptxas замедляются на 2–7 процентных пунктов.

Источники: https://github.com/tile-ai/TileOPs/pull/2739, https://github.com/tile-ai/TileOPs/pull/2735, https://github.com/tile-ai/TileOPs/pull/2730

3.8 Производительность TileOPs: узкие тайлы хвостовой волны GEMM, двухуровневый scratch пинг-понг BMM (#2733 / #2734 / #2720)

#2733 Для последней волны постоянных сеток: количество столбцов тайла у самого загруженного CTA определяет общее время, несколько строк ds-v3 ранее отставали от cuBLASLt или quack на 0,6–2,3 процентных пункта; решение — после выполнения широких тайлов обрабатывать последнюю строку более узкими тайлами, выбирать раскладку по минимуму столбцов у самого загруженного CTA, широкий тайл 176 в сочетании с 5-уровневым кольцом и epilogue с двойной буферизацией. #2734 — заставить хранилище BmmPingPongKernel поочерёдно каскадироваться через два буфера (при K, охватывающем более 16 сегментов, брать 16 столбцов, иначе 32 столбца), чтобы избежать последовательного ожидания cast и store в epilogue последнего тайла. #2720 — для коротких батчевых GEMM в пределах двух волн перейти на пинг-понг тайлы 128×128, чтобы смена тайлов и epilogue скрывались под другой группой основного цикла.

Источники: https://github.com/tile-ai/TileOPs/pull/2733, https://github.com/tile-ai/TileOPs/pull/2734, https://github.com/tile-ai/TileOPs/pull/2720

3.9 Производительность TileOPs: загрузка A-бокса для MoE и WGMMA нативной ширины, поэлементное обратное значение и построчное вещание (#2711 / #2715 / #2710 / #2725)

#2711 исправляет MoE в фазе декодирования: эксперт содержит всего 1–7 строк, но цельная TMA-загрузка блока из 64 строк затягивает в L2 и строки следующего эксперта, из-за чего gate/up в gpt-oss-120b-decode упирается в L2 (на 3,56 ГБ чтения DRAM приходится 6,11 ГБ трафика L2); решение — нарезать A-бокс на 16 строк по атомарным блокам K в 128 байт и отправлять только боксы, достижимые активными строками. #2715 — заставить шаблонные тайлы ширины 192 и 224 отправлять каждый по одной WGMMA размером 16K — ранее T.wgmma_gemm при ширине, не кратной 256, разбивался на несколько штук шириной gcd(width,256), каждая из которых повторно читала A, что замедляло на 27–35 процентных пунктов. #2710 — заменить обратное значение одной приближённой инструкцией плюс одним вектором на поток (ранее на 16 млн строк fp16/bf16 отставало от torch.compile на 1–1,4 процентных пункта). #2725 — при сетке всего в одну волну позволить одному потоку обрабатывать четыре строки с общим вектором bias.

Источники: https://github.com/tile-ai/TileOPs/pull/2711, https://github.com/tile-ai/TileOPs/pull/2715, https://github.com/tile-ai/TileOPs/pull/2710

3.10 Производительность TileOPs: редукция и нормализация переведены на 16-байтовое чтение evict-last (#2757 / #2759 / #2748 / #2737)

#2759 унифицирует однократные 16-байтовые загрузки через tileops::load16_evict_last (сегмент разделяемой памяти argreduce, цельный векторный argreduce на поток, построчная нормализация InstanceNorm, свёртка строк в пределах 8 МиБ), и только при превышении порога возвращается к evict-first. #2757 — заставить нисходящий проход редукции по leading-axis выполняться 1024 потоками, каждый из которых держит один 16-байтовый вектор, ProdFwdOp на dim 0 у (4,128,4096) fp16 снизился с 3,33 микросекунды до уровня torch.compile. #2748 — выбирать число потоков LayerNorm по числу строк (256 при 8192 и более и не более одного блока на SM, иначе 128), один и тот же оператор компилируется отдельно для декодирования и префилла. #2737 — остановить тюнинг AdaptiveMaxPool2d — конфигурация, выбранная по таймингу событий CUDA, между раундами может оказаться медленнее в 1,7 раза; вместо этого запускается производная конфигурация по умолчанию и добавлен регистровый kernel глобального пулинга.

Источники: https://github.com/tile-ai/TileOPs/pull/2759, https://github.com/tile-ai/TileOPs/pull/2757, https://github.com/tile-ai/TileOPs/pull/2748

3.11 Корректность и CI TileOPs: хвост сканирования SSD, развёртывание сегментов GLA, проверка релиза H200 (#2716 / #2750 / #2749 / #2718 / #2713)

#2716 разворачивает фиксированный хвост конвейера сканирования чанков SSD перед CUDA codegen, устраняя ошибку компиляции из-за целочисленного переполнения вниз, вызванную остаточным арифметическим выражением в параметре ожидания асинхронной копии (случай Mamba ранее не компилировался). #2750 явно разворачивает два сегмента конвейера упакованной GLA, избегая отказа нового генератора кода CUDA от символьного счётчика ожидания. #2749 выравнивает необязательное хранилище bias перед загрузкой векторизованного префилла причинной свёртки — непрерывное представление может сохранять невыровненный начальный адрес. #2718 ужесточает проверку релиза H200: отсутствие случая, пустой отчёт, неуспешный тест или непроверенная строка целиком считаются провалом, для каждой проверки установки используется отдельный кэш, CUDA Graph охватывает 23 теста, 9 операторов. #2713 — заставить ночные бенчмарки собираться последовательно на эксклюзивном GPU — ранее преждевременный прогрев инициализировал контекст CUDA, пока другой бенчмарк занимал эксклюзивное устройство, что привело к ошибкам 1061 случая за одну ночь.

Источники: https://github.com/tile-ai/TileOPs/pull/2716, https://github.com/tile-ai/TileOPs/pull/2718, https://github.com/tile-ai/TileOPs/pull/2713

3.12 TileFoundry: E4M3 warp MMA для sm_89 и поверочная валидация возможностей по каждой инструкции (#261 / #262 / #264)

#261 объявляет FP8 warp MMA на sm_89 (форма m16n8k32 E4M3 для mma.sync): ранее созданная в #259 цель sm_89 позволяла выбирать только BF16, и для произведения E4M3 в регистрах не было инструкции, в которую его можно было бы опустить. #262 расширяет проверку возможностей с «только MMA» на каждую инструкцию: на sm_89 формы bulk copy, TMA copy или транзакционного барьера mbarrier ранее проходили валидацию, а падали только на codegen или ptxas, причём сообщение об ошибке не упоминало отсутствующее оборудование; после изменения admit_fields на этапе подключения построчно сверяется с возможностями цели. #264 прогоняет этот atom с 16×8×128-произведением E4M3 от планирования до GPU, при этом K-срезы временно размещаются через разделяемую память — именно этот случай вскрыл дефект адресации cp.async, исправленный затем в #263.

Источники: https://github.com/tile-ai/TileFoundry/pull/261, https://github.com/tile-ai/TileFoundry/pull/262, https://github.com/tile-ai/TileFoundry/pull/264

3.13 TileFoundry: адресация целевой раскладки в cp.async и обратная раскладка MLA (#263 / #260 / #257)

#263 исправляет несоответствие в ops::copy_async: цель адресуется по поэлементному индексу, а источник обходится по векторам; когда срез потока содержит несколько векторов и непрерывный участок находится не в первом шаблоне, последующие векторы попадают по неверному адресу — в E4M3 GEMM на sm_89 при срезе потока (2,1,1,8) и шаге (256,-,-,1) второй 8-байтовый вектор записывался в 4-й байт вместо 256-го. #260 закрывает пробелы в раскладке и анализе для обратного прохода MLA (сохранение авторского аффинного отображения, срезы и проекции инструкций через примитивы CuTe, дополнение семантики StMatrix и накопительного CopyReduceAsyncTensor), закрывает #251. #257 исправляет три дефекта пути доступа к памяти в TIR после понижения: ops::reduce ошибочно принимает ось потока за уровень cta, warps_per_group берётся как число экземпляров всей сети (256 вместо 8 в руководстве по RMSNorm), индекс межwarp-области читается за границей.

Источники: https://github.com/tile-ai/TileFoundry/pull/263, https://github.com/tile-ai/TileFoundry/pull/260, https://github.com/tile-ai/TileFoundry/pull/257

3.14 TileFoundry: разделение на три дистрибутивных пакета core / nvidia / apple, тестовый ввод загружается один раз (#268 / #269)

#268 — структурная перестройка на 739 файлов +5489/-4518: ядро и вендорские дистрибутивы разделены, используется общий контракт версий; реализации CUDA и AMX, документация по оборудованию, спецификации, шаблоны и runtime-заголовки упаковываются по отдельности; реализации эмиссии и линковки разрешаются через привязку к target, установленные цели загружаются после инициализации ядра; ресурсы моделей отнесены к target, общая оркестрация причинно-языковых моделей — к core; после ревью чистое сокращение на 274 строки. #269 направлен на длительность тестов (магистраль 314–509 секунд, 651 секунда при изменении runtime-заголовков): один и тот же ввод через загрузчик CLI теперь прогоняется только один раз — ранее один fixture планировочного HIR загружался 12 раз, валидировался 9 раз и анализировался по одному разу на каждое семейство, а тестовый приватный загрузчик принимал программы, которые CLI отклонил бы.

Источники: https://github.com/tile-ai/TileFoundry/pull/268, https://github.com/tile-ai/TileFoundry/pull/269

3.15 Дистрибутив: принят PR релиза Sunrise 0.1.15+sunrise.1.2.0 (#9)

Принят 10-23 в 10:43. Этот PR обновляет дистрибутив Sunrise до 0.1.15+sunrise.1.2.0, включает TileLang 0.1.15 и сопутствующие прошедшие ревью изменения TileOPs, TileKernels, TVM, tvm-ffi; импорт исходников и адаптация при слиянии оформлены отдельными коммитами; финальная адаптация к wheel бэкенда TANG и исправление регрессии срезового GEMM (оба флага аккумулятора проверяются против публичного шаблона, сохранены проверки stride, origin и offset). В прошлом выпуске отмечалось, что после установки этого PR на S2 smoke-тест импорта падал на tangGetDeviceCount; в текущем окне в этом репозитории последующих коммитов не было, записей об исправлении этого сбоя не обнаружено.

Источник: https://github.com/tile-ai/tilelang-sunrise/pull/9


4. Сообщество, учебные материалы и мероприятия

4.1 Новый репозиторий: tilelang-puzzles-ascend от PTO-ISA — учебник по квантованным ядрам PTO для Ascend (23.10)

Отправлен 23.10, описывается как «учебник и упражнения по квантованным ядрам PTO для Ascend», формат повторяет tile-ai/tilelang-puzzles. Одновременно tilelangGym той же организации служит для измерения чувствительности производительности различных бенчмарков и микробенчмарков при понижении PTO и уже был включён в прошлый выпуск. Оба репозитория принадлежат организации PTO-ISA и вместе с рассматриваемым в основном репозитории PTO-векторизацией (#3512, векторизация T.Parallel в инструкции PTO VMI) образуют триаду «компилятор — упражнения — чувствительность», что говорит о том, что эта линия инструкций PTO для Ascend восполняет точки входа для разработчиков.

Источник: https://github.com/PTO-ISA/tilelang-puzzles-ascend

4.2 Новый репозиторий: китайскоязычный тренажёр для собеседований по операторам TileLang, 9 модулей, 18 задач (23.10)

Создан 23.10, описывается как китайскоязычный тренажёр для собеседований по операторам: 9 модулей, 18 задач, 21 учебный пример, включая интерактивные упражнения, решения и анализ производительности. Ранее контент сообщества состоял в основном из cookbook и наборов навыков — это первый продукт, организованный «по собеседованиям/курсам».

Источник: https://github.com/zhachar14h-cell/tilelang-operator-interview

4.3 Репозитории навыков и учебных материалов сообщества продолжают пополняться, сайт документации четырьмя коммитами следует за первым выпуском переработки (23–25.10)

sablin39/tilelang-cuda-skills (146 звёзд), RuneFang/tvm_tilelang_cookbook (36 звёзд), cc-c122/TileLang-Remote-Autotuning-Agent (отправлен 24.10) продолжают обновляться; kevin3113/models-tilelang создан 23.10, его автор в тот же период отправил в основной репозиторий поддержку schedmode для межъядерной синхронизации Ascend (#3614). На стороне документации сайт документации TileOPs четырьмя коммитами следует за переработкой основного репозитория: #79 удаляет вышедший на пенсию GQAPrefillPagedWithKVCacheFwdOp и размещает объявление о выпуске на главной странице, #81 следует за переименованием 26 классов операторов и добавлением подчёркиваний во внутренние пакеты, #82 следует за изменениями контракта публичного API и групп зависимостей bench, #83 приводит в порядок главную страницу и страницу установки к первому выпуску на PyPI.

Источник: https://github.com/tile-ai/TileOPs.github.io/pull/83, https://github.com/sablin39/tilelang-cuda-skills, https://github.com/cc-c122/TileLang-Remote-Autotuning-Agent

4.4 Обсуждение: пользователь TileScale спрашивает, можно ли обновить используемую версию TileLang (#72, 25.10)

25.10 в 05:17 пользователь в tile-ai/tilescale спросил, можно ли обновить версию TileLang, от которой зависит TileScale. Последний коммит в этом репозитории датируется 25.08, документация и примеры по-прежнему указывают на более раннюю версию. Подобные вопросы обычно возникают после того, как вышестоящие интерфейсы вступают в период быстрых переименований — рассматриваемая в этом окне в основном репозитории замена TIRx (#3666) и переименование 26 классов операторов в TileOPs увеличивают издержки нижестоящих проектов по сопровождению версии.

Источник: https://github.com/tile-ai/tilescale/issues/72


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

Релизная инженерия стала главным полем боя. Из 78 объединённых коммитов 51 приходится на TileOPs, из них более десятка — переименования, упаковка, унификация семантики, документация и проверки CI — не производительность и не новые операторы, а замораживание интерфейсов. В отслеживающем тикете 70%, CHANGELOG зафиксирован 0.1.0 с отметкой 26.10, после чего начинают действовать обещания совместимости 0.x; в тот же период TileFoundry разделён на три пакета core/nvidia/apple, Sunrise включил дистрибутив 0.1.15 — три линии на одной неделе делают одно и то же: превращают «работает» в «можно выпускать».

Центр тяжести корректности смещается от проверки форм к новому оборудованию и новому планированию. На прошлой неделе в основной репозиторий вливались в основном проверки форм и геометрии, в этом окне — жизненный цикл и барьеры: повторные номера барьеров между доменами памяти, отсутствие CTA-барьера при освобождении тензорной памяти sm_100, неверно перемещённые ведущие инструкции в warp-специализации, сбой ptxas при setmaxnreg. Общее в том, что компиляция проходит, а результат периодически неверен, и всё это касается автоматической warp-специализации и памяти новых архитектур — счёт, который неизбежно приходится платить, передав планирование компилятору.

Линия Ascend перешла от запуска к развёртыванию операторов под модели плюс ежедневной регрессии. situ_glu выровнен с активацией гейта Kimi K3 Stable LatentMoE, рассматриваемые sparse_mla_fwd и GLM-5.3 kpool — также компоненты структур конкретных моделей. Ежедневный полный прогон из 2903 пунктов прошёл полностью, а на следующий день снова сообщил о сбоях, что говорит о том, что масштаб тестов уже достаточен для использования в качестве проверки; вместе с тем, что образ CI догнал еженедельную версию cann9.3.0, срок действия выводов по этой линии измеряется неделями.

Исполнительные бэкенды сокращаются, список бэкендов растёт. CPU унифицируется на TVM-FFI, PTO по умолчанию использует tvm_ffi, добавлены исправления CuTeDSL и компиляция через NVRTC — направление единое: сокращение ветвлений исполнительных путей. Список бэкендов, напротив, расширяется — Intel AMX входит в путь CPU, ROCm дополняется FP4 и E8M0, Hygon повторно предлагает конвейеризацию регистров. Форма дистрибуции меняется с «одного набора кода с множеством веток бэкендов» на «один IR, множество пакетов», что идёт в одном русле с #3666, превращающим TVM во внешнюю зависимость.


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

Таблица проверки источников

Источник Результат проверки
Репозитории организации tile-ai 29 репозиториев, в окне мониторинга пуш в 11; влито 78 коммитов, обновлено 76 находящихся на рассмотрении, добавлено 19 issue
Основной репозиторий tilelang 10 влитых коммитов (9 — 10-23, 1 — 10-25); VERSION по-прежнему 0.1.15, новых tag нет; обновлено 50 находящихся на рассмотрении, включая замену TIRx (#3666)
TileOPs 51 влитый коммит, вокруг очистки перед первым релизом и производительности; tag и release отсутствуют; на PyPI последняя версия по-прежнему 0.0.1.dev2 (2025-10-09)
TileFoundry 10 влитых коммитов (#257–#269); описание релиза v0.0.3 уже было включено в выпуск от 10-22, в текущем окне новых tag нет
tilelang-ascend 1 влитый коммит (situ_glu, ветка по умолчанию ascendc_pto), обновлено 24 находящихся на рассмотрении; после успешного прохождения всех 2903 ежедневных тестов на следующий день задание упало
tilelang-hygon 3 влитых коммита в основную ветку (даты авторства с 10-14 по 10-20, пакетное вливание); на рассмотрении 2 (#18 / #27)
tilelang-sunrise 1 влитый коммит (PR релиза 0.1.15+sunrise.1.2.0), после вливания последующих коммитов нет
tilelang-mlir-ascend 0 коммитов в окне мониторинга в ветке по умолчанию main; пуши происходили в три ветки update0.1.15 / ci-0.1.15 / probe-ci, что относится к адаптации версии и проверке CI
tilelang-metax / musa Пушей в окне мониторинга нет, остановились на 10-16 / 09-30 соответственно
TileRT / tilescale / DeepStack Пушей нет; tilescale получил один запрос об обновлении версии (#72)
Принимающие стороны TileKernels / FlashQLA Обе остановились на 10-14, пушей нет
Репозиторий операторов ops-tilelang сообщества CANN Последний коммит в ветке по умолчанию — 10-22, в окне мониторинга новых нет
Google News (несколько групп на китайском и английском, через прокси) Точное попадание 1 (блог SGLang), при проверке полного текста оригинала TileLang не упоминается, исключено как нерелевантное
Hacker News 2 попадания, оба — обсуждения инвестиций в AI, не относятся к теме
arXiv Поиск по TileLang как ключевому слову в заголовке или аннотации, последнее — 2026-07, в окне мониторинга 0
PyPI tilelang 0.1.15 (09-30), tilefoundry 0.0.3 (10-21); tileops по-прежнему 0.0.1.dev2
Новые репозитории сообщества 2 новых репозитория (tilelang-puzzles-ascend, tilelang-operator-interview) и 4 активных, даты создания и время пушей у всех проверены

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

4]** TileOPs публикует документацию и сторонние заявления (#2753) — https://github.com/tile-ai/TileOPs/pull/2753