TornadoVM 7 научил Java-приложения работать на GPU напрямую
TornadoVM 7 Enables GPU-Native Workloads from Java Applications

Открытый фреймворк TornadoVM добрался до версии 7.3: он автоматически ускоряет Java-код на многоядерных CPU и GPU, не заменяя JVM и работая с любым мейнстримным JDK. Вместо JNI теперь используется Foreign Function & Memory API, убрана зависимость от экспериментального JVMCI, а оптимизированный CUDA-бэкенд позволяет вызывать cuBLAS и CUTLASS прямо из TaskGraphs. Добавлены поддержка multi-GPU и TileContext для модели cuTile.
Идея в том, что вы можете разрабатывать локально на ноутбуке, используя доступное рядом железо, а затем развернуть всё на сервере с Nvidia GPU и получить серьёзный прирост производительности — своего рода «Write Once, Run Anywhere» для современных ML-нагрузок.
- zmmmmm
Похоже на неплохой выигрыш, даже если это работает только для их примера:
void matmul(Matrix2DFloat A, Matrix2DFloat B, Matrix2DFloat C, int size) {
for (@Parallel int i=0; i<size; i++) {
for (@Parallel int j=0; j<size; j++) {
float sum = 0f;
for (int k=0; k<size; k++)
sum += A.get(i,k)*B.get(k,j);
C.set(i, j, sum);
}
}
}
Но главная проблема — это Vector API. Не получится ли так же, как с логированием — стандартизированный API, которым никто не пользуется, потому что он появился на 10 лет позже и не так хорош, как то, что уже устоялось?
И зачем путать всех, называя это VM, когда оно поставляется как JAR-файл, который работает в существующей VM?
- mikepapadim
https://github.com/beehive-lab/TornadoVM — это основной репозиторий.
Вы можете использовать его с любым JDK21+ и оборудованием Nvidia или Apple, а также с их библиотеками Nvidia или MLX.
- the_arun
Означает ли это, что мы можем использовать Java для создания инфраструктуры ИИ?