在GPU上的一些計算,我需要在一個矩陣是按比例的行,使得在一個給定的行總和的所有元素爲1。縮放矩陣的行與CUDA
| a1,1 a1,2 ... a1,N | | alpha1*a1,1 alpha1*a1,2 ... alpha1*a1,N | | a2,1 a2,2 ... a2,N | => | alpha2*a2,1 alpha2*a2,2 ... alpha2*a2,N | | . . | | . . | | aN,1 aN,2 ... aN,N | | alphaN*aN,1 alphaN*aN,2 ... alphaN*aN,N |
其中
alphai = 1.0/(ai,1 + ai,2 + ... + ai,N)
我需要alpha
的向量和縮放矩陣,我想在儘可能少的blas調用中做到這一點。代碼將在nvidia CUDA硬件上運行。有誰知道有什麼聰明的方法來做到這一點?
這就是我自己得出的結論(對於整個行與列,如果一個比另一個更好,我將重新排列我的數據 - 轉置在這裏我來:) – 2012-02-15 13:29:00
@MartinKristiansen:沒有'除了一個簡單的,純粹面向行的縮放操作(即逐行'scal')在列主要順序數據上不能很好地執行,因爲行條目的跨度(至少矩陣的高度)。但是一個設計合理的方案在列主要數據上的表現也將與列主要數據一樣好。 – talonmies 2012-02-15 13:48:22