2013-05-02 91 views
0

例如,cublas<t>geam()會做:輸入矩陣也可以用來存儲輸出矩陣與CUBLAS?

C = αop(A) + βop(B)

但是,如果我想將結果存儲在A反正什麼?我可以用指針*C = *A,這樣稱呼它:

A = αop(A) + βop(B)

而不必擔心我可能會寫輸出仍然被讀取作爲輸入矩陣?

如果是這樣,保證我們可以安全地完成所有其他CUBLAS矩陣操作?

+1

對於這個特定的操作,如果兩個OP都是N(即,你沒有執行轉置),我認爲它是可以的。但是,如樞紐說,文件說,行爲將是未定義的。因此,最好在安全方面犯錯,並使用額外的空間。 – 2013-05-02 04:47:54

回答

3

答案在cublas文檔中是正常的,因爲您發佈了它 - cublasgeam() - If C overlaps A or B, then behaviour is undefined。 如果使用C == A,Nvidia不保證這可以正常工作。

+0

其他CUBLAS例程也不能保證在原地工作。 – talonmies 2013-05-02 05:11:31

+0

@talonmies謝謝你的加入。我從我的答案中刪除了錯誤的部分。 – hubs 2013-05-02 05:16:23

+0

啊,謝謝。我實際上正在使用cublasgemm()的3級版本,而恰巧正在使用擴展版本作爲示例,所以我錯過了這個聲明 - 德哦! – mchen 2013-05-02 10:52:27