Git Product home page Git Product logo

ricosjp / monolish Goto Github PK

View Code? Open in Web Editor NEW
189.0 189.0 12.0 20.33 MB

monolish: MONOlithic LInear equation Solvers for Highly-parallel architecture

License: Apache License 2.0

CMake 0.25% Makefile 0.75% C++ 95.30% Shell 3.34% Python 0.33% C 0.01% Fortran 0.01% Cuda 0.02%
blas cpp17 cpp17-library cpu cuda gpu hpc lapack linear-algebra linear-algebra-library matrix matrix-structures mkl openmp scientific-computing sparse-matrix

monolish's People

Contributors

fockl avatar muripolife avatar rigarash avatar sakurano avatar t-hishinuma avatar termoshtt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

monolish's Issues

Asynchronous copy/compute support for GPU

Hi,

Just wondering whether you plan to provide support for asynchronous copy/compute with GPU calls such as dgemm.

I'm glad that your are using OpenMP offload. Since you say that the OpenMP offload is only currently available for NVIDIA. I was just wondering whether it is simply a question of time or if there were additional technical issues for implementing OpenMP offload for AMD.

Thanks,
Vijay

Update installation document to reflect availability of CPU-only variant

monolish_0.14.0-1+oss_amd64.deb and monolish_0.14.0-1+intel_amd64.deb is available in addition to monolish_0.14.0-1+oss+nvidia_amd64.deb and monolish_0.14.0-1+intel+nvidia_amd64.deb.

These new variants only contains CPU variant(libmonolish_cpu.so), but prevent from installing CUDA libraries which is very cumbersome. Installation document should reflect that.

Automatic deploy at release

impl. in github actions

  • generate Doxyben (need to chenge version name)
  • generate deb file
  • generate monolish docker

need to get version number...

Implement transpose() in CRS

This is the same as creating a CCS format.

We will not implement CCS format, but will implement the transpose() of CRS.

[meta] support MPI and multi-device

  • get/set device num. I/F
  • enable option of mpicc in cmake : -DUSE_MPI
  • Input MPI_COMM I/F
  • implement BLAS Lv.1 #56
  • implement global size of Dense
  • implement BLAS Lv.2(Dense)
  • Checking the working of CG in Dense (precon = none)
  • implement comm_table of CRS
  • implement BLAS Lv.2(CRS)
  • Checking the working of CG in CRS (precon = none)

Create a Docker container with monolish installed

Current docker/ is not working.

Container specification

  • monolish is installed with apt (only with tag)
  • Put the samples in /opt/monolish/examples
  • Make it downloadable from github container registry

Tasks:

  • oss-cpu
  • mkl-cpu
  • oss-nvidia
  • mkl-nvidia
  • Enable gitlab-ci to deploy automatically (only with tag, How do I auto-specify a tag in gitlab-CI?)
  • Document the usage.
  • In the documentation, move the build method using allgebra to For developpers.

The answer of blas::matvec (A, tmp, tmp) is different for CRS and Dense

monolish::matrix::CRS<double> A_crs(COO);
monolish::matrix::Dense<double> A_dense(COO);
moolish::vector<double> tmp(A.col());
monolish::blas::matvec(A_crs, tmp, tmp);   // tmp = A * tmp
monolish::blas::matvec(A_dense, tmp, tmp); // tmp = 0

If the pointers are the same, an error is thrown.

SpMM of MKL is deprecated

/monolish/src/blas/matrix/matmul/crs-dense_matmul.cpp:102:33: warning: 'void mkl_dcsrmm(const char*, const int*, const int*, const int*, const double*, const char*, const double*, const int*, const int*, const int*, const double*, co     nst int*, const double*, double*, const int*)' is deprecated [-Wdeprecated-declarations]
                 &N, &beta, Cd, &N);

impl. C++ template MPI Library

in monolish::mpi

  • MPI_Allgatherv();
  • MPI_Alloc_mem();
  • MPI_Allreduce();
  • MPI_Alltoall();
  • MPI_Barrier();
  • MPI_Comm_rank();
  • MPI_Comm_size();
  • MPI_Finalize();
  • MPI_Get_count();
  • MPI_Init();
  • MPI_Initialized();
  • MPI_recv();
  • MPI_send();
  • MPI_Irecv();
  • MPI_Isend();
  • MPI_Scatterv();
  • MPI_Waitall();
  • MPI_Bcast()
  • MPI_Gather()
  • MPI_Scatter()
  • MPI_Allgather();

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.