monolish  0.16.0
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.16.0
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.16.0
/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;
}

Please see CPU Examples and GPU Examples for more examples.

For Users

Installation

Examples

API Overview

For Developers

Citations

Links

Copyright 2021 RICOS Co. Ltd.

monolish_blas.hpp
monolish::util::send
void send(T &x)
send data to GPU
Definition: monolish_common.hpp:729
monolish::vector< double >
monolish::blas::dot
void dot(const vector< double > &x, const vector< double > &y, double &ans)
inner product (dot)