Отчётный период: с 2 ноября 2026 г. (понедельник) по 6 ноября 2026 г. (пятница), всего 5 рабочих дней.

Источники материалов: 5 выпусков ежедневного отчёта о динамике RuyiAI (с 2026-11-02 по 2026-11-06, окно каждого выпуска — с 04:30 предыдущего дня до 04:30 текущего дня, при этом выпуск понедельника охватывает прошедшие 3 дня и выходные); кроме того, проверка репозиториев трёх организаций RuyiAI-Stack, ruyisdk и buddy-compiler за 168 часов, полная постраничная перепроверка каждого коммита основного репозитория openRuyi-Project, перепроверка по двум источникам — сообщества разработчиков RuyiSDK и новостной страницы дистрибутива openRuyi, а также снимки трёх страниц официального сайта RuyiAI (проверка охватывает период до второй половины дня 11-07).

Пояснение к составлению: эта неделя — неделя с наиболее концентрированными структурными изменениями в квартале, три основные линии завершились одновременно. Во-первых, последняя миля цепочки дистрибуции была пройдена — открытый 43 дня назад PR openRuyi #1350 был слит 11-03, и триада buddy-mlir, triton, tilelang впервые вошла в дистрибутив в виде RPM spec. Во-вторых, triton-riscv за один день превратил себя из «поддерживающей патченную ветку Triton» в «плагин upstream Triton», чисто удалив более двух тысяч строк, каталог патчей полностью исчез. В-третьих, бэкенд матриц AME/BOSCAME за неделю внёс два коммита: на стороне LLVM дополнена классификация регистров и планирование tile, на стороне buddy-mlir один коммит на 209 файлов, более сорока тысяч строк, который развернул Kernel Contract, планировщик SPM/DMA, среду выполнения и FPGA-инструменты. Сторона релизов — другая половина фактов: ruyi после 39-дневного перерыва выпустил beta, официальная версия и месячный выпуск openRuyi 2026.10 к концу этой недели так и не вышли. В еженедельный отчёт помимо материалов ежедневного отчёта добавлены пять новых находок проверки (в основном после окна ежедневного отчёта или на границе периода), перечисленные в приложении.


