A matrix times vector multiplication (matvec) is a cornerstone operation in iterative methods of solving large sparse systems of equations such as the conjugate gradients method (cg), the minimal residual method (minres), the generalized residual method (gmres) and exerts an influence on overall performance of those methods. An implementation of matvec is particularly demanding when one executes computations on a GPU (Graphics Processing Unit), because using this device one has to comply with certain programming rules in order to take advantage of parallel computing. In this paper, it will be shown how to modify the sparse matrix-vector multiplication based on CRS (Compressed Row Storage) to achieve about 3-5 times better performance on a low cost GPU (GeForce GTX 285, 1.48 GHz) than on a CPU (Intel Core i7, 2.67GHz).
PL
Mnożenia macierzy przez wektor jest kluczową operacją metod iteracyjnych (tj. metoda gradientów sprzężonych, MINRES, GMRES), które mają za zadanie rozwiązać duże rzadkie układy równań, gdyż wykonanie tej operacji wpływa na całościowe wykonanie w/w metod. Ponadto, chcąc zaimplementować tę operację na GPU należy przestrzegać dość restrykcyjnych zasad wynikających ze specyfiki architektury dedykowanej akceleratorom graficznym. W tej publikacji przedstawionych zostanie kilka modyfikacji operacji mnożenia macierzy rzadkiej przez wektor przy użyciu kompresji CRS (Compressed Row Storage) na GPU oraz porównane zostaną czasy wykonań uzyskane na GPU (GeForce GTX 285, 1.48 GHz) i na CPU (Intel Core i7, 2.67GHz).
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.