emfomy / isvd Goto Github PK
View Code? Open in Web Editor NEWIntegrated Singular Value Decomposition (iSVD)
License: MIT License
Integrated Singular Value Decomposition (iSVD)
License: MIT License
There is no assertion for linear algebra routines.
Should BLAS and LAPACK wrappers be renamed into camel case style? (e.g. isvd_dGemm)
Implemented sketching and postprocessing stages using cuBLAS library.
Implement Tall-Skinny QR related stages.
Make sure no important code is wrapped in assertions.
mpicxx.h
requires compiler and MPI library in the same version.
Old MPI does not have MPI_Reduce_scatter_block
.
The result of Intel VSL is a little bit different.
Add utility for reading/writing MMIO matrix (, with parallel I/O).
MMIO library uses int
.
Add Python API for drivers and stages.
iSVD requires MKL for VSL and VML.
CMake 2.8 failed while check C++ flag std=c++98
.
It's almost 2020. It's time to readopt C++11 development.
Extract headers that only used in source from API headers.
Pros:
Cons:
MPI_Comm
is not int
in OpenMPI. Should include mpi.h
instead of define it.
Compile using -Wl,-rpath='$ORIGIN'
for all shared libraries. Therefore, all libraries will find shared libraries in the same folder.
Note that the executables should compile using -Wl,-rpath='$ORIGIN:$ORIGIN/lib:$ORIGIN/../lib'
.
Some LAPACK routines call several times. Allocate working spaces manually is better.
May use struct as keyword parameters. https://news.ycombinator.com/item?id=8029606
Implemented sketching and postprocessing stages using MAGMA library.
LAPACK Lsamen sometimes fails.
Allocate GPU memory outside the stages, especially matrix A, to avoid GPU reduplication of memory allocation and transformation.
MPI uses int
only.
Add tutorial pages.
Use relative error in Google Test instead of absolute error.
The single precision routines lost significance.
Currently, use double precision check data and set very large tolerance.
Use cuRand to random generate Omega.
Remove configured files in make clean
.
Modify MMIO library for 64-bit integer types.
Rename Hierarchical Reduction Integration to Multi-level Pairwise Integration.
As title.
MPI does not support 64bit integer (#10). Add assertion of the size to prevent overflow.
Possible implementation: add an MPI library with wrapped MPI routines. Add assertion of size and error codes of MPI in the wrappers.
Reference: https://abseil.io
Compile all possible libraries including BLAS, MKL, MAGMA, LP64, ILP64 at once instead of compiling them separately by switching options in CMake.
ISO C++ does not allow C99 designated initializers.
Error message: include/c/isvd/core/param.h:131:5: error: expected primary-expression before โ.โ token
.
Intel ICC fails the Gaussian Projection Sketching test.
TSQR stages require the number of processors (P) to be a power of 2.
When P is not a power of 2, the tree is unbalanced.
Use routines such as MPI_Gatherv
, MPI_Scatterv
.
The single precision Wen-Yin Integration failed the unit tests.
The norm of matrix M becomes negative after some iteration.
cudaGetDeviceCount
fails with -fsanitize=address
.
Implement routines using single precision.
Add Fortran API for drivers and stages.
In my system, libgomp.so
does not exist. There is only libgomp.so.1
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.