1. Главное за неделю

  • Слит openRuyi #1350, триада RuyiAI через семь недель вошла в упаковку дистрибутива: 11-03 в 15:59 этот PR, открытый 09-21 в 17:55, был слит, перепроверка заняла 43 дня, в итоге три коммита, десять файлов, 838 добавленных строк, которые включили в каталог SPECS три spec-файла: buddy-mlir (0.1.2, привязка исходников 60f354a7, собственный закреплённый снимок LLVM 3845a205), python-triton-ruyiai (3.8.0+git20261103.da5291b), python-tilelang-ruyiai (0+git20261028.0b7d66e). Триада использует общую цепочку LLVM/MLIR: buddy-mlir собирает собственный LLVM и устанавливает его в /usr/lib64/buddy-mlir/llvm, triton и tilelang зависят от пакета buddy-mlir-llvm. В тот же день в 20:16 PR #1575 исправил написание адресов источников Source0/Source1, что показывает: эта цепочка всё ещё хрупкая, но уже способна пройти процесс слияния. Источники: PR #1350, PR #1575, buddy-mlir.spec

  • triton-riscv слил плагинную переделку Triton 3.9.0: набор патчей обнулён, независимый дистрибутивный пакет ушёл со сцены: 11-05 в 11:13 слит PR #98, 5 коммитов, 66 файлов, 1806 добавленных строк, 3868 удалённых строк, объём удаления примерно вдвое превышает объём добавления. Бэкенд переведён на установку в качестве плагина triton_shared по механизму TRITON_PLUGIN_DIRS, зарегистрирована точка входа, C++-плагин слинкован в libtriton.so; каталог patches/ и скрипты применения патчей полностью удалены; release.sh больше не собирает второй wheel, Makefile стал единой точкой входа для setup/build/test/lit/clean. В тот же день PR #92 (перебазирование на официальный Triton v3.8.0), который в прошлом выпуске ещё шёл параллельно, был закрыт без слияния, спор двух путей сошёлся к следованию основной линии. Источники: PR #98, PR #92

  • AME/BOSCAME бэкенд: два коммита за неделю — LLVM дополняет регистры и планирование, buddy-mlir добавляет 209 файлов: 04.11 15:40 в ветке riscv репозитория RuyiAI-Stack/llvm-project добавлен f346011 (8 файлов, +412/−1): nxv32i32 одновременно регистрируется в AccReg, устраняется копирование между двумя регистровыми файлами tile и accumulator на каждом ребре цикла, а каждая конфигурация tile вместе со своим потребителем удерживается в одной упорядоченной псевдоинструкции и разворачивается только перед emit. 06.11 15:39 в buddy-mlir влит #1033 (209 файлов, +46131/−2305), единовременно добавлены не зависящий от цели Kernel Contract (аннотация и верификация), планировщик и emitter понижения bufferized Linalg в bosc_ame SPM/DMA/tile IR, bare-metal рантайм runtime/boscame и инструменты для платы examples/BOSCAMEFPGA. Это первый раз, когда нарратив «от RVV к Matrix» на стороне компилятора дошёл до рабочего сквозного пути. Источники: коммит f346011, PR #1033, PR #35

  • Выпущен ruyi 0.54.0-beta.20261102 — первый шаг после 39-дневного перерыва; совместимость ABI: от «сканирования пакетов» к «определению хоста»: релиз 02.11 18:37, коммит тега в 15:16, синхронизация с PyPI 0.54.0b20261102. В примечаниях к релизу перечислены тринадцать PR, но базой сравнения указан 0.52.0-alpha.20260714; при реальном сравнении с 0.53.0 чистого прироста только четыре (#503, #508, #507, #509). Ключевой — #507: добавлен ruyi admin check-abi, выполняющий для заданного пакета зондирование ABI хоста и определение совместимости с тремя состояниями — совместимо, несовместимо, не определено, — с разделением мягких и строгих предикатов; ruyi list показывает примечания, ruyi install предупреждает при несовместимости; на стороне RISC-V дополнительно обработаны фильтрация ABI плавающей точки в ld.so.cache, разбор однобуквенных расширений с номером версии, выравнивание стека и границы слабых символов. Патч +5760/−834, 64 файла. Источники: 0.54.0-beta.20261102, PR #507

  • Восемнадцатидневное молчание tilelang-riscv прервано: PR #5 влил TileOps streaming load и путь квантования: создан 03.11 13:44, слит 14:13 — интервал 29 минут, 21 файл, +669/−112. Основные изменения в src/target/codegen_riscv.cc (+157/−1): для исходных операторов TileOps добавлены вспомогательные средства понижения streaming load и обработка __fdividef для FP32; тестовая часть также расширена — добавлены три набора тестов: побайтовая точность streaming load, регрессия арифметики IEEE и квантование INT8; в operator_inventory.py тоже произведены добавления и удаления. В документации сделан акцент на BuildOnSG2044.md, а в tladapter/toolchain.py удалены машинно-зависимые пути с переходом на поиск из раскладки дистрибутива — в том же направлении, что и патч упаковки openRuyi того же дня. Источники: PR #5, коммит слияния 57c548c

  • Четыре линейки вышестоящих компиляторов и сред исполнения отчитались в один день: портирование OpenJDK JEP 544 AOT вошло в основную ветку, три оптимизации Zb* от GCC вошли в основную ветку разработки: в выпуске 080 зафиксировано, что функциональное тестирование портирования JEP 544 (Ahead-of-Time Code Compilation) на платформу RISC-V пройдено, прирост производительности соответствует ожиданиям, изменения влиты в основную ветку JDK (PR #32311, 8390102 Support AOT Code Cache); за тот же период рассмотрено и влито в основную ветку девять коммитов, включая включение старших регистров общего назначения в C1, реализацию intrinsic CRC32C через Zbc, перевод констант указателей C2 на movptr2. На стороне GCC три оптимизации бэкенда RISC-V вошли в основную ветку разработки 10-27 (r17-5638 по r17-5640): Zba улучшает комбинированное распознавание сдвига-сложения и целочисленного деления, Zbs использует семантику индекса сдвига bclr для устранения лишних масок, Zbkb исправляет модель стоимости и приоритет сопоставления packh. На стороне LLVM влиты шесть вышестоящих PR для P-ext и XTHeadBb, а ветка LLVM в RuyiSDK дополнительно получила предварительную поддержку матричных расширений RV32/RV64 согласно спецификации Ztt v0.6. Источники: текст выпуска 080, JEP 544, JDK PR #32311

  • Уточнение семантики VIR в Buddy Compiler: set_vl разделён на два пути — «точный VLEN» и «произвольный VLEN»: 11-04 23:54 влит #1028, согласно которому rvv-vlen обозначает точный VLEN цели (vscale = rvv-vlen / 64), а разбиение выполняется по полным векторам; ранее rvv-vlen трактовался как минимальный VLEN, и маски, все биты которых истинны, всё равно оставались в коде — ядро, собранное под ширину вектора 1024 бита на K3, как раз является типичным случаем этого пути. 11-05 01:32 влит #1029, обрабатывающий универсальную сборку без указания rvv-vlen: strip-mined области шагают во время выполнения по N умножить на vscale, векторы получают размер по минимальным 128 битам, а set_vl с результатом напрямую отклоняется с сообщением «требуется точный VLEN». Семантика больше не полагается на запасной вариант «маска случайно оказалась полностью истинной». Источники: PR #1028, PR #1029

  • Другая сторона фактов о релизах: openRuyi 2026.10 отсутствует целый месяц, ruyi 0.54 назначен примерно на 11 ноября: последнее объявление о релизе на новостной странице openRuyi — это 2026.09 от 09-30; пути релизов за октябрь и ноябрь при проверке 11-07 оба возвращают 404; даты релизов предыдущих четырёх месяцев — 6-30, 7-23, 8-27, 9-30, прецедентов полного пропуска месяца не было. Выпуск 080 даёт чёткую временную точку для пакетного менеджера: RuyiSDK 0.54 выйдет примерно 11 ноября, версия пакетного менеджера та же — 0.54.0, главное — проверка ABI-совместимости программных пакетов с текущей системой, изначально поддерживаются любые дистрибутивы Linux с glibc или musl. На стороне разработки застоя нет — в основном репозитории openRuyi на этой неделе 156 коммитов, узкое место — сам процесс релиза. Источники: новостная страница openRuyi, текст выпуска 080, ruyi Releases


2. Прогресс стека RuyiAI (адаптация PyTorch / Triton / TileLang для RISC-V)

Обзор окна мониторинга: действия организации RuyiAI-Stack (18 репозиториев) на этой неделе почти полностью сосредоточены в двух репозиториях — triton-riscv и llvm-project: в triton-riscv девять коммитов, четыре влитых PR (#98, #99, #100, #101), четыре ночные сборки; ветка riscv в llvm-project после двух раундов полного переигрывания ветки дала один коммит бэкенда BOSCAME; tilelang-riscv после тишины на восемнадцатый день влил PR #5; ветка riscv в pytorch трижды переигрывалась, нулевой прирост функциональности; VecIntrinBench, IntrinTrans, FBGEMM, cpuinfo, harness, torq-tile, pytorch-ci, dsh-osc — ноль коммитов за всю неделю.

Ветка riscv в llvm-project: после двух раундов переигрывания один коммит BOSCAME (11-01 по 11-04)

Дата: 2026-11-01 – 2026-11-04 Источники: список коммитов ветки riscv, коммит f346011, PR #35

В ночь накануне начала периода (11-01 23:00) и в ночь первого дня периода (11-02 23:00) в ветке дважды выполнялась полная перезапись: в первом случае время коммита двадцати шести собственных коммитов ветки было единообразно переписано на диапазон с 23:00:22 по 23:00:26, головным коммитом стал afdd0982 (содержимое — «отмена предварительного прогона, добавление руководства по участию» от 10-29); во втором случае перезапись была выполнена ещё раз, головной коммит сменился на 375bf3e4, содержимое не изменилось. 11-03 в 11:57 появился коммит bef335e2 «[workflows] Use workflow-scoped token for PR rebases», который переключил токен workflow перебазирования с уровня репозитория на уровень workflow; это относится к автоматизированному обслуживанию.

Коммит f346011 от 11-04 15:40 — единственное настоящее изменение компилятора за эту неделю (8 файлов, +412/−1, автор caihanyi111). Он состоит из двух частей. Первая — классификация регистров: PHI-узел аккумулятора, переносимого циклом, получал класс регистров по умолчанию из таблицы типов, тогда как nxv32i32 изначально был зарегистрирован только как TileReg, а операнды-аккумуляторы и результаты инструкций аккумуляции mlce32.m, mqma.*, msce32.m ограничены AccReg; из-за этого на каждом ребре цикла генерировалась копия между двумя регистровыми банками — tile и accumulator, — а copyPhysReg не мог развернуть такое межбанковое копирование в одну инструкцию AME. Исправление: nxv32i32 одновременно регистрируется в AccReg, целорегистровые копии внутри одного банка разворачиваются через mmve64.t.t и mmve64.a.a, а межбанковые копии остаются жёсткой ошибкой. Вторая часть — планирование: каждая конфигурация tile и её потребитель удерживаются в одной упорядоченной псевдоинструкции с побочными эффектами и разворачиваются только перед emit, матричные регистры становятся аллоцируемыми, аккумулятор MMA получает tie, а определение нулевого аккумулятора не читает старое значение. Коммит также добавляет три набора тестов, покрывающих порядок конфигурируемых load/MMA/store, копирование внутри одного банка и между банками, а также оба варианта выбора — RVV и не-RVV.

Одно противоречие пока не прояснено: время автора последнего коммита [SyncBots] Integrate LLVM at b3b5e33 в ветке остановилось на 09-29, но при сравнении коммитов текущего головного коммита с головным коммитом предыдущего выпуска в разницу входит коммит из upstream от 10-30; иными словами, при перезаписи historia базовый уровень upstream был сдвинут вперёд, а запись синхронизирующего бота при этом не пополнилась.

triton-riscv: за один день из «ветки с патчами» в «плагин для upstream» (11-05)

Дата: 2026-11-05 Источники: PR #98, список коммитов, PR #92

Переработка состоит из трёх частей. Первая — форма бэкенда: механизм Triton TRITON_PLUGIN_DIRS устанавливает backend/ как бэкенд-плагин triton_shared, регистрирует точку входа, подключает C++-плагин к libtriton.so и копирует triton-shared-opt в пакет; отдельный дистрибутив при этом исчезает, импорты в коде единообразно переводятся на triton.backends.triton_shared; сам бэкенд начинает искать buddy-opt, buddy-llc, mir-translate и triton-shared-opt через paths.py, а драйвер CPU объявляет себя активным только при отсутствии какого-либо GPU-бэкенда.

Вторая часть — обнуление набора патчей. Каталог patches/ и скрипты применения патчей полностью удалены. Ранее у набора патчей было две причины существования: позволить Triton собираться в среде без инструментальных цепочек NVIDIA/AMD и сглаживать частые изменения LLVM API. Теперь дистрибутив LLVM от buddy-mlir несёт цели NVPTX/AMDGPU и lld (#1027), а путь GPU-зависимостей Triton перенаправляется на каталог stub — обе причины отпадают.

Третье место — объединение путей сборки пакетов. release.sh больше не собирает второй wheel, а только удаляет инструменты и напрямую вызывает bdist_wheel; Makefile становится единой точкой входа для setup, build, test, lit, clean. Попутно исправлена одна ловушка Python 3.14: в setup.py вызов shutil.which("lit") отдаёт приоритет консольному скрипту lit, установленному через pip, а тот, что поставляется с дистрибутивом LLVM, при вызове main() не имеет защиты if __name__ == "__main__", и forkserver с многопроцессностью при импорте главного модуля запускает его повторно, из-за чего цель lit падает при 80 параллельных задачах.

Цена записана в описании того же PR: фронтенд Triton 3.9 читает из бэкенда поля вроде backend_name, и без него каждый вызов tl.atomic_* бросает AttributeError, из-за чего на riscv64 падают 383 теста FlagGems; только после добавления трёх полей backend_name, default_dot_input_precision и deprecated_fp8_dot_operand_dtypes область падений сократилась. На стороне примеров тоже есть уступка: вышестоящий проект отклонил фронтенд-патч для asin/acos/atan/atan2, примеры переведены на libdevice, который позволяет опуститься до тех же __nv_* extern_elementwise, а затем triton-shared преобразует их в MLIR math операторы.

triton-riscv: три сопутствующих изменения — ночные и выходные релизы, pytest на 16 процессов, wheel cp312-abi3 (11-05 — 11-06)

Дата: 2026-11-05 — 2026-11-06 Источники: PR #99, PR #100, PR #101, список релизов

#99 выравнивает ритм релизов по buddy-mlir: ночная задача публикует предрелиз nightly/<date>-<sha>, задача выходных публикует release/<date>-<sha> и помечает его как последнюю версию; при отсутствии новых коммитов шаг пропускается, релиз остаётся черновиком до завершения загрузки всех wheel, а workflow_dispatch даёт разовый выбор dev/patch вне графика. В тот день два ночных релиза уже вышли в этом ритме.

На стороне тестов набор pytest переведён на 16 процессов, и цифры подтверждены замерами: на срезе из 207 тестов 1 процесс — 360 секунд, 8 процессов — 89 секунд, 16 процессов — 67 секунд, 24 процесса — 67 секунд, а 32 и 64 работают медленнее — отдельный тест представляет собой последовательную цепочку «компиляция, triton-shared-opt, llc, выполнение, сравнение», и при большем числе процессов начинается борьба за общий кэш компиляции. Ранее при последовательном прогоне набор FlagGems занимал 1 час 14 минут.

#100 собирает wheel stable ABI по способу вышестоящего проекта: устанавливается TRITON_STABLE_ABI=ON, nanobind компилируется с ограниченным API (Py_LIMITED_API=0x030C0000), wheel помечается как cp312-abi3 и один wheel покрывает версии с 3.12 по 3.15, а матрица релизов сокращается с трёх версий Python до одной. В той же ветке исправлено определение инструментальной цепочки manylinux в release.sh: скрипт жёстко прописывал /opt/rh/gcc-toolset-14/enable и проверял его до dnf install clang, тогда как образ представляет собой обновляемый :latest, в тот момент уже с gcc-toolset-15, из-за чего скрипт активации никогда не выполнялся, clang не находил crtbeginS.o, -lstdc++, -lgcc (riscv64) и заголовок <version> из libstdc++ (x64), и сборка падала на обеих архитектурах; теперь сначала устанавливается clang, затем включаются все инструментальные цепочки по факту наличия, а самые новые идут последними. #101 влит 11-06 в 12:52 (2 файла, +17/−2) и устраняет сбой рабочего процесса релиза на этапе очистки при проверке.

tilelang-riscv: восемнадцать дней тишины прерваны PR #5, маски RVV и максимальные свёртки по-прежнему не покрыты (11-03)

Дата: 2026-11-03 Источники: PR #5, PR #4, PR #2

Последний коммит основной ветки ранее оставался на «Build Python extension in Buddy CI» от 10-16 10:52, что означало восемнадцать дней подряд без коммитов. PR #5 был отправлен laz174; из 21 файла большую часть составляют тесты и документация: добавлен test_riscv_streaming_loads.py (+81) для проверки побайтовой целостности, test_riscv_ieee_arithmetic.py (+77) для арифметической регрессии, test_int8_quant.py (+83) для покрытия INT8-квантования; кроме того, четыре существующих теста заново выравнивают числовые пути прежних операторов (test_int8_dequant.py, test_fp8_quant_per_block.py, test_paged_kv_cache_write.py, test_elementwise_activations.py), а в operator_inventory.py также внесены добавления и удаления (+9/−14).

После слияния головной коммит основной ветки — 57c548c, после чего с 11-04 по 11-06 коммитов не было. В очереди по-прежнему висят два старых PR: #4 «RVV vector mask and max reduction lowering» остановился на 09-28, #2 «Add Codex-compatible RISC-V operator workflow» — на июне, оба не слиты — то есть данное слияние не затрагивало путь RVV-масок и максимального приведения. На стороне дистрибутива python-tilelang-ruyiai привязан к 0b7d66eb от 10-28, PR #5 ещё не вошёл ни в один пакет.

pytorch: три полных пересборки ветки riscv, базовая линия не сдвигается, набор патчей не меняется (11-02 — 11-06)

Дата: 2026-11-02 — 2026-11-06 Источники: ветка pytorch riscv, список открытых PR

Ветка riscv 11-02, 11-03 и 11-04 в 03:00 выполняла полную пересборку: время коммитов двадцати собственных коммитов ветки было унифицировано и перезаписано в одну и ту же секунду, авторское время сохранено без изменений; головные коммиты последовательно — b20942de, 81ecd427, 6c89022, сообщение всегда [SyncBots] Integrate PyTorch at 3afdbd3, базовая линия не продвинулась, набор патчей также не изменился — по-прежнему локальный образ riscv64 (#51), исправление плавающей точки bytes_to_scalar (#44), допуск ULP для linear cross entropy (#42) и blocklist inductor opinfo (#50). 11-05 и 11-06 в ветке ноль коммитов.

В ветке main каждый период от двадцати до пятидесяти пяти синхронизаций с upstream; после построчной проверки изменений, связанных с RISC-V или RVV, не обнаружено — содержимое сосредоточено на AOTI, inductor, cuDNN frontend, XPU/oneDNN, откатах ROCm и транспорте Mooncake. Восемь открытых PR (#23, #35, #36, #38, #43, #46, #48, #51) за всю неделю не были слиты, среди них #46 «RISC-V Vector Extension support for ATen» и #48 «Add RISC-V Vector CPU capability» остаются двумя основными предложениями по продвижению возможностей RVV в upstream.

Требует совместного прочтения со стороной дистрибуции следующее расхождение: python-torch-ruyiai (#1352) в openRuyi собирается по артефактам ветки, а головной коммит ветки при каждой пересборке меняет SHA, поэтому зафиксированная в пакете точка источника требует повторного выравнивания; последнее обновление этого PR остановилось на 10-27 09:51, замечаний при проверке ноль, в данном периоде действий по выравниванию по-прежнему нет.


3. Инструментальная цепочка и дистрибутивы RuyiSDK (пакетный менеджер, дистрибутивы, зеркала и матрица поддержки)

Обзор окна мониторинга: основной репозиторий openRuyi на этой неделе — 156 коммитов (по естественным дням пекинского времени: 11-02 — семь, 11-03 — девяносто четыре, 11-04 — десять, 11-05 — сорок один, 11-06 — четыре); слитые PR охватывают патчи, Node.js, firecracker, три компонента RuyiAI, simdjson, debuginfo, цепочку зависимостей LibreOffice и др.; основной репозиторий ruyi на этой неделе проявлял активность только 11-02, все три коммита packages-index пришлись на 11-02; двухнедельный выпуск прогресса 080 прошёл путь от черновика двух разделов до слияния всех разделов.

Слияние openRuyi #1350: до каких версий доведены три spec-файла (11-03)

Дата: 2026-11-03 Источники: buddy-mlir.spec, python-triton-ruyiai.spec, python-tilelang-ruyiai.spec

Фактические точки привязки трёх spec можно напрямую сверить в основном репозитории:

  • buddy-mlir 0.1.2: Source0 указывает на коммит buddy-compiler 60f354a7 («[ci] Add the publish-models workflow #925»), Source1 указывает на коммит RuyiAI-Stack/llvm-project 3845a205; сборка с помощью clang/lld 22, BUDDY_ENABLE_TESTS=OFF, BUDDY_MLIR_ENABLE_PYTHON_PACKAGES=OFF, BUDDY_DOWNLOAD_CLI11=OFF, сборка статических библиотек, префикс LLVM устанавливается в /usr/lib64/buddy-mlir/llvm.
  • python-triton-ruyiai 3.8.0+git20261103.da5291b: Source0 — это коммит triton-lang/triton 5889527, Source1 — это тег triton-riscv nightly/20260913-da5291b; два патча обрабатывают соответственно системные инструменты сборки (cmake/ninja/nanobind) и поиск инструментов в /usr/lib64/buddy-mlir/llvm/bin; зависимости времени выполнения — buddy-mlir, buddy-mlir-llvm и clang.
  • python-tilelang-ruyiai 0+git20261028.0b7d66e: основная точка привязки — коммит tilelang-riscv 0b7d66eb, а пять подмодулей TileLang/tvm 882a7748, dmlc-core 3031e4a6, rang cabe04d6, tvm-ffi ae346ec9, DLPack 93c8f2a3 упакованы отдельно; пять патчей обрабатывают верхнюю границу версии tvm-ffi, torch-c-dlpack-ext и patchelf, обнаружение инструментальной цепочки buddy-mlir, soname z3, переключатель libbacktrace; во время сборки требуется python3dist(torch).

Все три spec используют одну и ту же цепочку LLVM/MLIR, что определяет порядок последующих обновлений: сначала изменяется buddy-mlir, затем два пакета Python; при смене точки привязки на любом уровне требуется синхронная пересборка. Основной объём работы при 43-дневной проверке также заключается не в функциональности, а в том, чтобы пути, собираемые в дереве исходников из переменных окружения, построчно превратить в воспроизводимые правила поиска.

Запаздывание точек привязки версий: triton остановился на 09-13, tilelang — на 10-28, buddy — на 0.1.2 (11-03)

Дата: 2026-11-03 Источники: ночная сборка triton-riscv 09-13, коммит tilelang-riscv 0b7d66e, BUDDY MLIR 0.1.3

Строки версий всех трёх пакетов выглядят очень новыми, но точки привязки кода различны: в 3.8.0+git20261103 triton 20261103 — это дата упаковки, а реальный код происходит из тега nightly/20260913-da5291b от 09-13 (запись о релизе 09-14 01:41 UTC), что примерно пятьдесят дней с момента слияния; tilelang привязан к 0b7d66eb от 10-28, что означает, что PR #5, только что слитый 11-03, не входит в снимок исходников этой упаковки; пакет buddy-mlir указан как 0.1.2, тогда как официальная версия upstream уже достигла 0.1.3 (опубликована 10-31 23:01 UTC), а ночная сборка уже достигла 0.1.4.dev20261105.

Номер версии содержит дату, которая не равна дате кода — это имеет практическое значение для пользователей дистрибутива: устанавливается определённый снимок, а не последняя версия. После сборки и публикации пакета между его возможностями и HEAD репозитория существует фиксированная задержка, которую нужно сокращать последующими bump-коммитами; на этой неделе не было ни одного bump-коммита.

ruyi 0.54.0-beta.20261102: в списке из тринадцати пунктов только четыре новых, ABI прошёл путь от сканирования пакета до определения хоста (11-02)

Дата: 2026-11-02 Источники: Release 0.54.0-beta.20261102, PR #507, PR #496, PR #509

Хронология: тег поставлен в 15:16, в 18:37 опубликованыоднофайловый бинарник и каталог зеркала, PyPI синхронизирован с 0.54.0b20261102; канал стабильных версий по-прежнему остаётся на 0.53.0 от 09-24. Это первый новый тег за 39 дней после 0.53.0 — предыдущая предварительная версия 0.54.0-alpha.20260918 была даже на шесть дней раньше 0.53.0, и за весь октябрь не вышло ни одной alpha или beta. От alpha до beta прошло 45 дней, тогда как для линий 0.50 и 0.51 интервал alpha→beta составлял 28 дней, а для линии 0.53 — 20 дней.

Стоит отметить расхождение, которое показывает интерфейс сравнения: beta относительно 0.53.0 находится в состоянии diverged, опережая на семьдесят коммитов и отставая на три; три отстающих коммита — это автоинкремент номеров версий 0.53.0-beta и 0.53.0, а также исправление «межрепозиторного распознавания установленных пакетов» — то же исправление в beta существует с другим SHA, что не означает отсутствия функциональности, просто учёт в ветке релиза 0.53 не был слит обратно в основную линию.

Необходимо различать уровни возможностей ABI: ELF-сканер из #496 был слит ещё 09-16 и вышел с 0.53.0, он умеет сканировать каталоги и архивы tar/zip/deb, создавать детерминированные побочные файлы .abi.toml и предоставлять rescan-package-abi; в этом выпуске новым является потребительская часть #507, которая берёт побочные файлы для сравнения с текущим хостом и отвечает на вопрос «запустится ли этот пакет на этой машине». В той же версии #509 исправляет отчётность об ошибках получения пакета: ответы с не-2xx больше не считаются «успешной загрузкой» с оставлением ошибочной страницы, сохраняется частичная загрузка с возможностью возобновления, а HTTP-статус, перенаправление, ошибка соединения и остановка передачи выводятся отдельными сообщениями — для реальных пользователей это важнее, чем проверка ABI.

packages-index: три пакета и одиннадцать побочных файлов ABI, охват по-прежнему однозначные числа на трёхзначном знаменателе (11-02)

Дата: 2026-11-02 Источники: packages-index коммиты, gnu-ruyisdk riscv64 побочный файл

Три коммита сосредоточены в восемнадцатиминутном интервале перед слиянием #507: в 13:09 в toolchain/gnu-ruyisdk добавлен 0.20260921.0 (с тремя побочными файлами), в 13:18 в board-util/wlink добавлены два версии и шесть побочных файлов, в 13:26 в emulator/qemu-system-riscv-upstream добавлены два побочных файла amd64.

На примере riscv64-побочного файла gnu-ruyisdk видна гранулярность сканирования: весь архив содержит 2178 файлов, распознано 43 ELF, исключено 5478; e_machines=[243], зависимости от пяти soname; верхние границы требований к версиям — GLIBC 2.38, GLIBCXX 3.4.21, CXXABI 1.3.9; атрибуты ISA записаны до уровня версий (rv64i2p1, m2p0, a2p1, f2p2, d2p2, c2p0, плюс zicsr, zifencei, zmmul), выравнивание стека 16. Этого достаточно для определения « сможет ли хост запустить этот тулчейн».

Но охват является жёстким ограничением: в индексе всего 327 файлов описания версий пакетов, побочные файлы есть только у 3 пакетов — 11 файлов, причём у qemu только два для amd64 и нет riscv64. Пользователь RISC-V, обратившись к подавляющему большинству пакетов, получит «не определено». Чтобы догнать по охвату побочных файлов, потребуется повторное сканирование каждого пакета в конвейере сборки.

Основной репозиторий openRuyi: 156 коммитов за неделю, 11-03 за один раз влито 75 коммитов Rust-спецификаций (11-02 – 11-06)

Дата: 2026-11-02 — 2026-11-06 Источники: список коммитов openRuyi, PR #1595, PR #1596

По естественным дням пекинского времени статистика составила 7, 94, 10, 41 и 4 коммита. Из девяноста четырёх коммитов 11-03 семьдесят пять были отправлены в одну и ту же секунду: один коммит самого firecracker плюс семьдесят четыре коммита спецификаций Rust crate (включая rust-vhost, rust-vm-allocator, rust-vm-superio, rust-bitcode и другие — замыкание зависимостей firecracker); три коммита в 15:59 — это три компонента RuyiAI; остальные — patch 2.8.1, Node.js 26.13.0, simdjson 5.0.8, условия debuginfo и т. д. Основные авторы — Jvlegod (75 коммитов), Leetfs (44 коммита), Jingwiw (12 коммитов).

Из сорока одного коммита 11-05 тридцать семь относятся к цепочке зависимостей LibreOffice и были влиты двумя партиями: PR #1595 (1/n, 25 файлов, +1383) за один раз добавляет двадцать один пакет, охватывая WordPerfect (libwpd, libwps), Visio (libvisio), Publisher (libmspub), PageMaker (libpagemaker), QuarkXPress (libqxp), Zoner Draw (libzmf), StarOffice и двоичные форматы старых версий Office (libstaroffice, libmwaw, libe-book), а также liborcus, libepubgen, libodfgen, libetonyek, liblangtag и mdds; PR #1596 (2/n, 17 файлов, +4633) дополняет цепочку инструментов шрифтов, упаковывая python-afdko вместе с его зависимостями (defcon, fontparts, fontpens, ufoprocessor, ufonormalizer, mutatormath) и antlr4-cpp-runtime. Эта цепочка ещё не завершена: #1600 (4/n, Firebird для компонента Base), #1602 (6/n, PDFium, ZXing, SANE, Box2D) всё ещё на рассмотрении, #1603 (7/n) закрыт без слияния.

Четыре плановых и.security-обновления: libvirt 12.9.0 помечен security-fixes, util-linux 2.42.4, clang-wrap 20261105, gnupg выделяет scdaemon в отдельный подпакет. На стороне CI была одна попытка с откатом: 11-04 в 21:43 рабочий процесс update-package был изменён на запуск внутри контейнера openruyi, через два часа откат, после чего apt-key был заменён на ключ подписи OBS с ограниченной областью действия.

Ежемесячный выпуск openRuyi 2026.10 отсутствует весь месяц, страница новостей остановилась на сентябре (11-02 — 11-06)

Дата: 2026-11-02 — 2026-11-07 (статус) Источники: страница новостей openRuyi, Releases

Анонс ежемесячного релиза за октябрь 2026 года всю неделю не появлялся, последний анонс релиза на странице новостей по-прежнему 2026.09 от 09-30; при проверке 11-07 пути релизов 2026-10 и 2026-11 оба возвращают 404. С учётом ритма предыдущих четырёх месяцев — 6-30, 7-23, 8-27, 9-30 — это первый случай полного пропуска месяца.

Нужно различать два типа материалов: две тематические статьи октября («openRuyi-Project: публичная инфраструктура программной экосистемы RISC-V» и «openRuyi выпускает Ruyi Firmware») обе помечены 10-19, но фактически были опубликованы одним коммитом в репозиторий официального сайта 10-30 в 15:36; метки experimental для 2026.05 — 2026.09 на странице Releases были добавлены разом 10-19 задним числом — ни то, ни другое нельзя считать октябрьским релизом.

Среди них Ruyi Firmware напрямую связан с средой верификации RuyiAI: прошивка основана на coreboot, OpenSBI, EDK2, с публичным процессом сборки и прошивки; интегрирован x64emu из MultiArchUefiPkg, что позволяет среде RISC-V UEFI выполнять часть x64 UEFI-компонентов видеокарт (уже протестировано в комбинации на AMD Radeon RX 6400), а для проблемы с oprom RX 550, вызванной отсутствием поддержки DMA32 на K3, перешли на компонент oprom AArch64; в UEFI Setup добавлен выбор CPU mode (X100 only, X100 + A100, A100 only), где A100 only поддерживает векторные расширения и может служить тестовой средой для 1024-битного vlen. Пакеты релиза — три версии 20261013, 20261014, 20261015, и на SpacemiT K3 Pico ITX успешно запущены рабочий стол Wayland и glmark2-wayland.

Выпуск 080: ruyi 0.54 выйдет около 11 ноября, инструментальные цепочки K1/K3 добавлены в репозиторий ПО (11-05)

Дата: 2026-11-05 Источники: текст выпуска 080, открытые PR ruyi

Выпуск 080 даёт чёткие сроки: RuyiSDK 0.54 будет выпущен около 11 ноября, версия пакетного менеджера также 0.54.0; главный акцент — проверка ABI-совместимости пакетов с текущей системой, с начальной поддержкой любого дистрибутива Linux с C-рантаймом glibc или musl; кроме того, запросы на скачивание, возвращающие не-2xx коды состояния, теперь корректно считаются неудачными, а руководство по устранению неполадок скачивания дополнено двумя категориями факторов: проблемы сервера и сетевое окружение терминала. На инженерной стороне обновлены версии зависимостей, включая исправления безопасности, связанные с TLS-сертификатами, с октября; поскольку pygit2 ещё не адаптирован к Python 3.15, CI пока не использует 3.15.

Существенное изменение репозитория ПО — добавление toolchain/gnu-ruyisdk с адаптацией инструментальной цепочки для SpacemiT K1/K3 и дополнение информации об ABI-совместимости для части пакетов. Повседневное сопровождение дистрибутивной стороны не остановилось: из 156 коммитов на этой неделе подавляющее большинство — упаковка; однако релиз, ориентированный на AI-стек, не вышел, загвоздка в процессе релиза, а не в разработке.


4. Векторные расширения и оптимизация операторов (VecIntrinBench / IntrinTrans / FBGEMM)

Три векторных репозитория молчат всю неделю, последние коммиты остановились на 02-13, 06-25, 07-13 соответственно

Дата: 2026-11-06 (статус) Источники: VecIntrinBench, IntrinTrans, FBGEMM

Три репозитория на тему «векторов» всю неделю без коммитов, время последних коммитов: VecIntrinBench 02-13, IntrinTrans 06-25, FBGEMM 07-13 — остановились почти девять месяцев, четыре месяца и три месяца назад соответственно. Все три изначально составляли треугольник «что измерять, как транслировать, как реализовать оператор», теперь каждый естественно остыл, это не единовременное прекращение проекта.

VecIntrinBench остановился дольше всех, что наиболее прямо влияет на оценку покрытия: без обновления бенчмарка набор встроенных функций, которые он измеряет, будет всё сильнее расходиться с набором, фактически поддерживаемым компилятором, а цепочка понижений A100/AME на стороне LLVM на этой неделе всё ещё расширяется.

Векторная математика пополнена на стороне библиотек: четыре функции glibc libmvec, четырнадцать функций newlib (11-04 — 11-05)

Дата: 2026-11-04 — 2026-11-05 Источники: черновик выпуска 080, список коммитов репозитория статей

Два раздела «базовые компоненты» выпуска 080 дают самый весомый пласт низкоуровневой работы на этой неделе. Часть базовой библиотеки C: glibc портировала sinpif, sqrt, sqrtf, tanf в существующий фреймворк libmvec; newlib портировала atanhf, atan2f, atanpif, atan2pif, exp2f, cosf, coshf, cospif, exp10f, expf, log2f, log2p1f, rsqrtf, expm1f — всего 14 функций — в существующий фреймворк векторной математики.

Эти функции — фундамент для низкоточной инференс- и активационной арифметики на RVV: когда в библиотеке векторной математики не хватает функций, оператор может откатиться только на скалярный путь, и даже лучшая RVV-деградация на стороне компилятора не сможет себя проявить. В соответствии с этим — статья на arXiv от 11-02: авторы сравнили циклы умножения-сложения в четырёх точностях fp32, int8, bf16, fp16 с авто-векторизацией RISC-V в LLVM; на общей базовой линии -march=rv64gcv int8 и fp32 векторизуются чисто, bf16 и fp16 деградируют до массовых скалярных откатов, fp16 даже вырождается в поэлементные вызовы программного преобразования, если дополнительно не включить zvfbfmin/zvfbfwma и zvfhmin; динамическое число инструкций в пользовательском режиме QEMU показывает, что базовые ядра bf16 и fp16 выполняют в 17,0 и 75,9 раза больше инструкций, чем версии с включёнными расширениями. С одной стороны не хватает библиотечных функций, с другой — видимости переключателей возможностей; это две стороны одной проблемы.

Сторона компилятора: шесть PR LLVM по P-ext и XTHeadBb, Ztt v0.6; три PR GCC по Zb*; шесть PR V8

Дата: 2026-11-05 Источники: LLVM PR 235306, LLVM PR 237815, коммит GCC Zba, V8 CL 8714039

В upstream LLVM на этой неделе влито шесть PR, сосредоточенных на упакованном SIMD и битовых операциях: расширение P синтезирует больше шаблонов pm*add* с последующим сложением в инструкции класса pm*adda* (#235306), улучшает генерацию кода для 64-битного funnel shift на RV32 (#235245), добавляет intrinsics упакованного умножения-накопления с расширяющим горизонтальным сложением (#234450) и дополняет Clang тремя формами intrinsics упакованного байтового горизонтального умножения-накопления — знаковой, беззнаковой и смешанной (#234484); на стороне GlobalISel под XTHeadBb сначала расширяется узкий тип G_CTLZ_ZERO_POISON (#237815), а G_CTTZ расширяется до XLEN, после чего через G_CTLZ выбирается th.ff1 (#238214). В ветке LLVM RuyiSDK есть ещё два PR: предварительная поддержка матричного расширения RV32/RV64 согласно спецификации Ztt и документации intrinsics v0.6, охватывающая ассемблер и дизассемблер, типы и intrinsics Clang, LLVM IR и генерацию кода, а также распределение регистров M/ACC, копирование и обработку переполнения (#169); добавление GitHub Actions CI для ветки AME (#170).

Три PR GCC 10-27 вошли в основную ветку разработки (r17-5638 — r17-5640): Zba совершенствует распознавание комбинаций сдвига-сложения с целочисленным делением и взятием остатка; Zbs использует семантику сдвигового индекса самого bclr, чтобы убрать лишние вычисления маски, улучшая побитовые операции на RV32/RV64; Zbkb исправляет модель стоимости и приоритет сопоставления packh, решая проблему выбора неоптимальной инструкции при одновременном включении Zbb и Zbkb. На стороне CI инструментальной цепочки RISE-CI связал контейнерный сервис с GitHub Actions и добавил проверку сценариев сборки multilib; на стороне производительности начата подготовка к реальным аппаратным измерениям на основе SPEC CPU 2026, уже выявлено узкое место по памяти у кандидатной платформы K3 при полном прогоне SPECspeed 2026, и оцениваются другие аппаратные варианты.

На стороне V8 за период отправлено и влито шесть PR, рассмотрено и влито шесть. Первые включают исправление проверки диапазона доверенных указателей с тегами, обнуление выходящих за границы доверенных указателей при понижении тега, сохранение нулевых констант через нулевой регистр в Maglev, вывод возможностей CPU из конфигурации сборки GN, сохранение знакового бита NaN при преобразовании Float64 в Float32, вынос распределения временных регистров для подсловных атомарных RMW из цикла в Liftoff; вторые включают сохранение хвоста вектора при скалярных перемещениях (CL 8714039), разрешение VLEN=1024 (CL 8585179), реализацию недостающей операции RV64 Add643, генерацию только ebreak для stop() на аппаратуре.


5. Динамика Buddy Compiler (коммиты и релизы buddy-mlir)

Пояснения к 0.1.3 и разница кода: из шестнадцати коммитов двенадцать затрагивают векторный слой, в примечаниях к релизу указан только ABI (канун начала цикла)

Дата: 2026-10-31 (пекинское время 11-01 07:01) Источники: BUDDY MLIR 0.1.3, разница коммитов между v0.1.2 и v0.1.3

Этот релиз вышел накануне начала периода и является предпосылкой для понимания всех нижестоящих привязок этой недели. В примечаниях к релизу раскрыт только один пункт: новый ABI buddy-server (#1015), то есть сведение отдельных наборов дескрипторов плагинов моделей, написанных для каждой модальности, в единый интерфейс, плюс унифицированные пути загрузки, запроса состояния, вызова, потоковой передачи и отмены. Но если вытащить разницу коммитов между v0.1.2 и v0.1.3, видно, что в этот релиз фактически вошло шестнадцать коммитов и сто тридцать шесть файлов, из которых десять — целый блок работ по векторизации RISC-V под [midend][VIR], ещё два относятся к линии VIR, но не под префиксом [midend] (реализация диалекта VIR для decode attention и Python-привязки для VIR). Иначе говоря, из шестнадцати коммитов двенадцать затрагивают уровень векторного диалекта, а в примечаниях к релизу нет ни слова про RISC-V или RVV.

Сам разрыв — это информация: тот, кто смотрит страницу релиза, подумает, что 0.1.3 — лишь рефакторинг серверной части, а на деле получена версия со значительно продвинутыми возможностями масштабируемой векторизации. Прямое следствие для нижестоящих проектов: якорь зависимости triton-riscv по-прежнему поднят на nightly/v0.1.3.dev20261030 (#91, влит 10-31 13:15), содержимое имеет тот же источник, что и официальная версия (0.1.3 отрезан от головы основной ветки 10-29), но при текущем ритме renovate переход на release/v0.1.3 потребует ещё одного круга — к концу этой недели переход так и не состоялся.

Три коммита VIR на этой неделе: разветвление set_vl для точного/произвольного VLEN, сегментная деградация vir.shuffle, ядро по опциям llc (11-04 – 11-05)

Дата: 2026-11-04 – 2026-11-05 Источники: PR #1028, PR #1029, PR #1030, PR #1031

Ужесточение семантики set_vl см. в разделе «Главное за неделю». Добавим деталь реализации: #1029 требует, чтобы для сборок без rvv-vlen код был корректен при произвольном VLEN, strip-mined области шагают во время выполнения на N умножить на vscale, векторы задаются минимальным размером в 128 бит, а set_vl с результатом отклоняется сразу с сообщением «требуется rvv-vlen, то есть точный VLEN» — ранее этот pass лишь выдавал ошибку, а семантика держалась на том, что «маска случайно оказывалась полностью истинной».

Два изменения lowering от 11-05 касаются vir.shuffle и деградации ядра. Broadcast сначала идёт через vector<[2]xT>, затем берётся первая половина (vector.scalable.extract) для получения vector<[1]xT>, поскольку при прямом vector.broadcast над vector<[1]xT> LLVM генерирует shufflevector с маской [0], который сворачивается createOrFold как тождественная операция, а оставшиеся vscale-1 lane оказываются poison; llc превратит insertelement в vfmv.s.f, записывающий только lane 0, и если это значение не сворачивается в инструкцию .vf, а сохраняется в регистр, результат будет неверным. После перехода на [2]xT llc выполняет broadcast через vfmv.v.f на LMUL для [1]xT, число инструкций не растёт, а в цикле становится на одну меньше. Другой коммит позволяет ядру деградировать по опциям вроде -mattr для llc, тест vir-broadcast-scalable-one.mlir покрывает оба пути: strip-mining и set_vl с результатом.

#1033 BOSCAME SPM: 209 файлов, +46131, Kernel Contract и FPGA-инструменты разворачиваются вместе (11-06)

Дата: 2026-11-06 Источники: PR #1033, список коммитов

Влитый 11-06 в 15:39 коммит — крупнейший единичный за неделю: 209 файлов, +46131/−2305. По описанию PR делится на четыре части: во-первых, добавлены не связанные с целью Kernel Contract (аннотирование и валидация), а также планировщик и эмиттер BOSCAME, понижающие bufferized Linalg в SPM/DMA/tile IR bosc_ame; во-вторых, расширен диалект bosc_ame (контракты SPM/DMA/tile, экспорт в LLVM, валидация SPM/DMA), а соответствующие pass’ы подключены к buddy-opt; в-третьих, добавлены bare-metal рантайм runtime/boscame и инструменты загрузки на плату, аудита и симуляции в examples/BOSCAMEFPGA, а также host-side пример диалекта в examples/BOSCAMEDialect; в-четвёртых, дополнена документация (от корневого README до FPGA-примера, рантайма, пути чтения docs/BOSCAMEKernelContractPipeline.md и docs/KernelContract.md), а lit-тесты в tests/KernelContract и tests/Conversion/BOSCAME покрывают этот путь.

Этот коммит и LLVM-коммит от 11-04 — два конца одной цепочки: на стороне LLVM решаются классификация регистров и планирование для «i32-аккумулятор должен постоянно оставаться в AccReg», на стороне buddy-mlir — «как понизить верхнеуровневый TTIR в BOSCAME» — от контракта, планирования и эмиссии до рантайма и FPGA-инструментов впервые дано рабочее сквозное описание. Сдерживаться нужно в отношении охвата: PR не приводит сквозных данных о производительности модели, насколько быстро это работает — на этой неделе ответа нет.

Общий serving-контроллер в runtime и три коммита CI (11-04 — 11-05)

Дата: 2026-11-04 — 2026-11-05 Источники: PR #1018, PR #1026, PR #1027, PR #1025

#1018 добавляет не зависящий от модели контроллер генерации для serving (18 файлов, +2045), позволяющий адаптерам рантайма разделять единый набор бюджета генерируемых токенов, условий остановки, учёта использования и потоковой очистки; вызывающая сторона может идти либо через host-сэмплирование LLMSession, либо через источник токенов, выдающий токены напрямую со стороны устройства. Несколько деталей стоит отметить: строковые условия остановки сначала сопоставляются по исходным байтам и лишь затем декодируются из UTF-8, чтобы избежать ошибочного определения на границах многобайтовых символов; бюджет токенов учитывает и первый предсказанный токен, и EOS/стоп-токен; штраф за повторение применяется по одному разу для каждого уникального token ID в пределах окна истории запроса. Первый токен приходит из prefill, поэтому статистика пропускной способности относит первый выбор к prefill, а последующие — к decode, при нулевой работе decode сообщается нулевая пропускная способность. Подключение последующих адаптеров отслеживается отдельно в записях DeepSeek R1 (#1021), Llama 3.1 TTNN (#1022) и Qwen3-VL и др.

Из трёх коммитов CI: #1026 добавляет pytorch 2.15 в тестовую матрицу (охватывая 2.11–2.15), причиной послужила реальная регрессия: под 2.15 последняя проверка full check падает на tests/Python/AtenOps/test_resize_enlarge.py, причём падение происходит до importer — функционализация AOT autograd теперь отказывается увеличивать resize_ на уже функционализированном тензоре, граф просто не доходит до ResizeOp; исправление — замена теста на out-of-place aten.resize. #1027 заставляет публикуемый CI LLVM включать цели NVPTX/AMDGPU и активировать lld, #1025 поднимает LLVM до bef335e2143c.

Ритм релизов: два ночных выпуска после 0.1.3, якорь для нижестоящих по-прежнему на ночных тегах (11-03, 11-05)

Дата: 2026-11-03, 2026-11-05 Источники: ночной выпуск dev20261103, ночной выпуск dev20261105, список Release

11-03 18:23 выпущен 0.1.4.dev20261103, спустя три дня после предыдущей версии; 11-05 10:58 выпущен 0.1.4.dev20261105. Официальная версия по-прежнему 0.1.3 от 10-31. После слияния #1033 11-06 новых ночных пакетов нет — это изменение объёмом более сорока тысяч строк попадёт в downstream только со следующей сборкой.

Форма якоря по-прежнему не изменилась: triton-riscv зависит от ночного тега nightly/v0.1.3.dev20261030, а не от официального release/v0.1.3. Содержимое обоих тегов однородно, разница в воспроизводимости — ссылка на ночной тег перезаписывается последующими сборками, официальный тег — нет. Для стека, уже вошедшего в дистрибутив, долгосрочная привязка к ночной версии означает, что зафиксированные в пакете источники не воспроизводимы в долгосрочной перспективе.


6. Сообщество, мероприятия и официальный сайт

Двухнедельный отчёт, выпуск 080: от черновика из двух разделов до слияния всех разделов, вступительное слово и раздел официальной документации по-прежнему пусты (11-04 — 11-05)

Дата: 2026-11-04 — 2026-11-05 Источники: текст выпуска 080, список коммитов репозитория статей

В репозитории статей 11-04 было четыре коммита: 09:56 создание черновика, 16:01 дополнение LIBC, 18:02 и 19:35 два обновления файла выпуска 080; на тот момент содержательными были только разделы базовой библиотеки C и V8. С 11-05 09:59 по 15:25 было слито восемь коммитов, добавивших разделы о пакетном менеджере, IDE (два коммита), матрице поддержки плат разработки, OpenJDK, GCC, Go и ruyipkg.

На стороне плат разработки добавлены отчёты о тестировании Bianbu 4.0.1 Desktop для Milk-V Jupiter2 и Bianbu 4.0.8 LXQt (китайский и английский) для SpacemiT K3 Pico-ITX, а также обновлён отчёт об Ubuntu 24.04.5 для VisionFive 2 Lite; в репозиторий примеров добавлены примеры Dhrystone и SiFive Kernel Library для HiFive Premier P550, пример развёртывания llama-server для Jupiter2, а также входы в курс ROS 2 для K3 CoM260 и K3 Pico-ITX.

Ещё не заполнены три раздела: вступительное слово, тестирование версий и оставшиеся проблемы, официальный сайт и документация; раздел QEMU также пуст. В тексте подзаголовок «GCC» встречается дважды — это редакционная недоработка. На форуме к концу недели пост о выпуске 080 так и не опубликован; последний выпуск двухнедельного отчёта на форуме по-прежнему 079 от 10-26.

Форум: руководство по установке скриптом от 11-03 и репост об автомобильном MCU от 11-06, выпуск 080 не опубликован

Дата: 2026-11-03, 2026-11-06 Источники: руководство по установке скриптом ruyi, репост об автомобильном MCU Infineon, последние темы

11-03 17:50 добавлена тема #2902 «Инструкция и руководство по установке и обновлению ruyi с помощью скрипта», описывающая два сценария: при наличии ruyi на машине — обновление, при отсутствии — чистая установка; скрипт устанавливается в ~/.local/bin, права администратора не требуются; в посте явно указано, что текущая версия бинарника, загружаемого скриптом, — 0.52.0, что на одну версию отстаёт от официальной 0.53.0 и на два уровня — от 0.54.0-beta. В тот же период была аналогичная тема #2901, удалённая автором.

11-06 12:05 добавлена тема #2903 «[Репост] Первый автомобильный MCU Infineon на RISC-V уже на подходе» — отраслевой репост, не относящийся к данному стеку. Помимо этого, в окне мониторинга новых тем нет; три темы, связанные с саммитом от 10-29, по-прежнему на главной странице.

Официальный сайт: три страницы без изменений всю неделю, два блога и двадцать три главы документации

Дата: 2026-11-02 — 2026-11-07 (состояние) Источники: официальный сайт RuyiAI, индекс блога, индекс документации

sha256 трёх страниц — index.html (7246 байт), blog.html (5632 байта), docs.html (10843 байта) — совпадает с предыдущим выпуском, за всю неделю изменений нет: индекс главной страницы — 3 записи, блог — 2 статьи («Адаптация Triton для RISC-V», «Практика PyTorch RISC-V CI»), документация — 23 главы.

В сопоставлении с техническим прогрессом этой недели это молчание стоит отметить: бэкенд AME/BOSCAME получил два коммита подряд, triton завершил рефакторинг с плагинной архитектурой — всё это структурные изменения, о которых можно рассказать вовне, однако в блоге и документации соответствующих обновлений нет. Обе статьи блога на официальном сайте относятся к категории «практика адаптации», а не хватает именно поэтапных пояснений вроде «на каком этапе находится матричный бэкенд» и «как устанавливать после перехода на плагины».

Внешние новости и arXiv: пять целевых запросов за неделю дали ноль совпадений, лишь одна статья в периоде

Дата: 2026-11-02 — 2026-11-06 (статус) Источники: Google News RSS, arXiv 2611.03917

Пять ежедневных отчётов с целевыми запросами на китайском и английском (например, RISC-V, RuyiSDK на китайском и английском, RuyiAI, открытый исходный код сообщества Ruyi, Ruyi RISC-V AI, openRuyi) за всю неделю не дали ни одного совпадения. Единственный результат на китайской стороне со словом «Ruyi» — это по-прежнему репортаж об участии в саммите от 10-25, который выходит за пределы окна мониторинга и не связан с сообществом Ruyi; на стороне общих новостей RISC-V есть записи (OpenBSD 8.0 расширяет поддержку RISC-V, выбор копирования памяти в Linux 7.4 для RISC-V и т. д.), но они не имеют прямого отношения к данной теме и в соответствии с установленным критерием не включаются.

На стороне arXiv в пределах окна мониторинга обнаружена только одна работа, непосредственно связанная с векторизацией RVV (2611.03917, 11-02), она отмечена в главе 4. Отсутствие внешних репортажей и наблюдение за релизами не противоречат друг другу — оба невыполненных месячных обязательства относятся к категории «того, что не произошло», и новостей об этом по определению быть не может.


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

Канал дистрибуции открыт, но «упаковка завершена» не означает «возможности синхронизированы»

Значение #1350 не в номере версии, а в том, что путь дистрибуции впервые записан как конфигурация дистрибутива: раньше, чтобы использовать этот стек, приходилось самостоятельно тянуть triton-riscv, tilelang-riscv и buddy-mlir и по документации задавать переменные вроде BUDDY_MLIR_BINARY_DIR; теперь в репозитории упаковки openRuyi появились эти три компонента, и порог установки для пользователя снизился с «уметь собрать компилятор» до «уметь установить пакет».

Однако код, на который ссылаются все три spec-файла, старше апстрима этого периода: triton остановился на 09-13, tilelang — на 10-28, buddy — на 0.1.2, тогда как во всех трёх репозиториях на этой неделе ещё была активность. Наиболее показательна ситуация с tilelang — PR #5, только что влитый 11-03, стал первым функциональным изменением после восемнадцати дней тишины, но его нет в RPM, собранном в тот же день. Строка версии 3.8.0+git20261103 усиливает неверное прочтение, принимая дату упаковки за дату кода. Чтобы устранить этот разрыв, нужно либо создать регулярный процесс bump, либо явно указывать дату снимка в описании пакета; иначе с каждым влитым функциональным изменением разрыв между пакетом и репозиторием будет лишь увеличиваться.

Плагинизация меняет стоимость патчей на привязку к версии, 383 падающих тест-кейса — это первый взнос

Выгода triton-riscv очевидна: при последующем обновлении вслед за апстримом больше не нужно воспроизводить патчи, от сборки остаётся только один wheel, а поверхность установки сокращается с двух дистрибутивных пакетов до одного. Цена тоже ясна и проявилась в тот же день: фронтенд Triton 3.9 читает из бэкенда поле backend_name, и при его отсутствии 383 тест-кейса FlagGems падают. Паразитирование на точках расширения апстрима означает, что неявные контракты фронтенда апстрима становятся обязательными к выполнению интерфейсами, а эти контракты зачастую не документированы и обнаруживаются только в тестах.

Судить об успехе этой переделки следует не по тому, сколько строк удалено сегодня, а по стоимости воспроизведения при следующем обновлении апстрима и по тому, нужен ли ещё выделенный человек для отслеживания версий в таких нижестоящих наборах, как FlagGems. К концу этой недели путь следования за апстримом уже ясен, а сопутствующий конвейер приёмки всё ещё не создан: #56 «Migrate additional FlagGems operators» по-прежнему открыт, и вопрос «смогут ли эти операторы работать на riscv64» по-прежнему можно ответить только внутри PR.

Бэкенд стал главной осью недели, фронтенд и рантайм неподвижны

Почти весь проверяемый прирост этой недели пришёлся на «компиляцию и понижение»: бэкенд AME в LLVM дополнил классификацию регистров и планирование tile, BOSCAME в buddy-mlir связал контракты с FPGA, VIR ужесточил семантику VLEN для set_vl, tilelang дополнил путь понижения для streaming load. В то же время ветка RISC-V в pytorch трижды воспроизводила патчи с нулевым функциональным приростом, и среди более чем ста синхронизаций с апстримом на стороне main ни одна не касалась RISC-V.

Такое распределение показывает, что на этом этапе акцент делается на том, чтобы существующие операторы корректно понижались и стабильно работали на RISC-V, а не на расширении охвата фронтенда. Для нижестоящих пользователей ощутимые в краткосрочной перспективе изменения проявятся в продуктах компиляции и поведении JDK, а не в списке поддерживаемых фреймворков. Связанный с этим слабый участок находится там же: единственный PR в triton #85, явно нацеленный на оптимизацию производительности, по-прежнему стоит на 10-18 и не двигается уже полмесяца.

Ритм релизов: beta вышла, финальная версия и месячный выпуск всё ещё вне окна

В конце октября два месячных обязательства одновременно не выполнены, и в первую неделю ноября у каждого появилась половина продолжения: ruyi 11-02 выпустила 0.54.0-beta, первый шаг после 39-дневного перерыва, а финальная версия 0.54 назначена примерно на 11 ноября; месячное объявление openRuyi за 2026.10 по состоянию на 11-07 так и не появилось, что делает его первым полностью пропущенным месяцем.

На стороне кода обе линии не выглядят застойными — в главном репозитории openRuyi на этой неделе 156 коммитов, в ruyi появились обнаружение ABI и исправления получения пакетов, — значит, узкое место находится на этапе заморозки версии, написания объявления, сборки образов и публикации. Это согласуется с выводом прошлой недели: в этой экосистеме «сделать вещь» и «выпустить вещь» — две разные способности, первая продвигается одновременно в нескольких репозиториях, вторая за последние два месяца ни разу не была выполнена в срок.

Долгосрочная пустота на стороне бенчмарков не позволяет ответить, эффективна ли оптимизация

VecIntrinBench не обновляется почти девять месяцев, IntrinTrans — четыре месяца, FBGEMM — три месяца, и все три репозитория за неделю не получили ни одного коммита. За ту же неделю glibc и newlib добавили восемнадцать векторных математических функций, LLVM принял шесть коммитов по P-ext и Ztt v0.6, buddy-mlir развернул матричный бэкенд на 209 файлах — возможности расширяются, метрики не поспевают.

Последствия не абстрактны: без обновлённого бенчмарка встроенных функций невозможно ответить на вопрос «насколько вырос набор реально поддерживаемых компилятором функций»; без постоянной базовой линии производительности невозможно ответить на вопрос «насколько путь BOSCAME быстрее старого пути». Все утверждения о производительности на этой неделе имеют лишь уровень «заметных регрессий не обнаружено», а такие утверждения не могут служить основанием для выбора.

Пакеты для десктопа и AI-стек идут параллельно, две линии не в одном ритме

openRuyi за неделю — 156 коммитов, из них 74 — замыкание Rust-зависимостей firecracker, 37 — цепочка зависимостей LibreOffice: это поэтапная по компонентам упаковка настольного офисного пакета. В тот же день (11-05) стек RuyiAI, кроме triton-riscv, полностью молчал: ветка RISC-V в pytorch — ноль коммитов, tilelang-riscv — ноль коммитов, ветка riscv в llvm-project — ноль коммитов.

Две линии продвигаются разными людьми, в разных репозиториях, в разных ритмах. Для читателя принимать активность на стороне упаковки за прогресс AI-стека — это заблуждение; для проекта такое разделение само по себе нормально, но на уровне еженедельного отчёта их необходимо учитывать раздельно — иначе показатель «число коммитов» будет постоянно давать ложное ощущение процветания.


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

Перечень материалов

  • Выпуск 2026-11-02: окно мониторинга 10-30 04:30 ~ 11-02 04:30 (прошедшие 3 дня, охватывают субботу и воскресенье).
  • Выпуск 2026-11-03: окно мониторинга 11-02 04:30 ~ 11-03 04:30.
  • Выпуск 2026-11-04: окно мониторинга 11-03 04:30 ~ 11-04 04:30.
  • Выпуск 2026-11-05: окно мониторинга 11-04 04:30 ~ 11-05 04:30.
  • Выпуск 2026-11-06: окно мониторинга 11-05 04:30 ~ 11-06 04:30.
  • Динамика за пределами границ периода (с дневного времени 11-06 до второй половины дня 11-07) добавлена после проверки организационных репозиториев, страниц релизов и источников сообщества, см. «Пункты вне ежедневных отчётов, добавленные на этой неделе».

Способ проверки и методология

  • Проверка организаций (окно 168 часов, охват до утра 11-07): коммиты, PR и релизы трёх организаций RuyiAI-Stack, ruyisdk, buddy-compiler — через двойной канал Atom и веб-страницы, без зависимости от лимитов API; коммиты в вышестоящие форки (PyTorch riscv, LLVM riscv, LLVM main) отбирались по ключевым словам RISC-V, RVV, векторные расширения, XuanTie и включались после фильтрации. За окно три организации суммарно дали 93 динамики репозиториев.
  • Статистика основного репозитория openRuyi: после полной постраничной перепроверки через API, начало окна — пекинское время 11-02 00:00 (UTC 11-01 16:00), конец — 11-06 24:00, получено 156 коммитов; подсчёт по естественным дням в пекинском времени с пересчётом по времени автора коммита дал 7, 94, 10, 41, 4. Эта методология отличается от 24-часовых окон отдельных ежедневных отчётов, поэтому числа не полностью соответствуют цифрам отдельных выпусков ежедневного отчёта.
  • Дополнительная проверка ключевых репозиториев: три отдельных SPECS в openRuyi, ruyi, packages-index, wechat-articles в ruyisdk, buddy-mlir в buddy-compiler, pytorch (ветка riscv), triton-riscv, tilelang-riscv, llvm-project (ветка riscv) в RuyiAI-Stack.
  • Два источника сообщества: форум разработчиков RuyiSDK (список последних тем, две темы за неделю) и страница новостей дистрибутива openRuyi (включая перепроверку 404 для путей релизов 2026-10, 2026-11).
  • Официальный сайт: снимки трёх страниц www.ruyiai.org — главной, страницы блога, страницы документации — и сравнение sha256, с приложением элементов индекса блога и документации (2 статьи блога, 23 главы документации).
  • Временная методология: коммиты репозиториев пересчитываются по времени автора коммита в пекинское время; описания «ежедневно» — по последовательным естественным дням; недельный цикл — пять рабочих дней с 2026-11-02 по 2026-11-06.

Пункты вне ежедневных отчётов, добавленные на этой неделе

  • 11-06 15:39, buddy-mlir принял #1033 «Add SPM optimization for BOSCAME backend» (209 файлов, +46131/−2305), что попадает после окна ежедневного отчёта за 11-06 (11-05 04:30 ~ 11-06 04:30) и является самым крупным единичным изменением за неделю, добавлено в главу 5.
  • 11-06 12:05, на форуме появилась тема #2903 «[Перепечатка] Первый автомобильный MCU Infineon на RISC-V уже близко», после окна ежедневного отчёта, является отраслевой перепечаткой, добавлено в главу 6.
  • 11-06 12:08, triton-riscv выпустил ночную сборку nightly/20261106-aa51ac2, это вторая ночная сборка после плагинной переработки #98 (первая — два раунда 11-05), добавлено в главу 2.
  • 11-06 12:52, в triton-riscv принят #101 «Fix the release wheel and the failing checkout cleanup» (2 файла, +17/−2). На момент написания ежедневного отчёта за 11-06 он ещё был открыт, в этом выпуске учтён по факту принятия; принятие #102 «Add AMD support» того же дня состоялось 11-07 01:30 (вне периода), в текущую неделю не включено.
  • Уточнение критерия подсчёта коммитов за 11-03: в ежедневном отчёте за 11-04 было записано «двадцать коммитов в окне», после полной постраничной проверки через API фактически за этот календарный день было 94 коммита, из них 15:22:02 в одну секунду было отправлено 75 коммитов (firecracker и 74 спецификации Rust crate). В ежедневном отчёте тогда было перечислено лишь двенадцать из них в качестве представительных, в этом выпуске учтено по полному критерию.
  • Дополнение на момент проверки 11-07: последний релиз ruyi по-прежнему 0.54.0-beta.20261102 от 11-02, стабильная версия не выпущена; пути релизов openRuyi 2026-10 и 2026-11 оба возвращают 404; sha256 трёх страниц официального сайта совпадает с 11-02.

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

Источники Результаты проверки
Организация RuyiAI-Stack (все репозитории) triton-riscv: девять коммитов, четыре слитых PR (#98, #99, #100, #101), четыре ночные сборки (включая 20261101-ed0ccd1 от 11-02 06:14); llvm-project: ветка riscv — два полных перепроигрывания (11-01, 11-02) + один коммит с изменением CI-токена + коммит BOSCAME от 11-04, main последний раз обновлялся 11-02; tilelang-riscv: после слияния PR #5 от 11-03 — ноль коммитов; pytorch: ветка riscv — три перепроигрывания, ноль функциональных приращений, main — синхронизация с upstream от двадцати до пятидесяти пяти коммитов за выпуск; ruyiai-daily — пять выпусков; FBGEMM, cpuinfo, VecIntrinBench, IntrinTrans, harness, torq-tile, pytorch-ci, dsh-osc — без коммитов
Организация ruyisdk (все репозитории) ruyi: 11-02 выпущен 0.54.0-beta.20261102 (также слиты #503, #507, #508, #509), после чего ноль коммитов, ноль новых тегов, стабильная версия по-прежнему 0.53.0; packages-index: три примечания к ABI от 11-02, далее ноль коммитов; wechat-articles: выпуск 080 — от черновика до слияния всех разделов (четыре коммита 11-04, восемь коммитов 11-05); ruyi-imager, docs, support-matrix, ruyisdk-website, AME-operator, linux-xuantie-kernel — без коммитов в окне мониторинга
Организация openRuyi-Project Основной репозиторий — 156 коммитов (семь 11-02, девяносто четыре 11-03, десять 11-04, сорок один 11-05, четыре 11-06); среди слитых PR — #1350 (три компонента RuyiAI), #1575 (исправление адреса источника), #1559 (firecracker), #1563 (Node.js 26.13.0), #1534 (simdjson 5.0.8), #1564 (debuginfo), #1595 и #1596 (LibreOffice 1/n, 2/n), #1591 (контейнеризация CI), #1584 (expat 2.10.0), #1544 (firefox 159); пути месячных релизов 2026.10 и 2026.11 оба возвращают 404
Организация buddy-compiler buddy-mlir: стабильная версия 0.1.3 (10-31) + ночные сборки dev20261103, dev20261105; коммиты в окне включают #1017 (сужение счётчика фрагментов масштабируемого VIR), #1020 (ограничение версии torch), #1028 и #1029 (семантика set_vl), #1018 (контроллер serving), #1030 и #1031 (vir.shuffle и понижение ядра), #1033 (BOSCAME SPM, 11-06); #1011, #1013, #994 всё ещё не вошли в стабильную версию
Форум сообщества разработчиков RuyiSDK На этой неделе два поста: #2902 — руководство по установке и обновлению скриптом (11-03), #2903 — перепечатка об автомобильном MCU Infineon (11-06); выпуск 080 не опубликован, двухнедельный отчёт форума по-прежнему на выпуске 079 (10-26)
Страница новостей дистрибутива openRuyi Анонс релиза по-прежнему 2026.09 (09-30); в октябре только две тематические статьи (обе помечены как опубликованные 10-19 и 10-30); пути релизов 2026-10 и 2026-11 возвращают 404
Пакетный менеджер ruyi / Releases 0.54.0-beta.20261102 — последний предрелиз (11-02 10:37 UTC), стабильная версия остаётся 0.53.0 (09-24); в основном репозитории на этой неделе коммиты только 11-02
Официальный сайт (ruyiai.org) Три страницы без изменений за всю неделю: индекс главной — 3 записи, блог — 2 статьи, документация — 23 главы, sha256 совпадает с предыдущим выпуском (проверка по 11-07)
Google News RSS (несколько групп на китайском и английском) Пять выпусков, всего более двадцати целевых запросов — ноль попаданий за всю неделю; общие новости RISC-V за тот же период не связаны с сообществом Ruyi и не включены
arXiv (RISC-V) Одна статья за период (2611.03917, 11-02, автоматическая векторизация bf16/fp16); после 11-03 новых статей нет

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