OpenCL и Java - PullRequest
       14

OpenCL и Java

1 голос
/ 27 февраля 2012

Я недавно читал о OpenCL , и в Java есть библиотека, которая позволит использовать OpenCL.В какой степени этот OpenCL и будет использоваться с Java.Кроме того, есть ли способ, которым JVM может автоматически разгрузить процесс в графическом процессоре прозрачно в коде Java.

Одно приложение будет с компиляторами Java-Javascript, которые не могут напрямую использовать OpenCL, но его виртуальная машина, которая выполняет перевод, может использовать параллельную обработку?

Ответы [ 3 ]

3 голосов
/ 03 марта 2012

Короткий ответ - нет.Поскольку JVM не создана для распознавания параллелизма.

Более длинный ответ заключается в том, что вы можете сделать это с относительно небольшими усилиями.На сайте www.jocl.org вы можете найти файл JAR, который включает поддержку OpenCL в Java, а также некоторые руководства, как это сделать.Если у вас в Java-коде достаточно простое тело цикла, что является узким местом, есть хороший шанс, что OpenCL даст хорошее улучшение.Я часто обнаруживал улучшение в 10 или более раз, но это зависит от вашего графического процессора.Сообщалось о различиях по сравнению с x100.

Он не «интегрирован» в Java, однако вы записываете тело цикла в файл .cl и выполняете его из своих основных файлов Java.С другой стороны, некоторые IDE (например, Netbeans) имеют плагины редактора OpenCL в Интернете, что делает все выглядят более интегрированными.: -)

3 голосов
/ 29 декабря 2012

Вы также можете взглянуть на Aparapi .Это позволяет вам писать ваши ядра OpenCL в Java.Они преобразуются в реальный код OpenCL за экранами.Наибольшим преимуществом использования привязки OpenCL является то, что ваши ядра являются простым Java, поэтому вы можете просто использовать все обычные инструменты (например, отладчик, JUnit, IDE, ...).Проект разрабатывается AMD, но он все еще молод.

1 голос
/ 27 февраля 2012

Более новые версии LWJGL имеют привязки OpenCL.Однако он не обеспечивает такой глубокой интеграции с языком или виртуальной машиной, как я думаю, вы хотели бы иметь.

Другая библиотека, которая обеспечивает привязки OpenCL: JOCL .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...