Skip to content

buraksekili/Sinkhorn-Knopp-scaling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Parallel Sinkhorn-Knopp scaling algorithm is used to convert a given matrix to the doubly stochastic form.

Installation

git clone https://github.com/buraksekili/Sinkhorn-Knopp-scaling.git

The required version of the gcc is 8.2.0 for the CPU code main.cpp. You must change the version of gcc by running;

$ module load gcc/8.2.0

For GPU code, cuda/10.0 and gcc/7.5.0 is required. You must change the version of gcc and CUDA by running;

$ module load gcc/7.5.0
$ module load cuda/10.0

GPU

$ cd ./gpu
$ nvcc kernel.cu main.cpp -O3 -Xcompiler -fopenmp
$ ./a.out ./cage15.mtxbin 5

where 5 is number of iterations.

CPU

$ cd ./cpu
$ g++ main.cpp -fopenmp -O3
$ ./a.out ./cage15.mtxbin 5 4

where 5 is number of iterations and 4 is number of threads.

About

Parallel Sinkhorn-Knopp scaling algorithm running on CPU and GPU using OpenMP and CUDA.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors