GithubHelp home page GithubHelp logo

thilinarmtb / lsbench Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 2.0 9.79 MB

Repository for benchmarking linear solvers on GPU.

CMake 19.09% C 65.83% C++ 15.09%
finite-element-methods linear-solvers spectral-element-method amg amgx cholesky cholmod cpu cusparse gpu hpc hypre

lsbench's Introduction

Introduction

lsbench is a repository containing benchmark codes for various high performant linear solvers on CPUs and GPUs. It can read a sparse matrix and solve it using cuSparse, AmgX, Hypre or CHOLMOD. An example on how to use the API is in bin/driver.c. A few test matrices are available in tests/ directory. Currently, all the benchmarks are performend in double precision.

Building lsbench

lsbench by defaults download and builds CHOLMOD. You can enable/disable solvers (AmgX, cuSparse, etc.) when configuring the cmake build using ENABLE_<SOLVER>=ON|OFF.

Build requirements

  • cmake (>= 3.18)
  • CUDAToolkit (>= 11.0) if using AmgX, cuSparse or Hypre with Cuda backend)

Build instructions

  1. Clone the repo first using git and cd into the repository:
git clone https://github.com/thilinarmtb/lsbench.git
cd lsbench
  1. Then you can use cmake to build the benchmarks:
mkdir build && cd build 
cmake .. -DCMAKE_C_COMPILER=<c-compiler> -DCMAKE_CXX_COMPILER=<cxx-compiler> \
  -DCMAKE_INSTALL_PREFIX=<lsbench-install-dir> \
  -DENABLE_CUSPARSE=ON -DENABLE_AMGX=OFF
make -j8 install
cd -

You can add the bin directory to the PATH variable to access the binary without the full path:

export PATH=${PATH}:<lsbench-install-dir>/bin

Running the benchmarks

Once the benchmarks are built, they can be run using the following command: Do driver --help to see available options (not everything is implemented right now).

driver --solver cholmod --test ./tests/I1_05x05.txt --verbose=1

lsbench's People

Contributors

thilinarmtb avatar yhmtsai avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

yhmtsai yslan

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.