На QCon London доктор Хуан Фумеро (Juan Fumero) из Университета Манчестера представил демонстрацию реальной работы TornadoVM, ВМ для гетерогенных систем. Это плагин к OpenJDK и GraalVM, позволяющий запускать Java-приложения на GPU и FPGA. Демонстрация показала, что такой подход позволяет в сотни раз ускорять работу приложений.
Отметим, что TornadoVM позволяет запускать приложения, написанные на Java и Node.js, за счёт распараллеливания и выполнения расчётов на разных типах оборудования.
Фумеро показал это на примере макбука, где код выполнялся на CPU, интегрированном GPU и графическом процессоре NVIDIA. Также поддерживаются решения AMD и Intel FPGA. А вот Tensor Processing Units (TPU) пока не поддерживаются, но по словам разработчика, здесь всё упирается в поддержку OpenCL. Создать же дополнительный бэкэнд к TornadoVM — не проблема.
Пока что разработчики не готовы к коммерческому внедрению TornadoVM, хотя система уже используется для ускорения машинного обучения. Эти решения используются для работы с данными о здравоохранении. При этом из-за ограничений в базовой модели программирования, TornadoVM не поддерживает объекты (за исключением тривиальных случаев), рекурсию, динамическое выделение памяти или исключения.
Слайды с демонстрации и исходный код уже доступны для изучения.
Источник: