PyCUDA and PyOpenCL: A Scripting-Based Approach to GPU Run-Time Code Generation
Implementing sparse matrix-vector multiplication on throughput-oriented processors