From b4957baf7539f67123fa3b19e1c9a0f5e0e72380 Mon Sep 17 00:00:00 2001
From: Pratik Nayak
+ Ginkgo is
+ A numerical linear algebra software package that provides its users with
+ highly optimized fine grid level linear algebra operations. It currently has
+ the capability to solve on the CPU with the support of OpenMP and on the GPU
+ with NVIDIA's CUDA libraries. For some operations it uses NVIDIA's own libraries, CuSparse
+ and CuBLAS, but some routines also have self implemented CUDA functions.See the Ginkgo documentation
+ for more details.
+
+ deal.II has wrapper classes to the linear algebra
+ parts of Ginkgo that provide almost the
+ same interfaces as the built-in deal.II linear algebra operations.
+
+ During the CMake configuration, the following flags should be specified:
+ Interfacing deal.II to Ginkgo
+
+ Installing deal.II with Ginkgo
+
+
+
+ -DDEAL_II_WITH_GINKGO=ON
, to enable the Ginkgo library.
+ -DGINKGO_DIR=
, to specify the path where Ginkgo has been installed.
+
+ Installing Ginkgo is quite simple. Ginkgo currently uses CMake and hence one can use + the following commands to easily install Ginkgo. For different dependencies and compatible + libraries, please refer to Ginkgo. + The different flags that can be added are: +
-DBUILD_REFERENCE={ON,OFF}
: Builds the reference single thread implementation
+ used to check the more sophisticated implementations of the GPU/CPU.
+ -DBUILD_CUDA={ON,OFF}
: Builds the GPU implementation, specifically the NVIDIA
+ CUDA implementations. This needs CUDA to be installed on the machine.
+ -DBUILD_OMP={ON,OFF}
: Builds the multithreaded OpenMP implementations.
+ + git clone https://github.com/ginkgo-project/ginkgo.git + mkdir build; cd build + cmake -DBUILD_REFERENCE=on/off -DBUILD_CUDA=on/off -DBUILD_OMP=on/off -DCMAKE_INSTALL_PREFIX=/path/to/install/ -DCMAKE_BUILD_TYPE=Debug + make install ++ + +
+ Ginkgo uses gtests
to run unit tests. The reference implementations are
+ non-optimized versions to which the OpenMP and CUDA versions are compared with for
+ correctness.
+
+ The following command, executed in Ginkgo's build directory, launches its test suite.
+
+ make test ++ The output should contain several lines of the form: +
+ Start 1: path/to/test + 1/13 Test #1: path/to/test ............................. Passed 0.01 sec ++ To run only a specific test for more details, from the build directory, run +
+ ./path/to/test ++ + +
+ Ginkgo
+ is a numerical linear algebra library with highly optimized kernels
+ for many core architectures with a focus on fine level parallelism.
+ It allows for easy switching of the executing paradigm (CUDA, OpenMP, .etc)
+ while providing a multitude of linear solvers and preconditioners
+ and extension to other linear operators with minimal changes required in the code.
+ To enable Ginkgo, pass -DGINKGO_DIR=/path/to/ginkgo
to CMake when
+ configuring deal.II. For more detailed instructions, one can refer to
+ this page.
+