Запускаете Java на железе? Проверьте, что у вас TornadoVM 1.1.1 — иначе вы в прошлом

В новой версии апгрейд байт-кодов, логов и графов задач.


eespo2c9valj7c2kka4gj8hvy9wubmh5.jpg


В начале июля вышел релиз TornadoVM 1.1.1 — системы, которая позволяет запускать Java-программы на гетерогенном оборудовании: CPU, GPU и FPGA. Обновление доступно на GitHub , разработку курирует участник @stratika. По состоянию на релиз сделано более 20 значимых изменений и исправлений.

Ключевое улучшение — оптимизация повторного использования выделенных буферов при пакетной обработке (#657). Это повышает эффективность выполнения задач с большими объёмами данных. Дополнительно внедрён байт-код PERSIST (#660), который отслеживает жизненный цикл объектов и позволяет надёжно управлять памятью между выполнениями TaskGraph.

Также в логах теперь сохраняются байт-коды TornadoVM (#661), а режим передачи данных TRANSFER_TO_DEVICE_ONCE стал более прозрачен при отладке (#660). Обновлена документация по флагам TornadoVM (#667), добавлены новые API-функции для «разогрева» исполнения (#686) и переработан тип Matrix4x4Float (#670).

Рефакторинг коснулся и динамической реконфигурации (#685): улучшена производительность при переключении между устройствами, включая режимы параллельного исполнения. Добавлены новые примеры, включая матрично-векторное умножение в строковом формате (#679) и юнит-тесты для вычислительных ядер (#676).

Обновлён установочный скрипт tornadovm-installer, который теперь работает в интерактивном режиме (#695), а также получил опцию --auto-deps и восстановленные аргументы для выбора JDK и бэкендов (#697). Изменения задокументированы в README (#698).

Поддержка расширена: добавлены инструкции по сборке на архитектуре RISC‑V (#668). В список исправлений вошли проблемы с GridScheduler при нескольких TaskGraph (#666), баг с именем ядра в PTX (#664), замена 1.0/sqrt(x) на rsqrt(x) (#677), а также улучшение логирования и профилирования на macOS (#671, #678).

Полный список изменений между версиями 1.1.0 и 1.1.1 доступен в changelog проекта .