- clone this repository using git.
- build using cmake
cd
to source directorymkdir Release
cd Release
cmake -DCMAKE_BUILD_TYPE=Release ..
make
Can also change Release for Debug
- lib/ libs for different matrix representations
- cuda/ cuda related implementations
- src/ implementations
- prefix.h global definitions and helpers
- list.h list structure for c
- CSR.h own representation of CSR
- VBR.h VBR and converters between CSR format
- UBCSR.h UBSCR and converters between CSR format
- vector.h some vector functions for easier implementation
- testlib/ libs related with testing
- src/ implementations
- test_prefix.h global definition for tests
- vector_gen.h Random vector generator
- CMakeLists.txt CMake makefile
- testcases.c Some coherency tests
- csrCUDA.cu cuSPARSE CSR
- hybCUDA.cu cuSPARSE HYB
- fbcsrCUDA.cu
- fbcsrHybCUDA.cu FBCSR with leftover using HYB
- ubcsrCUDA.cu
- readme.md This file
- kernel.cu How to implement a custom kernel
To implement a new public interface:
- add the function declaration in respective .h file
- implementation writen in
src/
folder and quote the .h file using#include"../XXXX.h"
To write a new test:
- write the test function in
testcases.c
as avoid func(void)
- add the test description to
tNames
and the function totFuncs
To use debug print:
DEBUG_PRINT(...)
works the same way asfprintf(stderr,...)
- will be disabled
#ifndef DEBUG
- will be disabled when building as Release
- will be disabled
To implement a custom kernel
SEE kernel.md