Есть ли библиотека Java для ускоренных векторных вычислений?

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

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

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

3 ответа

Решение

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

Существует множество привязок для Java, начиная с jocl (но также можно получить награду за JavaCL или LWJGL, в которых добавлена ​​поддержка версии 2.6)

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

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

Другие вопросы по тегам