2012-03-29 16 views
6

Lavoro sulla conversione di un codice Matlab di grandi dimensioni in C++ e CUDA. Ho problemi di conversione alcune operazioni matrici sparse come:Operazioni con matrice sparsa su CUDA

1. full_Matrix * sparse_Matrix 
2. sparse_Matrix * full_Matrix 
3. sparse_Matrix * sparse_Matrix (SOLVED WITH CUSP) 
4. full_Matrix .* sparse_Matrix (elementwise multiplication) 
5. sparse_Matrix * full_Matrix  (elementwise multiplication) 
6. sparse_Matrix .* sparse_Matrix (elementwise multiplication) 

ho potuto risolvere 2 utilizzando CUSPARSE e 3 utilizzando CUSP, tuttavia non è stato in grado di utilizzare CUSP (o CUSPARSE) per matrice elementwise moltiplicazione o per problema 1.

Sono interessato se esiste una libreria CUDA che implementa tutte le operazioni di cui sopra (preferibilmente una sorgente open source).

Grazie

+2

uhh, '(AB) = (B'A ')''? – Anycorn

+0

@Anycorn Se teoricamente corretto, stai eseguendo 3 trasposizioni che possono essere eccessive (dipende ovviamente dalle dimensioni degli array). – mmisu

+0

dovresti essere in grado di specificare i flag di trasposizione, quindi solo 1 trasposizione. – Anycorn

risposta

Problemi correlati