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

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

Пояснения к составлению: на этой неделе параллельно развивались три основные линии. Во-первых, основной репозиторий openRuyi 637 коммитами осуществил общий разворот к «упаковке по зависимостям» — от дополнения замыкания Rust crate, дополнения бэкендов облачного хранилища Python и удаления vendor в Go вплоть до дополнения контрольных сумм источников и нормативного заполнения %autochangelog. Во-вторых, полная перезапись двух веток riscv — PyTorch и LLVM — из «по случаю» сошлась в «ежедневно»: набор заголовков патчей не меняется, хеши коммитов ежедневно теряют силу. В-третьих, три уровня матричного расширения RISC-V (AME и Ztt) — компилятор, симулятор и операторы — на этой неделе одновременно встали на место, образовав минимальный замкнутый контур «компилируется, исполняется, результат корректен». Еженедельный отчёт помимо материалов ежедневных отчётов включает семь новых находок проверки, все они приходятся на дневное время 10-23 (после окна ежедневного отчёта) или на границы периода и приведены в приложении.


1. Главные новости недели

  • openRuyi за пять дней одной недели — 637 коммитов, стратегия упаковки в целом развернулась к «упаковке по зависимостям»: по календарным дням с 10-19 по 10-23 — 221, 137, 51, 109 и 119 коммитов соответственно, авторы преимущественно Leetfs (333 коммита) и Jingwiw (152 коммита). Последовательность эволюции прослеживается чётко — 10-19 за один день 211 коммитов, связанных с Rust (добавлено около 200 пакетов), и продвижение стека сетевого хранения (dpdk 26.07, spdk 26.09, liburing 2.15, btrfs-progs 7.1, nvme-cli 3.1); 10-20 — симметричная структура по 42 коммита для Rust/Go/Python с дополнением всего семейства бэкендов облачного хранилища fsspec; 10-21–10-22 — преобразование по удалению vendor для minio (влито 10-20), sonobuoy и umoci (влито 10-21) выведено на основную ветку, а также дополнены необходимые после удаления vendor пути импорта, аналогичное предложение для picoclaw всё ещё в очереди; с 10-22 начат переход к нормативному заполнению — Jingwiw одним проходом очистил 54 пакета, дополнив контрольные суммы источников и перейдя на %autochangelog. Источники: список коммитов openRuyi, PR #1459 удаление vendor в minio, PR #1466 umoci

  • Полная перезапись двух веток riscv сошлась к ежедневному обслуживанию: PyTorch перезаписывается пять утр подряд, LLVM после восьмидневного молчания трижды подряд сменил базу: ветка riscv PyTorch переписывалась пять дней подряд с 10-18 по 10-22, головы по порядку — 8b254cfd, 44826095, 7f49d33f, 3c1ea315, 29259d90, при каждой перезаписи время автора коммитов всей ветки унифицированно переписывается; ветка riscv LLVM после восьмидневного молчания с 10-13 трижды подряд сменила базу — 10-21, 10-22 и 10-23, головы по порядку — dd05e5b5, 58d62a47, 7c77126b. Общая черта обеих линий — набор заголовков патчей пункт за пунктом не меняется, локальные результаты не теряются, цена — ежедневная потеря силы любых ссылок нижестоящих проектов по хешу коммита. В тот же период в PyTorch произошло первое за почти пять недель вливание PR (#51 локальный образ riscv64, влит 10-17), семь открытых PR всю неделю лишь обновляли метки времени, новых замечаний рецензентов нет. Источники: ветка riscv PyTorch, ветка riscv LLVM, PR #51

  • Расширение матриц Ztt впервые реализовано в ветке AME репозитория ruyisdk/llvm-project (23.10, 17:15), совместно с тремя компонентами AME образуя полную цепочку поддержки матричных расширений: в последний рабочий день недели в ветке AME появилась первоначальная поддержка «[RISCV] Add initial Ztt matrix extension support based on spec v0.6» — второй коммит этой ветки после включения рабочего процесса AME CI 19.10. Вместе с серией патчей AME в ветке LLVM на стороне RuyiAI (проектирование расширений и путей бэкенда #16, #24, #27, обновление инструкций #29, понижение встроенных функций IME и планирование A100 HP/SP #30, #31, #32), веткой ame-0.6 в QEMU и библиотекой операторов AME-operator матричное расширение уже охвачено на трёх уровнях: компиляция, эмуляция и операторы. Общий пробел всех трёх уровней — реальные измерения: модель производительности на стороне компиляции откалибрована по инструкциям A100, QEMU гарантирует лишь семантическую корректность, проверка библиотеки операторов выполняется на эмуляции или существующем оборудовании — ни один уровень не предоставляет данных пропускной способности на реальном железе. Источники: коммит Ztt v0.6 29fefa0f, AME CI PR #170, qemu ame-0.6, AME-operator

  • QEMU дополнен полной эмуляцией инструкций расширения P v0.6, стороны GCC и LLVM синхронизированы: ветка p-dev репозитория ruyisdk/qemu (на основе upstream v11.1.0) 21.10 в 16:35 получила завершающую партию из 12 коммитов, все сосредоточены на упакованном SIMD — умножение и умножение-сложение в формате Q, чистое умножение, умножение-накопление, двух- и четырёхпутевое умножение-сложение/вычитание, горизонтальная редукция, загрузка-копирование, pack/merge/подсчёт ведущих нулей, инструкции, специфичные для RV32, а также удаление зависимости P от Zbkb для соответствия новой версии спецификации и добавление тестов tests/tcg/riscv. Синхронизация на стороне инструментальных цепочек: GCC обновил поддержку расширения P до версии 0.6, LLVM партиями включил intrinsics mulq, умножение с накоплением старших разрядов, sati/usati, Packed Pair и упакованное умножение. Таким образом, расширение P вышло на вторую половину пути — «полное покрытие эмулятором, генерация обоими компиляторами»; пробел остаётся на стороне прикладных benchmark. Источники: qemu p-dev, двухнедельный отчёт выпуск 079

  • Утверждён выпуск 079 двухнедельного отчёта, дополнены шесть разделов: с 22.10 09:26 по 14:20 в ruyisdk/wechat-articles подряд ушло десять патчей (в основном #383–#391), которые добавили разделы по GCC, LLVM, V8, OpenJDK, Go, QEMU, а также по менеджеру пакетов и IDE. Техническое содержание сосредоточено в четырёх местах: LLVM — перечислено двенадцать коммитов, девять уже включены, в том числе перевод профилей RVA23.1 и RVB23.1 в статус официальных, обработка усечения f16 с помощью Zfhmin в GlobalISel, перезагрузка LLT при невыровненном скалярном доступе к памяти; V8 — включено четыре коммита, касающихся знакового расширения при двоичном поиске в riscv64 и отслеживания констант в Liftoff; Go — предложено шесть основных CL, две уже включены для аппаратного ускорения sha256/sha512 (zvknha/zvknhb) в riscv64; OpenJDK — включено двенадцать коммитов и выполнена первоначальная реализация портирования JEP 544 (AOT статическая компиляция) на RISC-V. В выпуске по-прежнему пустуют три раздела: вступительное слово, тестирование версий и нерешённые вопросы, официальный сайт и документация. Источники: файл выпуска 079

  • IREE за два дня прошёл ступень первого уровня точности матричного умножения-сложения RVV: выпущенный 10-19 v3.13.0 включил inner_tiled MMA f32 vfmacc.vf для RISC-V V в официальную версию (PR #24933); 10-21 в основную ветку добавлена версия f16 (PR #25000, 946 строк изменений, более восьмисот строк тестов), выбор кодировки выполняется на трёх уровнях в зависимости от доступности расширений — при наличии +zvfh используется vfmacc.vf, при умножении f16 на f16 с получением f32 используется расширенный vfwmacc.vf, а при наличии только +zvfhmin происходит деградация до расширения в f32 с последующим усечением обратно. По производительности задано направление: на X60 (VLEN=256) однопоточный inner_tiled уже быстрее mmt4d ukernel, на 4 и 8 потоках большие формы всё ещё медленнее, оставшийся разрыв — в блочности и потоковой обработке (трекер #24932). Источники: IREE v3.13.0, PR #25000

  • Линии ядра и прошивки в конце недели перешли от тишины к возобновлению движения (10-23): linux-xuantie-kernel 10-23 в 11:23 внёс «riscv: Migrate T-Head extensions to the vendor extension framework», полностью перенеся ранее переименованные ключи вендорских расширений XUANTIE в фреймворк вендорских расширений ядра, завершив непрерывную семидневную тишину с 10-16; в тот же день ruyi-imager в 10:30 добавил «Add SpacemiT K3 UFS and UEFI provisioning support», а support-matrix в 10:47 дополнил тремя записями базовых тестовых отчётов RT-Thread для RDC2022-D1s. Эти три линии всю предыдущую неделю бездействовали, все усилия уходили на пользовательские программные пакеты openRuyi; эта партия коммитов на выходных вернула акцент к платформе и платам. Источники: коммит ядра 92c3f534, коммит ruyi-imager 732a9214, support-matrix

  • Саммит завершён, выход сообщества высвобожден сосредоточенно: обзорный пост приводит семь демонстраций на реальном железе и набор воспроизводимых данных ускорения: шестой Китайский саммит RISC-V прошёл с 10-18 по 10-20 в Шэньчжэне, 10-22 в 11:31 на форуме опубликован обзорный пост с данными о масштабе — более 3600 офлайн-специалистов, 10 членов команды на месте, два технических доклада, шесть технических постеров, отдельная выставочная зона D15. Твёрдые цифры в постерах включают индекс метаданных пакетного менеджера более 328 программных пакетов, более 265 системных образов, охват 41 платы разработчика, публикацию в PyPI и подключение к репозиториям RevyOS и Bianbu; переработка курса в сумме составила 821 видео и 1,441 млн просмотров. Из семи демонстраций наиболее убедительна сравнительная таблица ускорения OpenCV RVV: на одной и той же аппаратной платформе версия, установленная через ruyi, относительно поставляемой с дистрибутивом OpenCV обеспечивает ускорение в 3–8 раз на таких операторах, как фильтрация изображений и извлечение признаков. На следующий день на форуме также был добавлен в архив конспект «Практический курс RISC-V Linux 02|достаточные основы языка C». Источники: обзорный пост саммита #2893, практический курс 02 #2894


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

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

Форк PyTorch: пять утр подряд полное переписывание ветки, 10-23 первая пауза

Ветка riscv: операционный ритм на этой неделе уже устоялся: ежедневно около 03:00 выполняется полная перезапись ветки, головные коммиты по порядку: 8b254cfd (10-18), 44826095 (10-19), 7f49d33f (10-20), 3c1ea315 (10-21), 29259d90 (10-22). Особенность каждой перезаписи — время автора коммитов унифицированно переписывается, заголовки локальных патчей остаются неизменными по пунктам, изменения касаются только объёма синхронизации с upstream-базой. При сравнении головного коммита 10-21 с предыдущим: впереди на 67, позади на 24, различия в 208 файлах; для 10-22: впереди на 60, позади на 24, различия в 106 файлах, все различия приходятся на upstream (операторы MPS, ядра Metal, рабочие процессы CI и скрипт pr_review), файлы локальных патчей в списке различий не фигурируют.

Последовательность локальных патчей стабильна и состоит из четырёх групп: локальный образ riscv64 (#51), исправление плавающей точки bytes_to_scalar (#44), blocklist opinfo для inductor (#50), ограничение допуска ULP для linear cross entropy (#42), плюс серия CI (#20 разделение core/full, #21 исправление рабочего процесса CI, #40 продолжение разбора после сбоя Jenkins, #41 обход определения). Со стороны слияний на этой неделе новых нет: первое слияние за последние пять недель — PR #51 «Add riscv64 image locally», применён 10-17 в 00:04 методом squash, добавлен .ci/docker/build-riscv64-local.sh и скорректированы скрипты сборки и образа, попало в трёхдневное окно ежедневного отчёта понедельника.

Отдельно стоит зафиксировать перерыв в ритме: утром 10-23 новая волна перезаписи не появилась, по состоянию на утро 10-24 при проверке головной коммит по-прежнему 29259d90 от 10-22. Это первый пропуск с момента начала текущего цикла «ежедневного обновления базовой линии»; означает ли это переход ритма с ежедневного на выборочный, должен подтвердить следующий цикл. Семь открытых PR (#23 Enable XNNPACK, #35 для тестирования, #36 расширение тайм-аута, #38 временное отключение DataLoader, #43 упрощение патчей, #46 поддержка ATen RVV, #48 возможность RVV CPU) оставались открытыми всю неделю, ежедневно при переигровке пакетно обновляются временные метки, новых отзывов ревью нет, при этом #46 и #48 остаются двумя магистральными предложениями по продвижению возможностей RVV. Источники: ветка riscv, PR #51, PR #46, PR #48

Форк компилятора (llvm-project): восьмидневное молчание завершено, затем три смены базы подряд

Ветка riscv с 10-13 по 10-20 восемь дней подряд не имела пушей, головной коммит оставался 0fb2da86 (#31 понижение A100 HP/SP и pack/unpack, а также калибровка планирования). 10-21 в 23:00 произошла первая за восемь дней полная перезапись ветки, head стал dd05e5b5, SyncBots продвинул интеграцию с upstream до LLVM b3b5e33, по сравнению со старым head: впереди на 1769, позади на 26, различия в 300 файлах — это концентрированная переработка восьмидневного накопления upstream. В последующие два дня перезаписи продолжились: 10-22 в 23:00 head сменился на 58d62a47 (впереди на 275, позади на 26, по-прежнему 300 файлов), 10-23 в 23:00 — снова на 7c77126b.

Разница в масштабе трёх смен базы объясняет механизм: первый день — переработка накопленного, последующие два дня — обычная догоняющая синхронизация однодневного прироста. Ветка вошла в состояние «ежедневного небольшого сдвига базовой линии вперёд», сходясь с PyTorch в едином типе эксплуатации. Последовательность патчей сохранена полностью и порядок не изменён, от расширения BOSC AME (#16) до планирования A100 HP/SP и pack/unpack (#31, #32), включая расширение производителя Buckyball (#20), выравнивание с ISA ядра Pebble (#23), обновление дизайна xtame (#27), понижение встроенных IME (#30). Два PR FPGA-бэкенда (#25 BOSCAME FPGA, #28 xboscame FPGA) после каждой смены базы пакетно обновляют временные метки, остаются открытыми всю неделю, продвижения ревью нет. Источники: ветка riscv, PR #25, PR #28

triton-riscv: ночные сборки возобновились на один период и остановились, PR #85 по-прежнему единственное активное предложение

17-10 22:41 был влит PR #87 «Поддержка LLVM 24 и фиксация Buddy MLIR v0.1.0», а на следующий день в 08:57 автоматическим PR #88 синхронизации версий обновлён до ночной сборки buddy-mlir v0.1.1.dev20261017; 19-10 в 10:01 выпущена ночная сборка nightly/20261018-a305fb6 — первая новая сборка за семь торговых дней после 20261011-fe554ff от 12-10, включающая шесть колёс для CPython 3.12/3.13/3.14 и двух архитектур x86_64 и riscv64.

Всю оставшуюся неделю — никаких коммитов и новых релизов. Причина — прекращение поставок из вышестоящего проекта: у buddy-mlir после 17-10 нет новых ночных сборок, а triton-riscv лишён нового вышестоящего источника для синхронизации, обе стороны взаимно ожидают друг друга. Открытый PR #85 «Оптимизация softmax и matmul» последний раз обновлялся 19-10 в 07:55 и остаётся единственным активным предложением по оптимизации операторов; остальные открытые PR (#83, #82, #58, #56, #55, #54) в последний раз проявляли активность в середине-конце сентября. Источники: Nightly 2026-10-18-a305fb6, PR #85, PR #87

tilelang-riscv: тишина всю неделю после пяти коммитов 16-10

В этом репозитории 16-10 с 15:56 до 18:52 сосредоточенно прошли пять коммитов (спецификация формата генерации кода, поддержка семантики времени выполнения вышестоящих операторов, обновление адаптации времени выполнения TileOps, добавление CI релизов Buddy MLIR, сборка расширения Python в этом CI), после чего с 17-10 по 23-10 семь дней подряд не было новых коммитов. Открытый PR #4 «Add RVV vector mask and max reduction lowering» не обновляется с 28-09, PR #2 застрял на 16-06. Репозиторий по-прежнему находится в паузе «каркас CI и времени выполнения готов, покрытие операторов ждёт дополнения», и на этой неделе не появилось новых свидетельств, меняющих эту оценку. Из пяти коммитов заслуживает дальнейшего отслеживания коммит «поддержка семантики времени выполнения вышестоящих операторов»: он дополняет lane-local состояние между этапами сериализации, безопасное ragged copy, динамическое управление потоком, а также исправления преобразований FP8/FP4 — это предварительные условия покрытия операторов, а не сами операторы. Источники: список коммитов tilelang-riscv, PR #4

Техническая разведка и сайт: ruyiai-daily выпустил семь выпусков подряд, сайт лишь рутинно обновлён

Репозиторий технической разведки ruyiai-daily на этой неделе выпустил семь выпусков подряд (18-10 — 24-10, ежедневно между 06:16 и 07:16), сохраняя структуру из пяти разделов: экосистема PyTorch, LLVM-MLIR, Triton и TileLang, RISC-V, индустрия AI. В раздел RISC-V на этой неделе вошли: предложение runtime libcall для умножения в RISC-V, релиз Sail RISC-V 0.16, обновление кодирования Zvabd в Unified DB, патч прав execute-only для linux-riscv, дизайн блокировки KVM IMSIC, эмуляция RoPE для XiangShan AME, два предложения — read-only отображение ядра (PAGE_KERNEL_RO) и возвращаемое значение системного вызова, обновление путей загрузки C907/E907 в SyterKit, замечания ревью к патчу v7 PCIe для SpacemiT K3.

Данные самотестирования triton-riscv в комбинации LLVM 24 и Buddy MLIR 0.1.0 также зафиксированы этим репозиторием: check-buddy — 618 пройдено, triton-shared — 290 пройдено, 9 ожидаемых падений; среди 3829 позиций локального покрытия FlagGems остаётся 10 нативных падений, часть примеров требует нативного окружения RVV. В оригинале отмечено, что это локальные результаты автора, и по ним нельзя судить о совместимости полных моделей на стороне RISC-V.

Репозиторий сайта ruyiai-stack.github.io на этой неделе получил девять коммитов, из которых восемь — ежедневное рутинное обновление данных участников (chore: update contributors.json [skip ci]), а ещё один — обновление руководства для участников от 17-10 (PR #80), без изменений содержимого. Источники: ruyiai-daily, PR #80 репозитория сайта


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

Основной репозиторий openRuyi: 637 коммитов за одну неделю, переход от «закрытия зависимостей» к «дополнению спецификаций»

По естественным дням статистика основного репозитория openRuyi за 10-19 — 10-23 составляет соответственно 221, 137, 51, 109 и 119 коммитов, всего за пять дней 637 коммитов (ещё 6 коммитов ранним утром 10-24 не включены в период). Распределение по авторам: Leetfs — 333 коммита, Jingwiw — 152, KimmyXYC — 36, cl2t — 29, HNO3Miracle — 28, misaka00251 — 21, purofle — 19, ещё несколько человек — по десятку с лишним коммитов. Все коммиты имеют префикс SPECS:, то есть определения пакетирования дистрибутива; ни один не касается специализированного обратного портирования для архитектуры.

Эволюцию можно разделить на три этапа. Первый этап — 221 коммит 10-19, из которых 211 связаны с Rust (добавлено около 200 пакетов), охватывающих криптографию (botan 0.10, twofold, x25519-dalek 2, pkcs1 0.7, secrecy 0.10), сериализацию (toml 0.6/0.18/0.19, yaml-rust2), сжатие (brotli 7, alloc-stdlib), регулярные выражения (regex 1.13.1 и automata/syntax), структуры данных и обработку текста в терминале; в тот же день продвигался стек сетевого хранения — dpdk 26.07 (включая обратное портирование улучшений поиска lpm и fib для RISC-V), spdk 26.09, liburing 2.15, iproute2 7.2.0, btrfs-progs 7.1, nvme-cli 3.1; в 20:49 дополнительно добавлены два crate, имеющих непосредственное применение для RISC-V: rust-riscv-decode 0.2 (декодирование инструкций) и rust-panic-halt 1 (остановка при аварии на голом металле).

Второй этап — параллельная работа на трёх языках с 10-20 по 10-22. 137 коммитов 10-20 имеют симметричную структуру: по 42 на Rust/Go/Python: на стороне Python 28 коммитов приходятся на fsspec и бэкенды различных облачных провайдеров (s3fs, gcsfs, adlfs, ocifs, dropboxdrivefs, smbprotocol, cloudpathlib) и сопутствующие зависимости аутентификации (azure-identity, msal, google-cloud-storage, google-auth-oauthlib, proto-plus, crc32c и др.); на стороне Go — в основном завершение удаления vendor из minio и компоненты Prometheus/Kubernetes; на стороне Rust — сосредоточение на семействе windows-0.61, семействе zerocopy/rkyv и семействе cap-std/io-lifetimes, вместе с добавленным в тот же день python-uv-build, что указывает на замыкание зависимостей сборочного бэкенда uv. 51 коммит 10-21 продолжает это направление: на стороне Go добавлены три компонента k8s и пути импорта moby-sys, smarty-assertions, а sonobuoy, umoci, go-mtree переведены на настоящую сборку «build without vendored dependencies»; на стороне Rust добавлены 23 пакета rust-uv-* и python-uv-build повышен до 0.13.4.

Третий этап — нормализация 10-22 — 10-23. Из 81 коммита 54 принадлежат Jingwiw, и все изменения одного типа: «Add source checksums and use %autochangelog», в алфавитном порядке имён пакетов охватывающие диапазон от luksmeta до xmltoman; такие изменения добавляют в spec контрольные суммы исходных файлов и переводят журнал изменений на генерацию через %autochangelog, не меняя версию и поведение ни одного пакета. Остальные 27 коммитов — существенные обновления, наиболее концентрированна группа безопасности: go 1.27.3, php 8.5.12, nss 3.131.1, ca-certificates-mozilla 2.92, rustup 1.29.2, python-pip 26.2.2, nodejs 24.22.1, python 3.14.9, python-pillow 13.0.0, nginx 1.31.8. С 22:47 10-23 по 00:54 10-24 дополнительно добавлена партия пакетов Go (go-gopkg-gorp.v1, go-github-ziutek-mymysql, go-github-denisenkom-go-mssqldb, серия go-github-gobuffalo-* и др.). Источники: список коммитов, PR #1361 зависимости kubecomps, PR #1486 python-uv-build

PR openRuyi: около 37 слияний за три дня, крупный пакет CVE разделён и переотправлен

По записям ежедневного отчёта: 20.10 влито десять коммитов, 21.10 — пять, 22.10 — 22. Десять коммитов 20.10 по порядку: #1128 (модуль Prometheus 3.13), #1342 (CVE Part 1), #1461 (graphql-core 3.3.0), #1355 (первая партия Go-зависимостей kubecomps), #1462 (buildx), #1344 (CVE fsspec), #1459 (minio, удаление vendor), #1372 (moniker), #1463 (dropwatch), #1458 (uwsgi). Из пяти коммитов 21.10 #1464 sonobuoy и #1466 umoci — реализация удаления vendor, кроме того #1361, #1136, #1486 python-uv-build 0.13.4 (58 файлов, +5640/-201).

Обработка CVE — пункт недели, лучше всего иллюстрирующий изменение процесса: #1341 «CVE Vulnerability Fixes (Part 0)» закрыт с 50 файлами и +997/-4788, но не влит; в тот же день открыты два продолжающих коммита #1468 и #1469, что показывает: исходный крупный коммит был разбит на части и подан заново; исправление CVE fsspec #1344 влито отдельно. 22 влитых коммита 22.10 практически обнулили очередь из девятнадцати рассматриваемых обновлений безопасности; четыре версии openjdk вышли двумя партиями (сначала 27.0.1.0.2.1, 25.0.5.8, 21.0.13.9, 17.0.21.9, затем дополнительно 17 и 21 с меткой [security-fixes]). По состоянию на утро 23.10 в открытой очереди всё ещё 77 коммитов.

В очереди стоит отслеживать группу однонаправленных предложений: qemu включает функцию GUI-тестирования (#1421), добавление virglrenderer (#1415), fwupd в ovmf (#1436), добавление ydotool (#1457), исправление конфликта man-страниц xorriso (#1489), а также WIP-коммит кросс-тулчейна riscv64 (#1490, цель — сборка тулчейна riscv64 прямо на x86-хосте). Пять пунктов относятся к виртуализации, графической виртуализации, обновлению прошивки, автоматизации ввода и инструментарию для образов оптических дисков; вместе они указывают на «запуск полноценного рабочего стола на RISC-V с автоматизированной проверкой». Источники: PR #1341, PR #1415 virglrenderer, PR #1490 кросс-тулчейн

Менеджер пакетов ruyi: 0.53.0 держится всю неделю, 0.54.0 назначен на конец октября

GitHub Release и PyPI сохраняют 0.53.0 (выпущен 24.09), последний коммит в главной ветке остановился на 25.09 (слияние #503), за всю неделю ни новой версии, ни новых коммитов; последняя предварительная версия на GitHub по-прежнему 0.54.0-alpha.20260918 от 18.09, после этого месяц alpha не выпускалась.

Выпуск 079 назвал прямую причину замедления: большинство членов команды разработки и тестирования на прошлой неделе присутствовали на саммите RISC-V China в Шэньчжэне. 0.54.0 из-за корректировки цикла релизов ожидается к официальному выпуску в конце октября; три пункта в разработке не изменились — проверка ABI-совместимости пакетов с текущей системой, упаковка для macOS большего числа официально поддерживаемых пакетов, адаптация тулчейна для SpacemiT K1/K3. Выпуск также даёт обещание по поддержке репозитория пакетов: содержимое ruyi update совместимо с тремя последними официальными версиями. До конца месяца около недели; точки наблюдения — выйдет ли сначала alpha и в какой форме будет поставлена адаптация K1/K3: пакетом тулчейна или предустановленной конфигурацией. Источники: ruyi Releases, PyPI ruyi, раздел менеджера пакетов выпуска 079

packages-index: сбой синхронизации источника ISCAS, за всю неделю ни одного обновления пакетов

Последний коммит репозитория по-прежнему 13.10 (добавлен зеркальный репозиторий ubuntu-old-releases, исправлена версия ubuntu для SiFive Unmatched), за всю неделю ноль коммитов. Выпуск 079 объяснил причину молчания: последние две недели источник пакетов ISCAS сталкивается с проблемами синхронизации данных, уже собранные пакеты не успевают обновиться на публичном зеркале, поэтому обновлений пакетов пока нет.

Это объясняет наблюдавшуюся на этой неделе комбинацию «в менеджере пакетов нет новых версий, в индексе нет новых пакетов» — дело не в остановке разработки, а в заторе на канале релизов. Прямое влияние на пользователей: при установке пакетов через ruyi по-прежнему виден старый набор; это проблема на стороне сервера, локально ничего проверять не нужно. Источники: packages-index, раздел обновления ресурсов выпуска 079

Дистрибутивы и зеркала: 2026.09 остаётся последним, ruyi-imager завершил четыре изменения предложения K3

На странице новостей дистрибутива openRuyi всю неделю нет новых материалов, анонс релиза 2026.09 (30.09) остаётся последним, страница 2026.10 ещё не запущена. При месячном ритме версия за октябрь уже вошла в окно конца месяца, а основной репозиторий всё ещё массово доукомплектовывается пакетами; момент релиза — следующая точка наблюдения.

На этой неделе в ruyi-imager десять коммитов, разделённых на три части: 21.10 три коммита за авторством Glavo — версии зависимостей Gradle сведены в общий version catalog, зависимости и встроенные инструменты обновлены до стабильных поддерживаемых версий, TOMLJ обновлён до 2.2.0 с упрощением парсинга; 22.10 три коммита улучшают взаимодействие (индикатор активности перенесён в фиксированную строку состояния с отделением ошибок обновления, элементы настроек выровнены и обратная связь об обновлении сжата, на шаге выбора зеркала сразу предоставляется действие загрузки, PR #12); 23.10 четыре коммита переходят к возможностям и инженерии (вывод CLI выровнен по кодировке консоли с сохранением JSON в UTF-8, добавлена поддержка предложения UFS и UEFI для SpacemiT K3, в каталоге и GUI сохранены связи всех целей зеркал, при загрузке по каталогу сообщения репозитория парсятся только один раз).

Также прояснилась ситуация с отслеживанием канала ночных сборок: пакет, собранный 19.10 в 22:15, не был сразу пересобран после трёх пушей 21.10; упаковка 21.10 в 21:31 завершилась только 22.10 в 05:38 — задержка около семи часов, что говорит о том, что автosборка всё ещё срабатывает, но с задержкой. Источники: список коммитов ruyi-imager, канал ночных сборок, страница новостей openRuyi

Технические пункты двухнедельного отчёта 079: четыре линии GCC / LLVM / V8 / Go

GCC, три пункта: перебазирована поддержка Zvdota/Zvbdota и исправлены проблемы, выявленные при перебазировании (патч уже отправлен в patchwork); для расширения Ztt добавлена поддержка Md; поддержка расширения P обновлена до версии 0.6. В LLVM из двенадцати коммитов девять уже влиты, их можно сгруппировать в четыре блока: профили RVA23.1 и RVB23.1 переведены в статус официальных (#234064); GlobalISel обрабатывает усечение f16 через Zfhmin и дополняет легализацию половинной точности (#231370); перегрузка LLT для невыровненных скалярных обращений к памяти позволяет разворачивать memcpy более широкими инструкциями (#232183); intrinsics расширения P для mulq/умножения с накоплением старших битов/sati·usati/Packed Pair и упакованного умножения (#232316, #232340, #233769, #232202, #232612), плюс исправление ограничения RV64 для __builtin_riscv_rev16_64; два коммита всё ещё на ревью: улучшение InstCombine для вывода диапазона слагаемых из диапазона суммы (#231357) и генерация через TableGen с выбором вызовов векторной библиотеки, исправляющая выбор SLEEF для RISC-V (#231739).

В V8 влиты четыре коммита: на riscv64 вход бинарного поиска switch всегда знаково расширяется, записи доверенной таблицы указателей Sandbox получают метку, Liftoff отслеживает константы f32 и 32-битные f64 (портирован апстрим-коммит), трамплин входа интерпретатора получает проверку максимального числа аргументов. В Go предложено шесть основных CL, два из них — аппаратное ускорение sha256 и sha512 на riscv64 через zvknha/zvknhb — уже влиты, остальные касаются удаления лишних MOVDnop, оптимизации проверки битов с помощью регистровых значений сдвига, поддержки ассемблера Zfa, перевода riscv_hwprobe на vDSO. В базовых библиотеках C: glibc портировала sinh, sinhf, sinpi в существующий фреймворк libmvec, newlib портировала acosf, logf, asinf, asinhf, asinpif, atanf в фреймворк векторной математики. Источники: файл выпуска 079, коммит GCC P 0.6 883d7da2, RVA23.1 PR #234064

Ветка компилятора и симулятора: ветка AME добавляет Ztt v0.6, QEMU завершает две ветки

В ветке AME репозитория ruyisdk/llvm-project на этой неделе всего два коммита: 10-19 13:32 слит PR #170 «Add AME CI», добавлен 45-строчный .github/workflows/ruyi-riscv.yml, который собирает LLVM с поддержкой RISC-V в ветке AME и запускает целевые тесты компилятора, генерации кода, ассемблера и семантики; 10-23 17:15 (после окна ежедневного отчёта) добавлена начальная поддержка spec v0.6 матричного расширения Ztt — это первое подключение семейства инструкций Ztt к ветке AME. Ранее проверка этой ветки выполнялась вручную, с этой недели регрессионные тесты включены в GitHub Actions.

На стороне QEMU две ветки синхронно завершаются: финальная партия P-расширения v0.6 в p-dev (12 коммитов, 10-21 16:35) и реализация AME v0.6 от Damo Academy в ame-0.6 (видимые коммиты по состоянию на 10-16, на этой неделе ассемблер включён в выпуск). Официальное описание ame-0.6 — завершение разработки основных функций и архитектурный рефакторинг, поддержка 32/64-битного пользовательского и системного режимов, охват матричных вычислений, смешанных целочисленных и операций с плавающей запятой, перемещения данных и преобразования типов, поддержка многоядерного общего бэкенда, миграции состояний и отладки; видимое содержимое коммитов в ветке — реализация семейства инструкций Ztt: декодирование decodetree, helper семейства инструкций, раскрытие состояния GDB, раскрытие экспериментальной конфигурации CPU, поддержка disas, а также четыре группы тестов: числовые/тензорные операции, управление и общий бэкенд, память и интеграция с отладчиком, конфигурация и миграция. Обе линии основаны на одном и том же upstream v11.1.0, и результат совпадает: превратить ещё не запущенные в массовое производство расширения в работающую программную базовую линию. Источники: AME CI PR #170, коммит Ztt v0.6 29fefa0f, qemu p-dev, qemu ame-0.6

Линия ядра и прошивки: семидневное молчание нарушено миграцией фреймворка расширений производителя

linux-xuantie-kernel (ветка linux-6.6.36) первые четыре дня недели не имел коммитов, последний коммит остановился на 10-16 в партии cpufeature и hwprobe — добавление Ziccamoa, Ziccif, Ziccrse, Za64rs и Zicclsm в cpufeature и hwprobe, а также выделение диапазона ID для приватных расширений в hwcap с выравниванием по upstream-нумерации. 10-23 11:23 добавлен коммит «riscv: Migrate T-Head extensions to the vendor extension framework», который целиком переносит ранее переименованные ключи расширений производителя XUANTIE во фреймворк расширений производителя ядра, продолжая два шага: унификацию имён ключей от 10-15 и выравнивание ID от 10-16, — чтобы именование, раскрытие и путь регистрации приватных расширений XuanTie были унифицированы под правилами upstream.

Линия прошивки всю неделю по-прежнему молчит: последний релиз ruyifirmware остаётся «Ruyi Firmware 20261015» от 10-15, последний коммит edk2-ruyi остановился на 10-15 на странице системной информации K3, обе линии более семи дней без движения. В репозитории сайта openRuyi 10-22 21:35 появился один содержательный коммит (добавление метки experimental к документации и корректировка описания метки), что согласуется с практикой основного репозитория помечать часть пакетов как экспериментальные, — это показывает, что дистрибутив превращает «экспериментальность» из внутреннего соглашения в публично видимую классификацию. Источники: коммит ядра 92c3f534, коммит cpufeature 8fd30253, ruyifirmware Releases, репозиторий сайта

Матрица поддержки: два отчёта — Duo S с двойной системой и RDC2022-D1s

support-matrix на этой неделе: пять коммитов. 10-16 два коммита добавили отчёты тестирования Zephyr и RT-Thread Smart для Milk-V Duo S; 10-23 в 10:47 три коммита добавили базовый отчёт тестирования RT-Thread для RDC2022-D1s (Allwinner D1s), включая первый коммит версии и правки по итогам двух раундов ревью. Направление покрытия плат RISC-V начального уровня через RT-Thread и Zephyr продолжается; отчёт о заводской прошивке RT-Thread Smart 5.0.0 для RDC2022-D1s ранее уже был включён в выпуск 079. Источник: список коммитов support-matrix


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

Векторные репозитории данного стека: тишина всю неделю, последняя активность остановилась на периоде с февраля по июль

VecIntrinBench остановился на 02-13, IntrinTrans — на 06-25, форк FBGEMM — на 07-13, cpuinfo — на 05-20, torq-tile — на 04-09, harness — на 10-10; во всех шести репозиториях за всю неделю не было коммитов. Линия проверки upstream также тиха: последний коммит riscv-arch-test остановился на 09-08 (примечания к выпуску ACT 4.1 и исправления workflow), в основном репозитории XiangShan в рамках проверки данной темы также нет коммитов внутри окна (его изменения CoupledL2 с 10-19 по 10-20 см. в следующем пункте).

Все содержательные достижения векторного направления на этой неделе пришли извне данного стека: повышение уровня точности RVV MMA в upstream IREE (см. следующий пункт), три слитых коммита в тестах архитектуры RISC-V и препринт о рефакторинге длинновекторного FlashAttention. Оценка данного стека не меняется — на стороне векторных бенчмарков уже несколько месяцев нет новых данных, действия на стороне операторов сосредоточены в двух компиляторных фронтендах triton-riscv и tilelang-riscv, и ни один из этих двух фронтендов на этой неделе не имеет новых коммитов.

IREE: RVV-матричное умножение с накоплением прошло один уровень точности за два дня, однопоточный режим уже обгоняет mmt4d ukernel

10-19 выпущен v3.13.0, в бэкенде CPU добавлен inner_tiled MMA для RISC-V V f32 vfmacc.vf (PR #24933), одновременно масштабируемая векторизация LLVMCPU изменена так, что теперь обязательно нужно указывать --iree-llvmcpu-vscale-range, а при наличии функции +zvl*b берётся большее из двух нижних значений. 10-21 в основную ветку снова попала версия f16 (PR #25000): переиспользуются тот же lowerRiscvVFmaccLike и вынесенная вверх легализация аккумулятора, Tile N берётся как vlen/8, кодирование выбирается по трём уровням в зависимости от доступности расширения — при f16 умножить на f16 даёт f16 и наличии +zvfh используется vfmacc.vf; при f16 умножить на f16 даёт f32 используется расширенный vfwmacc.vf; при наличии только +zvfhmin два пути соответственно идут через «аккумулятор extf до f32, f32 vfmacc, truncf обратно» и «оба операнда extf, затем f32 vfmacc». При VLEN=256 модель стоимости даёт intrinsics_m 14, 7 и 6 соответственно.

Из выводов о производительности есть только один, ориентировочный: на X60 (VLEN=256) однопоточный inner_tiled при обеих кодировках — нативной f16 и vfwmacc — уже быстрее mmt4d ukernel, при 4 и 8 потоках большие формы всё ещё медленнее (трекер #24932). В тот же день ещё один PR #24849 выравнивает tile диспетчеризации масштабируемых векторов по base * vscaleMax, что является обычной легализацией на пути VLA — размер блока должен делиться на целое кратное фактического аппаратного VLEN, иначе на оборудовании с узким VLEN возникнет деградация хвостовых блоков. 10-22 в окне у IREE не было специализированных коммитов по RISC-V, только интеграция upstream LLVM в новую базовую линию и ужесточение проверки регистров собственной виртуальной машины байткода. Источник: IREE v3.13.0, PR #25000, PR #24933, PR #24932, PR #24849

Верификация и кэш: три коммита в riscv-arch-test, CoupledL2 в XiangShan разделяет банки по set index

Тестирование архитектуры RISC-V: 19–20 октября объединено три коммита: покрытие точек A-расширения триггеров Sdtrig и покрытие icount для трёх режимов Sm/S/U; в набор S добавлены S_F/S_V/S_VF, покрывающие привилегированные уровни, фактически используемые операционной системой; векторные инструкции расширены на все допустимые SEW и дополнены выбором LMUL для vrgatherei16 при SEW=8 и fault-only-first. Все три коммита вместе продвигают поверхность верификации к «режим S + все SEW», что даёт командам, запускающим операторы RVV на K1/K3, пригодную базовую линию регрессии.

На стороне XiangShan CoupledL2 разделяет каталог и банки SRAM данных по set index, ограничивает остановки MCP2 последовательными обращениями к одному банку и приостанавливает приём новых предвыборок, когда RequestBuffer заполняет 2 слота (PR #36, объединён 19 октября, значение разделения банков по умолчанию — 2, с возможностью отката к 1); основной репозиторий затем обновляет указатель XSCache, включая это изменение (PR #6738). Параллелизм кэша и допуск предвыборок настраиваются одновременно — это проверяемое изменение микроархитектуры. Источники: riscv-arch-test PR #2413, PR #2791, PR #2858, XSCache PR #36, XiangShan PR #6738

Статья: перестройка FlashAttention на длинновекторном процессоре, измеренное ускорение от 1,84 до 2,08 раза

arXiv 2610.29489v1 «Reorienting the Vector Axis: Restructuring FlashAttention for Long-Vector Processors» (Emmanuel Irabor, Marc Casas) переносит ядро CPU FlashAttention из PyTorch на RISC-V CPU с 2KB векторными регистрами, сначала давая нелицеприятную базовую линию: достигается лишь 16,2% пиковой пропускной способности по плавающей точке.

Анализ причин конкретен: исходное ядро продвигается построчно по строкам запросов, умножение на V векторизуется вдоль 64-элементной размерности головы, построчные максимум и сумма softmax являются редукциями «схлопывания всего регистра в скаляр», а полиномиальные коэффициенты программной экспоненты ещё и конкурируют с данными tile за векторные регистры, что приводит к переполнению в стек; три фактора в сумме не позволяют поднять утилизацию векторных регистров. Оба изменения не меняют алгоритм и численные результаты: во-первых, tile оценок и текущий выход транспонируются вместе, так что запросы оказываются на линейно непрерывной оси, и тогда единственный параметр «сколько запросов помещается в один tile» единообразно определяет длину вектора всех участков ядра, а две редукции естественно исчезают; во-вторых, полиномиальные коэффициенты переносятся в скалярные регистры, устраняя переполнение, а число векторных инструкций доступа к памяти в softmax сокращается на 78,7%.

Измерения: при размерности головы 64 оба изменения вместе сокращают такты всего ядра до ускорения от 1,84 до 2,08 раза, утилизация плавающей точки растёт с 16,2% до 29,7%; на FPGA той же конструкции порядок двух изменений согласуется, а выигрыш выше — до 2,71 раза. Значение для этого стека — в методе, а не в цифрах: адаптивность длины вектора и давление на регистры являются структурными проблемами triton-riscv и tilelang-riscv при понижении RVV, а не вопросом «есть ли intrinsics»; «подбор числа запросов в tile под машину» в статье и выбор Tile N как vlen/8 в IREE относятся к одному классу решений и допускают прямое сравнение в одинаковых терминах. Источник: arXiv 2610.29489

Разведка по ядру и пути загрузки: предложение read-only отображений, состояние загрузки C907/E907, патч K3 PCIe v7

Сторона технической разведки на этой неделе отметила четыре пункта, заслуживающих фиксации. Во-первых, предложение об определении PAGE_KERNEL_RO в linux-riscv указывает, что при отсутствии этого определения RISC-V откатывается к записываемому PAGE_KERNEL, из-за чего отображения, которые должны быть только для чтения, например HugeTLB vmemmap, сохраняют право записи; предложение приводит воспроизведение на QEMU virt и сравнение таблиц страниц до и после исправления. Во-вторых, путь перезапуска системного вызова требует проверки полного возвращаемого значения, что исправляет проблему усечения возвращаемого значения. В-третьих, SyterKit в образе C907 устанавливает векторное состояние mstatus в initial, приводя состояние загрузки в соответствие с RVV-кодом, скомпилированным в образ; E907 же перед включением кэша сначала настраивает системное отображение. В-четвёртых, патч SpacemiT K3 PCIe v7 получил новые замечания рецензентов, ставящие под сомнение подход с использованием PHY bulk API для одновременного управления всеми PHY нескольких портов, указывая, что каждый порт имеет собственный PHY и PERST#, и модель ресурсов требует повторного обоснования. Источники: выпуск ruyiai-daily от 10-19, предложение PAGE_KERNEL_RO, патч K3 PCIe v7


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

0.1.0 до 0.1.1: два релиза за два дня, оба изменения направлены на готовность к поставке

buddy-mlir выпустил 0.1.0 в 10-16 00:53 и 0.1.1 в 10-18 06:26 — между двумя официальными релизами прошло около двух дней. В 0.1.1 относительно 0.1.0 всего два коммита, 24 файла, около +896/-54 строк: первый — #989 «buddy-server добавляет кросс-компиляцию серверной части для RISC-V», добавляющий путь кросс-компиляции riscv64 для buddy-server, а также вводящий реализацию дескриптора списка runtime-зависимостей (RaxDependenciesHandle, включая модульные тесты и тестовый плагин), псевдореализацию обнаружения плагинов и транскрипционные тесты, вместе с этим упрощающий buddy-cli (чистое сокращение на 40 строк) и обновляющий документацию по окружению RVV; второй — #925 «Добавлен workflow publish-models», добавляющий конвейер публикации GitHub Actions и скрипт публикации моделей в Hugging Face (около 313 строк), благодаря чему артефакты моделей могут отправляться на публикацию напрямую из CI. Вместе эти два коммита решают две стороны задачи: «серверная часть может попасть на RISC-V машину, артефакты моделей могут выйти из CI», что также объясняет, почему релиз возможен всего через два дня — основное содержание было заморожено ещё в 0.1.0.

Хронологию нужно рассматривать вместе, чтобы картина была полной: 0.0.11 выпущен 09-26, до 0.1.0 прошло почти три недели; от 0.1.0 до 0.1.1 — всего два дня. После перехода через крупную версию темп сменился на мелкие быстрые шаги, а ночные сборки продолжают выполнять роль ежедневной проверки сборки. Источники: BUDDY MLIR 0.1.1, различия 0.1.0 до 0.1.1, PR #989, PR #925

Пауза в линии релизов: целая неделя без коммитов и ночных сборок, привязка нижестоящих проектов застыла на неделю назад

После 10-18 в основной ветке buddy-mlir нет новых коммитов, последний — #925 от 10-16 09:35; в окне мониторинга 0 коммитов, 0 релизов. Ночные сборки после nightly/v0.1.1.dev20261017 (07:24) от 10-17 остановились на два дня, а затем всю неделю (10-19 по 10-23) пять торговых дней подряд не было вывода — первый длительный простой после релиза 0.1.1.

Очередь PR на рассмотрении также не обновлялась в окне мониторинга, последние три остановились на 10-17 — 10-18: #994 «Интерфейс buddy-server приведён в соответствие с llama-server» (10-18 02:41), #993 «Добавлен оператор tile.upsample_nearest и шаблон распознавания» (10-17 08:04), #992 «Исправлено широковещание каналов BN» (10-17 02:04). Кроме того, #928 «Измерение покрытия PyTorch и проверка CPU-уровня 106 операторов» открыт с 09-16 и является базовым предложением по критериям покрытия операторов.

Привязка нижестоящих проектов: ночные сборки triton-riscv зафиксированы на 0.1.1.dev20261017

Последний коммит в основной ветке triton-riscv — это PR #88 от 10-18 08:57, содержащий привязку нижестоящей зависимости к ночной сборке buddy-mlir от 10-17 nightly/v0.1.1.dev20261017; выпущенная 10-19 сборка nightly/20261018-a305fb6 была собрана именно на основе этого обновления. Поскольку после 10-17 у buddy-mlir нет новых ночных сборок, ночным сборкам triton-riscv не хватает нового апстрима, за которым можно следовать, и обе стороны взаимно ожидают друг друга — восстановление ежедневного выпуска этой цепочки зависит от того, когда buddy-mlir перезапустит рабочий процесс nightly.

Следует также зафиксировать подготовку двухнедельной давности: партию доработок по обеспечению работоспособности на RISC-V с 10-13 по 10-16 (исправление цели RISC-V в Makefile #986, добавление кросс-компиляции для плат в buddy-cli #987, упрощение процесса кросс-компиляции #975, добавление кросс-компиляции серверной части RISC-V в buddy-server #989, установка riscv64-версии torch из индекса пакетов Ruyi при сборке manylinux riscv64 с доустановкой libsndfile), а также этапные цели после 0.1.1 — включение в регулярный процесс сквозных проверок наподобие «запуск декодера Qwen3-VL-30B-A3B на K3». Пауза этой недели выглядит скорее как передышка после завершения этапа, а не смена направления. Источники: список коммитов buddy-mlir, Releases, PR #987, PR #986


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

Шестой саммит RISC-V в Китае: стенд D15 и семь демонстраций на реальном оборудовании

Саммит проходил с 10-18 по 10-20 в выставочном центре Шэньчжэня (Футянь) и длился три дня. RuyiSDK был представлен двумя техническими докладами, шестью техническими постерами и отдельной выставочной зоной D15; на месте присутствовали 10 членов команды, офлайн-аудитория специалистов превысила 3600 человек.

Два доклада — «Методы портирования курсов по RISC-V и развитие экосистемы RuyiSDK» (Ло Юньсян) и «Освоение векторного расширения RISC-V: практическая оптимизация языка Go на основе RVV» (Мэн Чжо, Чжу Цзюньсянь). В первом предложены три основные линии — «открыть дверь, проложить путь, обучить людей»; подход состоит в том, чтобы визуализация симуляции работала на хосте или в облаке, а драйверы и инференс опускались на плату; второй сосредоточен на инженерных вопросах подключения сред исполнения управляемых языков к RVV, включая адаптацию длины вектора, ассемблерные заглушки и встроенную оптимизацию.

Информативность шести постеров сосредоточена в цифрах: индекс метаданных пакетного менеджера содержит более 328 программных пакетов, более 265 системных образов, охватывает 41 отладочную плату, опубликован на PyPI и подключён к репозиториям RevyOS и Bianbu; кроме того, RuyiTuner (поиск последовательностей оптимизации компиляции генетическим алгоритмом), графическое тестирование IDE на основе AI, подключение Sail и Pydrofoil к difftest XiangShan (около 800 строк слоя адаптации вместо NEMU), инструментальная цепочка Sail-RISCV-WASM, работающая в WebWorker браузера, и реорганизация курса по RISC-V (821 видео, 1,441 млн просмотров, 26 тыс. подписчиков).

Самым убедительным из семи демонстраций на реальном оборудовании было сравнение ускорения OpenCV на RVV: на одной и той же аппаратной платформе при сравнении версии, установленной через ruyi, со встроенной в дистрибутив OpenCV операторы фильтрации изображений и извлечения признаков показали ускорение в 3–8 раз. Эта цифра превращает «сколько выгоды может дать уровень векторных библиотек» из оценки в воспроизводимое измерение на месте — и это единственная цифра производительности с контрольной группой среди всех материалов недели. Кроме того, «испытание ChipMotion» использовало RuyiSDK IDE в сочетании с CyberCAM и бортовым KPU платы K230 для интерактивного распознавания жестов; на месте 4 разработчика установили каналы для сотрудничества. Источники: обзорный пост саммита #2893

Двухнедельный отчёт и форум: выпуск 079 утверждён, обзор саммита и практический курс 02 добавлены в архив

На форуме на этой неделе появились только две новые темы, обе 10-22: обзорный пост саммита в 11:31 (#2893) и «Практический курс RISC-V Linux 02 Достаточные основы языка C [конспект]» (#2894) в 20:58. Последний представляет собой минимальный набор языка C для встраиваемых сценариев: от типов и переменных, управляющих потоков до указателей, массивов, структур, времени жизни хранения, строк и битовых операций, с сквозным примером управления вентилятором и чтения температуры, а также указанием типичных ошибок вроде «усечения при целочисленном делении с фиксированной точкой» и «указания смысла констант через const»; вместе с конспектом выпуска 01 по окружению и инструментальной цепочке этот курс уже имеет материалы для самостоятельного изучения по двум занятиям подряд.

Еженедельный отчёт, выпуски 078 (10-13) и 079 (10-22), составляют фиксированную линию вывода этой недели. Три пустых раздела выпуска 079 (вступительное слово, тестирование версий и оставшиеся вопросы, официальный сайт и документация) совпадают с выпуском 078, что говорит о том, что завершающая стадия редакционного конвейера по-прежнему выполняется в последний день. При проверке с 10-23 по утро 10-24 новых тем на форуме не появилось, последними остаются два поста от 10-22. Источники: последние темы форума, практический курс 02 #2894, файлы выпуска 079

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

Три страницы официального сайта www.ruyiai.org在整个 неделе по пяти снимкам оставались без изменений: index.html 7246 байт, индекс 3 записи; blog.html 5632 байта, индекс 2 статьи («Адаптация Triton для RISC-V», «Практика PyTorch RISC-V CI»); docs.html 10843 байта, индекс 23 главы, контрольные суммы sha256 всех трёх страниц не изменились. На этой неделе не появилось новых статей в блоге и новых глав документации, обе линии — блог и документация — по-прежнему стоят на прежних результатах.

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

Внешние новости и отраслевая сторона: целевые запросы не дали результатов, V100 и E908A попадают в поле зрения

Целевые запросы Google News по RuyiSDK, RuyiAI, openRuyi на китайском и английском на этой неделе продолжали не давать результатов, канал обычных запросов работает нормально (одновременные запросы по RISC-V каждый раз возвращают десятки записей), что говорит об отсутствии материалов в СМИ по содержательной стороне, а не о сбое сбора. На странице новостей дистрибутива openRuyi новых материалов нет, объявление 2026.09 остаётся последним. На arXiv на этой неделе появился один напрямую связанный препринт (рефакторинг FlashAttention с длинными векторами, см. главу 4).

На отраслевой стороне есть две новости, связанные с обликом платформы. 10-19 компания SpacemiT на саммите представила серверный RISC-V процессор V100: 46-ядерная гибридная архитектура (6 ядер XiangShan Kunminghu V2R2 ускоряют 40 ядер X100), до 2.4 ГГц, двухсокетное когерентное соединение до 92 ядер, 8 каналов DDR5-4800 и 52 линии PCIe 5.0 на одном чипе, в комплекте три типа готовых систем — вычислительная C2201, ИИ-вычислительная G5201, системы хранения S5236; сообщается, что он прошёл все пункты тестирования по спецификации BRS и поддерживает прямую установку openEuler, openRuyi, openKylin, Debian, Ubuntu, Fedora, Red Hat, Rocky и других дистрибутивов — это первый случай, когда openRuyi появился в списке совместимости серверной платформы, предоставленном производителем. 10-19 XuanTie подразделения DAMO Academy представила автомобильный усиленный CPU IP E908A, назвав его первым RISC-V CPU IP, одновременно достигающим ASIL-B и ASIL-D, с единичной метрикой безопасности SPFM, впервые превысившей 90%, и указала целевую производительность следующего поколения C950A на уровне 5-кратной от текущих автомобильных продуктов.

Обе новости относятся к сигналам спроса, а не к текущим задачам: V100 превращает UEFI, ACPI, SMBIOS в жёсткие требования, что отличается от текущего пути образов плат, инструментальных цепочек и матрицы поддержки, ориентированного на K1/K3; внедрение E908A зависит от комбинации инструментальной цепочки и RTOS с сертификацией функциональной безопасности, тогда как квалификация компилятора, тестовые наборы и система документации, связанные с сертификацией безопасности, ещё не появились в публичной дорожной карте. Источники: Phoronix: SpacemiT V100, LinuxGizmos: 46-ядерный серверный CPU, IT之家: XuanTie E908A


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

Единица упаковки меняется с «дерева исходников» на «пакеты зависимостей», на этой неделе завершён перенос центра тяжести с закрытия замыкания на дополнение спецификаций

Основная линия 637 коммитов этой недели одна: заменить «vendor вместе с исходниками» на «упаковку по зависимостям». На стороне Rust дополнено замыкание crate (включая 23 пакета rust-uv-* для сборочного бэкенда uv), на стороне Python дополнены все основные облачные бэкенды fsspec, на стороне Go выполнен отказ от vendor и поочерёдно восстановлены необходимые после удаления каталогов пути импорта. Сам порядок показывает, что условием завершения отказа от vendor является не удаление каталога vendor, а возможность разрешения каждого зависимого модуля в дистрибутиве по исходному пути импорта — без дополнения путей импорта удаление vendor приведёт к прямой ошибке компиляции.

Доминанта 10-22 сместилась с «получится ли собрать» на «можно ли это аудировать»: 54 коммита дополнительных контрольных сумм источников и переход на %autochangelog, охватывающих диапазон имён пакетов от m до x. Контрольные суммы источников определяют верифицируемость входных данных сборки, %autochangelog определяет, что записи об изменениях генерируются из истории коммитов, а не пишутся вручную; когда оба этих механизма работают, исправления CVE распространяются по единому каналу. Косвенная ценность для RuyiAI заключается в удобстве использования на верхнем уровне: DataLoader, checkpoint и инструменты для работы с датасетами в PyTorch повсеместно обращаются к удалённому хранилищу через fsspec, и полнота бэкендов напрямую определяет, сможет ли тренировочный скрипт отработать на K1/K3 — эта часть зависимостей, которую дистрибутив закрывает за верхним уровнем, определяет «пригодность к использованию» сильнее, чем оптимизация отдельного оператора.

Канал релизов становится новым узким местом: пакетный менеджер и индекс молчат одновременно, причина не в коде

На этой неделе сосуществуют два явления: пакетный менеджер ruyi 0.53.0 остаётся без движения весь месяц, 0.54.0 запланирован на конец октября; packages-index с 10-13 не имеет ни одного коммита. Объяснение, данное в выпуске 079, — аномалия синхронизации данных программного источника ISCAS, уже собранные пакеты не были обновлены на публичном ресурсе; в сочетании с вовлечённостью команды в саммит это образует контраст: «сотни коммитов в день на стороне кода, пользователи не видят новых пакетов».

Это подсказывает, что оценивать прогресс дистрибутива нельзя только по числу коммитов. Дополнение пакетов, контрольных сумм, путей зависимостей — всё это подготовка к итоговой поставке, но если любое звено застревает на канале релизов, фактический опыт пользователя — застой. Следующая точка наблюдения — выйдет ли 0.54.0 в alpha в срок в конце месяца и будет ли проблема синхронизации ISCAS решена вместе с версией 2026.10.

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

PyTorch с 10-18 по 10-22 пять утренних подряд полностью переписывал ветку, LLVM после восьмидневного молчания 10-21, 10-22 и 10-23 трижды подряд менял базу. Общая черта — время автора коммитов унифицированно перезаписывается, набор заголовков патчей не меняется, хеши коммитов ежедневно становятся недействительными; разница только в масштабе — в первый день LLVM опережал на 1769 коммитов (восьмидневный накопленный задел), в последующие два дня около 275 (обычное суточное догоняние).

Инженерный смысл — развязать «следование за апстримом» и «поддержание локальных патчей», цена — невозможность отследить историю: любой нижестоящий потребитель, ссылающийся на хеши (сборка образов, кэши CI, воспроизведение issue), будет ломаться в тот же день или после каждой смены базы; читать эти две ветки следует по набору заголовков патчей, а не по хешам как критерию версии. Примечательнее то, что сами патчи на этой неделе не прибавились — семь открытых PR в PyTorch и два PR по FPGA в LLVM лишь обновляют метки времени, без новых замечаний ревью и без слияний. Механизм переписывания уже устойчив, фактическим метрономом стала скорость разбора очереди ревью. 10-23 PyTorch впервые приостановил переписывание — является ли это корректировкой ритма, должен подтвердить следующий цикл.

Путь внедрения расширений обретает форму: компиляция, эмуляция и операторы должны быть все три, чтобы считать это пригодным; после этого узкое место смещается к натурным испытаниям на железе

На примере AME на этой неделе виден полный путь расширения от предложения до пригодности: сначала проектирование бэкенда и определение набора инструкций (LLVM #16, #24, #27, #29), затем реализация понижения и планирования (#30, #31, #32), параллельно эмулятор даёт исполняемую семантику (QEMU ame-0.6), наконец библиотека операторов предоставляет тестируемые kernel и набор верификации (AME-operator). Ztt также на этой неделе закрыл свою сторону — ветка AME в ruyisdk/llvm-project получила первичную поддержку spec v0.6, что соответствует поддержке Ztt Md на стороне GCC и реализации семейства инструкций Ztt в QEMU.

Расширение P идёт тем же путём, но уже на второй половине: QEMU покрывает все инструкции (завершающая партия из 12 коммитов), GCC обновлён до 0.6, на стороне LLVM mulq, умножение с накоплением старших разрядов, sati/usati, Packed Pair и другие intrinsics партиями вливаются в апстрим. Для сравнения: расширению P не хватает прикладных benchmark, AME не хватает реального железа. Этот порядок стоит зафиксировать как методологию: без эмулятора нельзя проверить компилятор, без библиотеки операторов нельзя проверить эмулятор; до полноты всех трёх говорить о производительности бессмысленно, после полноты узкое место смещается к железу и натурным испытаниям. Прогресс этой недели — «полнота», а не «быстрее».

Фокус бэкенда RVV смещается с «есть ли инструкции» на «тайлинг и многопоточность»

IREE за два дня прошёл ступень точности от f32 к f16, оба раза переиспользуя один и тот же lowerRiscvVFmaccLike и один и тот же набор легализации аккумулятора; порядок таков: сначала гарантировать корректный путь (f32), затем по доступности расширений выбрать самый быстрый (нативный f16, расширенный f16, откат на +zvfhmin), модель стоимости оценивает все три пути отдельно. Натурные замеры на X60 ясно указали положение узкого места: однопоточный inner_tiled уже быстрее mmt4d ukernel, 4 и 8 потоков всё ещё медленнее.

Вывод статьи на arXiv о рефакторинге FlashAttention для длинных векторов того же происхождения: после транспонирования тайлов оценок и текущего вывода, размещения запросов вдоль линейно непрерывной оси два приведения естественно исчезают, переполнение регистров устраняется, циклы всего ядра сокращаются до 1,84–2,08 раза, утилизация плавающей точки возрастает с 16,2% до 29,7%. Оба говорят об одном: когда выбор инструкций для одного ядра доведён до конца, остаются параметры тайлинга и многопоточность. Для tilelang-riscv и triton-riscv это построчно сопоставимая дорожная карта: способ задания Tile N = vlen/8, разбиение модели стоимости по категориям, привязка числа запросов внутри тайла к длине вектора — всё это стоит сравнивать в собственном lowering по единой методике, а не смотреть только на «поддерживается ли f16».

Дистрибутивы начинают разворачивать стек верификации рабочего стола и виртуализации, форма платформы расходится на два пути — серверный и встраиваемый

В открытой очереди PR openRuyi появилась группа однонаправленных предложений: qemu включает функцию GUI-тестирования (#1421), добавлен virglrenderer (#1415), ovmf поддерживает fwupd (#1436), добавлен ydotool (#1457), исправлен конфликт man-страниц xorriso (#1489). Эти пять пунктов относятся соответственно к виртуализации, графической виртуализации, обновлению прошивки, автоматизации ввода и инструментальной цепочке дисковых образов, а в совокупности указывают на «запуск полноценного рабочего стола на RISC-V и его автоматизированную проверку» — это два конца одного и того же требования, что и «графическое тестирование IDE на основе AI», продемонстрированное на саммите.

Одновременно наметилось разветвление форм платформ. Серверный уровень представлен V100 от T-Head: UEFI, ACPI, SMBIOS в спецификации становятся жёсткими требованиями, а тесты соответствия BRS и цепочка установки — входным билетом; встраиваемый и потребительский уровень представлен K1/K3, и путь здесь — образы плат, инструментальные цепочки и матрица поддержки. На этой неделе ruyi-imager добавил поддержку provisioning UFS и UEFI для K3 — это первое конкретное действие данного разветвления на стороне инструментов; при этом в основном репозитории openRuyi за всю неделю ноль коммитов, связанных с серверной платформой, и то, будут ли выполнены обещания списка совместимости V100, зависит от версии 2026.10 и последующих действий по линии прошивок.


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

Список материалов

  • Выпуск 2026-10-19: окно 10-16 04:30 ~ 10-19 04:30 (прошедшие 3 дня, охватывает субботу и воскресенье).
  • Выпуск 2026-10-20: окно 10-19 04:30 ~ 10-20 04:30.
  • Выпуск 2026-10-21: окно 10-20 04:30 ~ 10-21 04:30.
  • Выпуск 2026-10-22: окно 10-21 04:30 ~ 10-22 04:30.
  • Выпуск 2026-10-23: окно 10-22 04:30 ~ 10-23 04:30.
  • Динамика за пределами границ периода (день 10-23 до утра 10-24) добавлена после проверки организационных репозиториев, см. следующий раздел.

Способ проверки и критерии

  • Проверка организаций (окно 168 часов): охвачены коммиты, PR и релизы трёх организаций RuyiAI-Stack, ruyisdk, buddy-compiler, по двойному каналу Atom и веб-страниц, без зависимости от лимитов API; коммиты вышестоящих fork (PyTorch riscv, LLVM riscv, LLVM main) включаются после фильтрации по ключевым словам, связанным с RISC-V, RVV, векторными расширениями и XuanTie.
  • Дополнительная проверка ключевых репозиториев: openRuyi (openRuyi-Project) (ежедневный подсчёт коммитов и распределение авторов, полная постраничная статистика через API), ruyifirmware, edk2-ruyi, homepage; qemu (p-dev, ame-0.6), llvm-project (AME), linux-xuantie-kernel, riscv-gcc (ztt-dev), wechat-articles, ruyi-imager, support-matrix, ruyi, packages-index, AME-operator из ruyisdk; buddy-mlir из buddy-compiler.
  • Два источника сообщества: форум разработчиков сообщества RuyiSDK (список последних тем), страница новостей дистрибутива openRuyi.
  • Официальный сайт: снимки трёх страниц — главной www.ruyiai.org, страницы блога и страницы документации — со сравнением sha256, с приложением элементов индекса блога и документации.
  • Временные критерии: время коммитов репозиториев пересчитывается в пекинское время по времени коммиттера; описания «ежедневно» считаются по последовательным календарным дням; недельный период — пять рабочих дней с 2026-10-19 по 2026-10-23. 637 коммитов openRuyi — это статистика по времени коммиттера за пять календарных дней с 10-19 по 10-23, что отличается от 24-часовых окон отдельных ежедневных отчётов, поэтому числа не полностью совпадают с цифрами отдельного выпуска ежедневного отчёта.

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

  1. 10-23 17:15, ветка AME репозитория ruyisdk/llvm-project получила «[RISCV] Add initial Ztt matrix extension support based on spec v0.6» — начальную поддержку (коммит 29fefa0f), это первое подключение семейства инструкций Ztt в данной ветке.
  2. 10-23 23:00, ветка riscv репозитория RuyiAI-Stack/llvm-project в третий раз подряд сменила базу, голова сменилась с 58d62a47 на 7c77126b; в тот же день проверка подтвердила, что ветка riscv PyTorch в этом раунде больше не пересобиралась, голова по-прежнему 29259d90.
  3. 10-23 11:23, ruyisdk/linux-xuantie-kernel получил «riscv: Migrate T-Head extensions to the vendor extension framework» (коммит 92c3f534), завершив семидневное молчание с 10-16.
  4. 10-23 с 09:56 по 13:31, ruyisdk/ruyi-imager — четыре коммита: вывод CLI приведён в соответствие с кодировкой консоли при сохранении JSON в UTF-8 (#14), добавлена поддержка UFS и UEFI для SpacemiT K3, сохранены все привязки целей образов в каталоге и GUI, сообщения репозитория при загрузке по каталогу разбираются только один раз.
  5. 10-23 10:47, ruyisdk/support-matrix — три коммита: первая версия базового тестового отчёта RT-Thread для RDC2022-D1s и две итерации правок по результатам ревью.
  6. 10-23 с 22:47 по 10-24 00:54, основной репозиторий openRuyi пополнен 13 Go-пакетами (go-gopkg-gorp.v1, go-github-ziutek-mymysql, go-github-denisenkom-go-mssqldb, серия go-github-gobuffalo-* и др.), ещё 6 коммитов ранним утром 10-24 в этот период не входят.
  7. 10-24 06:24, ruyiai-daily опубликовал выпуск за 2026-10-24, всего за неделю — семь выпусков.

Основные ссылки

Объём и upstream — https://github.com/iree-org/iree/releases/tag/v3.13.0, https://github.com/iree-org/iree/pull/25000, https://github.com/iree-org/iree/pull/24933, https://github.com/iree-org/iree/pull/24932, https://github.com/iree-org/iree/pull/24849, https://github.com/riscv/riscv-arch-test/pull/2413, https://github.com/riscv/riscv-arch-test/pull/2791, https://github.com/riscv/riscv-arch-test/pull/2858, https://github.com/OpenXiangShan/XSCache/pull/36, https://github.com/OpenXiangShan/XiangShan/pull/6738, https://arxiv.org/abs/2610.29489

Источники данных: ежедневные отчёты о динамике RuyiAI (5 выпусков с 2026-10-19 по 2026-10-23) и дополнительные проверки за неделю (репозитории организаций, двойные источники сообщества, официальная главная страница); период отчётности — с 2026-10-19 по 2026-10-23.