-
Notifications
You must be signed in to change notification settings - Fork 1
PASSIONLab/CSB
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
======================================================================== APPLICATION : CSB Overview ======================================================================== Author: Aydin Buluc, LBNL, [email protected] Date: 2/28/2014 - The official release with better instructions for compilation/running is here: https://people.eecs.berkeley.edu/~aydin/csb/html/index.html - This github is to allow new development (i.e. OpenMP and OpenCilk porting, bringing the SpMM case vectorization to AVX2-AVX512) Classes ------- CSC: - Class that implements the standard "compressed sparse column" format. - Used for baseline comparisons. BiCSB: - Production (final) class that implements "compressed sparse blocks" - Nonzeros within a block are stored in "bit-interleaved" order - Described in http://dx.doi.org/10.1145/1583991.1584053 BmCSB: - Class that implements bitmasked register blocks on top of CSB - Change the register block dimension inside utility.h (RBDIM), options are 2,4,8 (default is 8) - Decribed in http://doi.ieeecomputersociety.org/10.1109/IPDPS.2011.73 CSBSYM: - Class that implements the symmetric algorithm - Decribed in http://doi.ieeecomputersociety.org/10.1109/IPDPS.2011.73 SYM/CSBSYM [do not use]: - Experimental class that implements a variant of "compressed sparse blocks" - Nonzeros within a block are stored in row-major order - Various optimizations are tried in this class, such as SSE, prefetching, etc. Files ----- csb_spmv(t)_test.cpp : - Driver programs for both sequential and parallel Ax and A'x runs - Usage "./executable matrixfile nosym/sym ascii/binary" or "./executable" in which case read the ascii file matrix.txt if exists (only nosym works for now - special support for symmetric matrices will be available soon) - Executables are parspmv, parspmvt, seqspmv, seqspmvt where names are self explanatory. - For parallel execution, you can specify the number of workers by setting the environmental variable CILK_NWORKERS. spmm_test.cpp: - Driver program for the multiple vector cases of Ax and A'x (i.e. SpMM for AX and A'X) bwtest-mimd.cpp : - Usage "./bwtest-mimd -n file_1 file_2 ... file_n" - Bandwidth test program that reads does SpMV's in n different matrices simultaneously - pthreads implementation oskispmv(t).cpp : - Usage "./oskispmv(t) matrixfile" - Compares the performance of our serial implementations with plain OSKI to reveal any anomalies utility.h : - Includes constants, preprocessors directives and utility functions /////////////////////////////////////////////////////////////////////////////
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published