2010-12-08 7 views
3

Я ищу Java lib, который позволяет выполнять быстрые вычисления с помощью векторных (и, возможно, матриц).Есть ли библиотека Java для ускоренных векторных вычислений?

От fast Я имею в виду, что он использует преимущества обработки графического процессора и/или инструкции SSE. Мне интересно, можно ли найти что-то более портативное, насколько это возможно. Я признаю, что JVM обеспечивает уровень абстракции толщиной.

Я столкнулся с JCUDA, но есть недостаток: на компьютере без графической карты Nnvidia его следует запускать в режиме эмуляции (поэтому я считаю, что он будет неэффективным, как ожидалось). Кто-нибудь уже пробовал это?

+2

Вы можете взглянуть на OpenCL. – pablosaraiva 2010-12-08 13:30:01

+0

+1 Вы также можете найти привязки java здесь: http://www.jocl.org – 2010-12-08 13:33:16

ответ

4

Что относительно OpenCL? Это должно стать хорошей отправной точкой для таких оптимизированных операций.

Там существует много привязок для Java, начиная с jocl (но взять бабло также на JavaCL или LWJGL, которые добавляют поддержку от 2,6)

1

Если по скорости вы имеете в виду высокую скорость, а не требуете поддержки вашего конкретного оборудования, я бы рекомендовал Colt. Векторы называются 1-d matrices в этой библиотеке.

1

Я бы рекомендовал использовать UJMP (обертывания большинство, если не все высоко- скоростные библиотеки Java-матриц) и дожидаться, когда будет написана для него достойная реализация GPGPU (I started hacking it with JavaCL некоторое время назад, но для этого требуется серьезная переработка, возможно, с использованием ScalaCLv2, что находится в работах).