對於一般和對稱情況(MKL實現的鏈接),存在帶狀矩陣向量乘積的BLAS Level 2中的例程。BLAS 2級頻帶矩陣 - 向量乘積多個向量
有沒有辦法使用多個向量(不使用for循環外),最大限度地在這種情況下的表現?
對於一般和對稱情況(MKL實現的鏈接),存在帶狀矩陣向量乘積的BLAS Level 2中的例程。BLAS 2級頻帶矩陣 - 向量乘積多個向量
有沒有辦法使用多個向量(不使用for循環外),最大限度地在這種情況下的表現?
我認爲Spike library應該有這樣一個例程的對稱情況。儘管如此,我恐怕不能再有任何幫助,因爲我從來沒有用過它。
Spike(用於系統求解)的算法和實現概述於[Polizzi & Sameh, Comp. Fluids (36), 2007]。
我只是因爲你提供了一個有效的替代方案,纔將你的答案標記爲Picaud Vincent的正確答案。但是,我確實認爲這是BLAS實現中應該提供的。 – fcdimitr
AFAIK答案是否定的。
3級BLAS子程序的完整列表可以在這裏找到
http://www.netlib.org/blas/#_level_3
並沒有帶狀矩陣子程序。
的額外信息:如果您正在使用BLAS/LAPACK & C++有設計一個C++接口,一個最新舉措:
http://www.netlib.org/na-digest-html/17/v17n21.html#1
(cblas和lapacke都更加註重了C用法)
當你有一個密集的完整矩陣(多個向量)時,沒有辦法利用其中一個的帶狀結構來獲得速度。 – percusse
@percusse我不認爲你的陳述成立。也許你誤解了我的問題。我想要多個右側向量,即y = A * x,其中A是稀疏帶狀的,x是N-D。你可以利用x中的每個向量,因爲它們的結果是獨立的(y的每一列) – fcdimitr
是的,這就是爲什麼BLAS3沒有它們,因爲它只是遍歷y的每一列,因此BLAS2函數。 BLAS3使用塊而不是RHS的列。 – percusse