2013-03-13 3 views
2

Библиотека CUBLAS от NVIDIA CUDA позволяет находить элемент/индекс с максимальным абсолютным значением (cublasIsamax). Возможно ли найти элемент/индекс с максимальным значением , используя функции сокращения CUBLAS?Библиотека CUBLAS: найти максимальные фактические значения, а не абсолютные значения

[. Я использую CUBLAS версии 3.2]

Редактировать
Constraint: Я не могу изменить состояние сервера производства в любом случае. Это означает, что я не могу использовать thrust/cudpp, и что я застрял в использовании более старой версии CUBLAS.

ответ

3

Я не уверен, что означает «функции сокращения», о которых вы говорите.

CUBLAS - это, по сути, реализация «BLAS» для устройств CUDA «как-для-подобных». Он предоставляет только стандартные функции уровня 1, 2 и 3 BLAS, а также три расширения - geam (масштабированное сложение/транспонирование матрицы), dgmm (диагонализованное матрично-матричное точечное произведение) и getrfBatched (пакетная LU-факторизация для многих небольших матриц). Ни одна из этих функций не найдет подписанное максимальное значение поставленного вектора или матрицы.

Корабль NVIDIA cudpp и thrust, любой из которых, вероятно, лучше подходит для этой операции сортировки. Кроме того, CUBLAS 3.2 - два с половиной года.

В качестве заключительного комментария я настоятельно рекомендую использовать либо CUBLAS 4.x, либо CUBLAS 5.x. API и производительность кода значительно улучшились, особенно для более нового оборудования.

+0

Я имел в виду виды параллельных функций сокращения, обеспечивающих передачу. Я вынужден использовать только те библиотеки, которые установлены на рабочем сервере, по крайней мере на данный момент. Удар и cudpp недоступны. Думаю, это оставляет мне возможность самостоятельно реализовать параллельное сокращение. – fhl

+0

Отредактировал вопрос, чтобы включить это ограничение. – fhl

+0

@fhl: Thrust - это библиотека шаблонов. Это только файлы заголовков и вообще не имеет компонента времени выполнения. Если вы вытащите из своего репозитория одну из старых ветвей, функции, необходимые для сокращения, будут построены с помощью инструментальной цепочки CUDA 3.2. – talonmies