簡體   English   中英

CUDA中的矩陣運算

[英]Matrix operations in CUDA

在CUDA中組織矩陣運算的最佳方法是什么(就性能而言)? 例如,我要計算C * C^(-1) * B^T + CCB是矩陣。

我應該為乘法,換位等編寫單獨的函數,還是為整個表達式編寫一個函數?

哪條路最快?

我建議您使用CUBLAS庫。 與您自己可以編寫的所有內容相比,它通常要困難得多並且更可靠。 此外,它的API與BLAS庫相似,后者是用於數值線性代數的標准庫。

我認為答案很大程度上取決於矩陣的大小。

如果您可以在共享內存中放入一個矩陣,那么我可能會使用單個塊來進行計算,並且全部都包含在單個內核中(可能更大,這種計算只是其中的一部分)。 希望,如果您有更多的矩陣,並且需要多次計算上述方程式,則可以利用所有GPU計算能力並行進行計算。

但是,如果矩陣大得多,則需要更多的塊來計算(檢查CUDA手冊中的矩陣乘法示例)。 在繼續進行方程式的下一部分之前,您需要確保所有塊都已完成乘法運算;如果是,則需要為每個操作調用內核。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM