Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
warpkernel - GPU Sparse Matrix Vector Product library
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
Requirements for warpkernel.hpp: 1. CUDA 4.0 2. Thrust (http://docs.nvidia.com/cuda/thrust/index.html) Optional Requirements for test codes. Packages listed below are used for comparison of results: 3. CUSP (http://code.google.com/p/cusp-library/) 4. ModernGPU sparse Installation: Run "make all" Warpkernel Library Usage: 1. scan Prototype: void scan(uint & nz_, uint & nrows_, ValueType * A, IndexType * rows, IndexType *colinds, [IndexType threshold]) This scans the matrix A and analyzes its structure to generate the propper mappings for the warpkernels. For warpkernel::structure (K1) and warpkernel::structure2 (K2) have similar but separate scan calls that convert a matrix into the WPK1/2 formats repsectively. 2. Process Performs the re-ordering of values and columns into the corresponding WPK format. warpkernel::engine instatiation will call this by default. 3. Run warpkernel::engine::run will perform the SPMV multiplication on arrays x and y. On the other hand warpkernel::engine::run_x will perform the multiplication with the entries of X reordered (Kr). This means that for each entry of the reordered x array x', the result from run_x yields the proper corresponding entry in the original solution array y, y'. run computes A*x=y and run_x computes A*x'=y'. 4. Verify warpkernel::engine::verify compare the computed vs another GPU SPMV computed result. verify_x remaps the compared result such that the ordering matches the ordering for the result vector for hte computed result if Kr SPMV algorithms are used.