Skip to content

Latest commit

 

History

History
51 lines (42 loc) · 1.89 KB

README.md

File metadata and controls

51 lines (42 loc) · 1.89 KB

culip

culip logo

Project description

The cuda for linear and integer programming project contains a collection of GPU primitives for

  • linear algebra,
  • linear programming and
  • integer programming.

Source directory structure

  • 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

Dependencies

All dependencies are downloaded and built automatically in the provided CMake build process.

Get started

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.

License and Copyright

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.