Подтвердить что ты не робот

Java на GPU: полный метод непосредственно на простой Java-платформе GPUin

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

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

Мне очень понравились бы образцы кода.

4b9b3361

Ответ 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-код в ядра, используя только аннотации.