Git Product home page Git Product logo

qe-gpu-plugin's Introduction

QE-GPU: GPU-Accelerated Quantum ESPRESSO

Quantum ESPRESSO is an integrated suite of Open-Source computer codes for electronic-structure calculations and materials modeling at the nanoscale.

The aim of QE-GPU is to create a "plugin-like" component for the standard Quantum ESPRESSO package that allows to exploit the capabilities of NVIDIA GPU graphics cards in order to allow materials scientists to do better and fast science. GPU acceleration is currently available for the Plane-Wave Self-Consistent Field (PWscf) code and the energy barriers and reaction pathways through the Nudged Elastic Band method (NEB) package.

QE-GPU is provided "as is" and with no warranty. This software is distributed under the GNU General Public License, please see the files LICENSE and DISCLAIMER for details. This README presents an introduction to compiling, installing, and using QE-GPU.

Supported GPU Architectures

GPU gpu-arch
M2070 Fermi
M2070Q Fermi
M2090 Fermi
K20 Kepler
K20c Kepler
K20x Kepler
K40 Kepler
K40c Kepler
K80 Kepler
P100 (PCIe) Pascal (CUDA 8.0 mandatory)
P100 (SMX2) Pascal (CUDA 8.0 mandatory)

Any other GPU not listed in this table is not officially supported. The code may work but due to lack of proper double precision support or ECC the performance will not be ideal.

for more information about NVIDIA GPU, see Wikipedia

Requirements

  • Quantum ESPRESSO 5.4
  • Kepler GPU: (minimum) CUDA SDK 6.5
  • Pascal GPU: (minimum) CUDA SDK 8.0

How to compile

  1. Copy QE-GPU in espresso directory

Move to the espresso root directory, uncompress the archive

$ tar zxvf QE-GPU-<TAG-NAME>.tar.gz

and create a symbolic link with the name GPU

$ ln -s QE-GPU-<TAG-NAME> GPU
  1. Run QE-GPU configure

The QE-GPU configure is located in the GPU directory. An example of serial configuration is the following:

$ cd GPU
$ ./configure --disable-parallel --enable-openmp \
  --enable-cuda --with-gpu-arch=Kepler \
  --with-cuda-dir=<full-path-where-CUDA-is-installed> \
  --with-magma --with-phigemm
$ cd ..
$ make -f Makefile.gpu pw-gpu

An example for parallel execution:

$ cd GPU
$ ./configure --enable-parallel --enable-openmp --with-scalapack \
  --enable-cuda --with-gpu-arch=sm_35 \
  --with-cuda-dir=<full-path-where-CUDA-is-installed> \
  --without-magma --with-phigemm
$ cd ..
$ make -f Makefile.gpu pw-gpu

For additional options for QE-GPU see ./configure --help. Here a summary of all GPU-related options available:

  • --enable-cuda : enable CUDA (default: no)
  • --with-cuda-dir=<path> : specify CUDA installation directory (default is /usr/local/cuda/, MANDATORY)
  • --with-gpu-arch=<arch> : (Fermi|Kepler|Pascal) Specify the GPU target architecture (default: Kepler)
  • --with-magma : (yes|no|<path>) Use MAGMA. Self-compile or a <path> can be specified (default: no)
  • --with-phigemm : (yes|no|<path>) Use PHIGEMM. Self-compile ora <path> can be specified (default: yes)

qe-gpu-plugin's People

Contributors

fspiga avatar levibarnes avatar marsamos avatar yukwangmin 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

Watchers

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

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.