Матрица макс а ля матлаб на гпу
Я портирую некоторый код из Matlab для работы на GPU Nvidia. Я не могу найти способ сделать следующее:
B = max(A, 0)
где A и B - матрицы. На словах мне нужно заменить отрицательные значения в матрице нулями. Я знаю, как написать функцию ядра, но я бы хотел придерживаться вызовов cuBLAS или magma, если это возможно (чтобы избежать добавления nvcc в мой процесс сборки).
1 ответ
Я придумал что-то с помощью тяги:
thrust::transform(A, A + m*n, [](double x) { thrust::max(x,0.0); });
Если это неправильно, или если есть лучшее решение, я открыт для других предложений.