Java на GPU: полный метод непосредственно на GPU в простой Java - PullRequest
13 голосов
/ 24 июня 2011

Во-первых: возможно ли использовать Java и позволить ему (частично) запускаться или использовать графические процессоры?И если это возможно, возможно ли использовать обычный синтаксис Java и не использовать специальный синтаксис cuda или opencl?

Я хочу просто взять мой кодированный исходный код java и позволить ему работать с наименьшими возможными изменениями на графических процессорах.

Буду очень признателен за примеры кода.

Ответы [ 4 ]

10 голосов
/ 06 октября 2011

Рассмотрим Aparapi http://aparapi.github.io/. Попытка преобразовать байт-код в OpenCL во время выполнения.Таким образом, вы можете написать код для вашего GPU на чистом Java.

Полное раскрытие, я ведущий разработчик Aparapi.

9 голосов
/ 12 августа 2012

Компилятор Rootbeer GPU поддерживает запуск произвольного кода Java на графическом процессоре.Это более полнофункциональный, чем Aparapi.Rootbeer поддерживает произвольные графы объектов любого типа.

Он был выпущен с открытым исходным кодом на моем аккаунте Github: https://github.com/pcpratts/rootbeer1

6 голосов
/ 24 июня 2011

Существует несколько привязок Java к CUDA и OpenCL ( jcuda.org , jocl.org , что-то еще также называется jocl ), но все это просто способы получить код CUDA или OpenCL, работающий на GPU через Java, и требовать от вас написания кода специально для этого. Я не думаю, что есть простой способ запустить произвольную многопоточную Java-программу на GPU с небольшими изменениями в коде.

Что делает ваша Java-программа, которую вы хотите запустить на GPU?

Вы должны принять во внимание, что архитектура GPU сильно отличается от архитектуры CPU; Ядра на GPU не являются ядрами общего назначения, которые могут делать что-либо и работать независимо, как в процессоре Intel x86. Чтобы действительно использовать преимущества конкретной SIMD-архитектуры графического процессора, ваш код должен быть написан с учетом этой архитектуры.

2 голосов
/ 08 июля 2011

Посмотрите на http://code.google.com/p/java-gpu/.

Он компилирует чистый Java-код в ядра, используя только аннотации.

...