2015-10-08 4 views
0

Я ищу, чтобы можно было сделать часть Java-программы, в частности, необходимость многих повторных, немного сложных вычислений, выполняться на графическом процессоре компьютера, а не только на процессоре , Я знаю, что библиотеки, подобные LWJGL, позволяют программам Java использовать графический процессор, но я не нашел простого способа просто выполнить вычисления на нем, которые не обязательно связаны с графикой.Выполнение вычислений на графическом процессоре в Java

Есть ли способ, например, ускорить следующий код с помощью графического процессора компьютера?

long t = System.currentTimeMillis(); 
    double x; 
    for(int i=0; i < 1080; i++){ 
     for(int j=0; j<1920; j++){ 
      x = Math.sqrt(Math.tan(1d - Math.sin(i * j))); 
     } 
    } 
    System.out.println(System.currentTimeMillis() - t); 

Когда я проверяю выше, только-процессор работает, функция, она занимает около 1,25 секунды для его завершения.

+2

Загляните в OpenCL, есть привязки для Java: http://www.jocl.org/ –

+0

Будет ли OpenCL работать только для графических процессоров AMD/Nvidia? – user2649681

+0

Да, если драйверы поддерживают его (что больше всего должно). Это API с кросс-платформой, и это не ограничивается графическими процессорами (он может легко отступать от выполнения ЦП для того же кода, если нет графического процессора, например). –

ответ

1

Возможно, вы захотите попробовать aparapi. Кроме того, могут быть полезны любые Java-оболочки вокруг собственного OpenCL/CUDA.

+0

Я пробовал использовать aparapi, но всякий раз, когда я пытаюсь использовать его для чего-либо (например, умножая два значения один миллион раз), процессор делает это намного быстрее, чем ядро – user2649681

Смежные вопросы