monolish  0.17.1
MONOlithic LInear equation Solvers for Highly-parallel architecture
monolish: MONOlithic LInear equation Solvers for Highly-parallel architecture.

Quick start guide

monolish pre-build library and examples are composed in a container:

docker run -it --rm ghcr.io/ricosjp/monolish/mkl:0.17.1
cd /usr/share/monolish/examples/blas/innerproduct
make cpu

There are also GPU-enabled images:

docker run -it --rm --gpus all ghcr.io/ricosjp/monolish/mkl-nvidia:0.17.1
/usr/share/monolish/link_monolish_gpu.sh
cd /usr/share/monolish/examples/blas/innerproduct
make gpu

Be sure that you need to detect your GPU architecture (e.g. Ampare, Volta, ...) by link_monolish_gpu.sh script.

These compiles following example code:

#include <iostream>
int main() {
// Output log if you need
// monolish::util::set_log_level(3);
// monolish::util::set_log_filename("./monolish_test_log.txt");
size_t N = 100;
// x = {1,1,...,1}, length N
// Random vector length N with random values in the range 1.0 to 2.0
// Random seed is 123 (mt19937)
monolish::vector<double> y(N, 1.0, 2.0, 123);
// send data to GPU
// compute innerproduct
double ans = monolish::blas::dot(x, y);
std::cout << ans << std::endl;
return 0;
}
void send(T &x)
send data to GPU
void dot(const vector< double > &x, const vector< double > &y, double &ans)
inner product (dot)

Please see CPU Examples and GPU Examples for more examples.

For Users

Installation

Examples

API Overview

For Developers

Citations

Links

Developer's memo (in Japanese)

Copyright 2021 RICOS Co. Ltd.