Recently a GPU has acquired programmability to perform general purpose computation fast by running ten thousands of threads concurrently. This paper presents a new algorithm for dense matrix-vector multiplication on NVIDIA CUDA architecture. The experimental results on GeForce 8800GTX show that the proposed algorithm runs maximum 15.69 (resp., 32.88) times faster than the sgemv routine in NVIDIA's BIAS library CUBLAS 1.1 (resp., Intel Math Kernel Library 9.1 on one-core of 2.0 GHz Intel Xeon E5335 CPU with SSE3 SIMD instructions) for matrices with order 16 to 12800. The performance, including the data transfer between CPU and GPU, of Jacobi's iterative method for solving linear equations shows that the proposed algorithm is practical for some real applications.
[1]
J. Krüger,et al.
Linear algebra operators for GPU implementation of numerical algorithms
,
2003,
ACM Trans. Graph..
[2]
Pat Hanrahan,et al.
Brook for GPUs: stream computing on graphics hardware
,
2004,
SIGGRAPH 2004.
[3]
Jens H. Krüger,et al.
A Survey of General‐Purpose Computation on Graphics Hardware
,
2007,
Eurographics.
[4]
David Tarditi,et al.
Accelerator: using data parallelism to program GPUs for general-purpose uses
,
2006,
ASPLOS XII.
[5]
nVIDIA社.
CUDA Programming Guide 1.1
,
2007
.
[6]
Yao Zhang,et al.
Scan primitives for GPU computing
,
2007,
GH '07.