Java на GPU: полный метод непосредственно на простой Java-платформе GPUin
Во-первых: можно ли использовать Java и позволить (частично) запускать или использовать графические процессоры?
И если это возможно, можно ли использовать обычный синтаксис Java и не использовать специальный синтаксис cuda или opencl?
Я хочу просто взять свой закодированный источник java и позволить ему работать с минимальными изменениями на графических процессорах.
Мне очень понравились бы образцы кода.
Ответы
Ответ 1
Компилятор Rootbeer GPU поддерживает запуск произвольного Java-кода на графическом процессоре. Это более полно, чем Aparapi. Rootbeer поддерживает графические объекты arbirary любого типа.
Это только что было выпущено с открытым исходным кодом в моей учетной записи github:
https://github.com/pcpratts/rootbeer1
Ответ 2
Существует несколько привязок Java к CUDA и OpenCL (jcuda.org, jocl.org, что-то еще называется jocl), но все это всего лишь способы получить код CUDA или OpenCL графический процессор через Java и требует, чтобы вы специально для этого писали свой код. Я не думаю, что есть простой способ запустить произвольную многопоточную Java-программу на GPU с незначительными изменениями в коде.
Что делает ваша программа Java, которую вы хотите запустить на GPU?
Вы должны учитывать, что архитектура графического процессора отличается от архитектуры процессора; ядра на графическом процессоре не являются ядрами общего назначения, которые могут что угодно и работать независимо, как в процессоре Intel x86. Чтобы действительно использовать конкретную архитектуру SIMD для графического процессора, ваш код должен быть написан с учетом этой архитектуры.
Ответ 3
Рассмотрим Aparapi http://aparapi.github.io/. Он пытается преобразовать байт-код в OpenCL во время выполнения. Таким образом, вы можете кодировать свой GPU на чистой Java.
Полное раскрытие информации, я являюсь ведущим разработчиком Aparapi.
Ответ 4
Посмотрите http://code.google.com/p/java-gpu/.
Он компилирует чистый Java-код в ядра, используя только аннотации.