Есть ли библиотека Java для ускоренных векторных вычислений?
Я ищу библиотеку Java, которая позволяет делать некоторые быстрые вычисления с вектором (и, возможно, матрицы тоже).
Под быстрым я подразумеваю, что он использует преимущества обработки GPU и / или инструкций SSE. Мне интересно, можно ли найти что-то более портативное, насколько это возможно. Я признаю, что JVM обеспечивает толстый уровень абстракции оборудования.
Я сталкивался с JCUDA, но есть недостаток: на компьютере без графической карты Nnvidia он должен работать в режиме эмуляции (поэтому я считаю, что он будет неэффективным, как ожидалось). Кто-нибудь уже пробовал это?
3 ответа
Если под быстрым вы подразумеваете высокую скорость, а не необходимость поддержки вашего конкретного оборудования, я бы порекомендовал Colt. В этой библиотеке векторы называются одномерными матрицами.
Я бы порекомендовал использовать UJMP (оборачивает большинство, если не все высокоскоростные библиотеки Java-матриц) и подождать, пока для него не будет написана достойная реализация GPGPU (я начал ее взламывать с помощью JavaCL некоторое время назад, но она требует серьезного переписывания, может быть, используя ScalaCLv2, который находится в разработке).