The cuda for linear and integer programming project contains a collection of GPU primitives for
- linear algebra,
- linear programming and
- integer programming.
- apps - Executables using the modules in lib/
- dependencies - Building scripts for external dependencies
- libs - This is where the magic happens - all functional/backend code pieces
- algorithms - symbolical/discrete CPU algorithms
- data_structures - specialized, templated CPU data structures (ixheap, kvheap, ...)
- la - Linear algebra modules (wrapper, kkt adapters, iterative solvers, preconditioners)
- util - various utilities, such as a memory manager
- tests - Tests for executables and libs
All dependencies are downloaded and built automatically in the provided CMake build process.
The build process is based on CMake and has been tested on Ubuntu 18.04 with gcc 7.3.0 and CUDA >= 9.2. Just execute the following after cloning and cd'ing into the cloned folder:
$ mkdir build
$ cd build
$ cmake ..
$ ccmake .
$ make
In the GUI appearing after ccmake
, select the parts you wish to build and enter the CUDA_SDK_ROOT_DIR
, which
should point to the base dir of NVIDIA's CUDA samples included in their CUDA distribution.
Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
Copyright (c) 2017, Daniel Thuerck, TU Darmstadt - GCC. All rights reserved.
This software may be modified and distributed under the terms of the BSD 3-clause license. See the LICENSE file for details.