2012-03-29 46 views
6

Tôi làm việc để chuyển đổi mã Matlab lớn thành C++ và CUDA. Tôi có vấn đề chuyển đổi một số hoạt động ma trận thưa thớt như:Hoạt động ma trận thưa thớt trên 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) 

tôi đã có thể giải quyết 2 sử dụng CUSPARSE và 3 sử dụng đỉnh, tuy nhiên tôi đã không thể sử dụng đỉnh (hoặc CUSPARSE) cho phép nhân ma trận elementwise hoặc cho vấn đề 1.

Tôi quan tâm nếu có thư viện CUDA triển khai tất cả các hoạt động trên (tốt nhất là một hoạt động nguồn mở).

Cảm ơn

+2

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

+0

@Anycorn Trong khi về mặt lý thuyết chính xác, bạn đang thực hiện 3 chuyển vị có thể quá mức cần thiết (tùy thuộc vào kích thước mảng của bạn). – mmisu

+0

bạn sẽ có thể chỉ định cờ chuyển đổi, do đó chỉ có 1 lần chuyển vị. – Anycorn

Trả lời

Các vấn đề liên quan