2017-03-29 3 views
0

Je transfère du code de Matlab pour l'exécuter sur un GPU Nvidia. Je ne peux pas trouver un moyen de faire ce qui suit:matrice max à la matlab sur gpu

B = max(A, 0) 

où A et B sont des matrices. En termes de mots, j'ai besoin de remplacer les valeurs négatives dans une matrice par des zéros. Je sais écrire une fonction de noyau, mais j'aimerais coller avec les appels cuBLAS ou magma si possible (pour éviter d'ajouter nvcc à mon processus de construction).

Répondre

1

Je suis venu avec quelque chose en utilisant la poussée:

thrust::transform(A, A + m*n, [](double x) { thrust::max(x,0.0); }); 

Si cela est inexact, ou s'il y a une meilleure solution que je suis ouvert à d'autres suggestions.