ValeevGroup / libintx

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LibintX

LibintX is a library for accelerated evaluation of molecular integrals of many-body operators over Gaussian atomic orbitals. The primary purpose of LibintX is to enable efficient evaluation of 2-body operators in Gaussian AO integrals on accelerated architectures like the CUDA-capable graphical processing units (GPU). However, it can also be used on conventional/central processing units (CPUs).

Until version 1.0 this will remain EXPERIMENTAL code development; expect things to break and APIs to change. https://github.com/ValeevGroup/libintx/ is the public mirror of the private development repo. Don't make PRs against the public mirror; if you wish to collaborate send us a request.

Installation

Prerequisites

Other CMake parameters:

  • LIBINTX_MAX_K - maximum primitives
  • LIBINTX_MAX_L - maximum angular momentum
  • LIBINTX_MAX_X - maximum auxillary angular momentum
  • LIBINTX_CUDA_MAX_SHMEM - maximum CUDA shared memory per threadblock

Building

  • configure:
    cd libintx
    cmake -B ./build
    cd ./build
    with cuda:
    cmake -DLIBINTX_ENABLE_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=70 .
    with libint2:
    cmake -DLIBINTX_LIBINT2=ON .
  • build:
    cmake --build .
  • 3-center tests and benchmarks:
    cmake --build . --target libintx.cuda.md3.test
    ./tests/libintx.cuda.md3.test cmake --build . --target libintx.cuda.md3.benchmarks
    ./tests/libintx.cuda.md3.benchmarks
  • 4-center tests and benchmarks:
    cmake --build . --target libintx.cuda.md4.test
    ./tests/libintx.cuda.md4.test cmake --build . --target libintx.cuda.md4.benchmarks
    ./tests/libintx.cuda.md4.benchmarks

Python

  • Configure with LIBINTX_PYTHON=TRUE
  • Build libintx-python target

Using

Still work in progress. Read through test programs and/or contact Andrey, asadchev@gmail.com

Developers

LibintX is developed by the Valeev Group at Virginia Tech.

License

LibintX is freely available under the terms of the LGPL v3+ licence. See the included LICENSE file for details. If you are interested in using LibintX under different licensing terms, please contact us.

How to Cite

See the enclosed LICENSE file.

Acknowledgements

Development of LibintX is made possible by the support provided by the Department of Energy Exascale Computing Project (NWChemEx subproject).

About

License:Other


Languages

Language:C++ 88.6%Language:Fortran 5.2%Language:CMake 1.8%Language:Python 1.8%Language:C 1.6%Language:Cuda 0.8%Language:Shell 0.1%Language:HTML 0.1%Language:JavaScript 0.0%Language:Makefile 0.0%Language:XSLT 0.0%Language:CSS 0.0%