https://github.com/dthuerck/culip
Code for the culip ("CUda for Linear and Integer Programming") project, containing GPU primitives for linear algebra, linear optimization and (someday) integer optimization.
https://github.com/dthuerck/culip
Last synced: 27 days ago
JSON representation
Code for the culip ("CUda for Linear and Integer Programming") project, containing GPU primitives for linear algebra, linear optimization and (someday) integer optimization.
- Host: GitHub
- URL: https://github.com/dthuerck/culip
- Owner: dthuerck
- License: other
- Created: 2018-10-08T07:17:59.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-10-12T19:01:00.000Z (over 6 years ago)
- Last Synced: 2025-04-01T12:50:51.606Z (about 2 months ago)
- Language: Cuda
- Size: 14 MB
- Stars: 18
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# culip

## Project description
The **cu**da for **l**inear and **i**nteger **p**rogramming 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
* [NVIDIA Thrust](https://developer.nvidia.com/thrust)
* [NVIDIA CUB](https://nvlabs.github.io/cub/)
* [MMIO](https://math.nist.gov/MatrixMarket/)
* [CBlas](https://www.netlib.org/blas/)
* [LAPACKE](http://www.netlib.org/lapack/lapacke.html)
* [OpenBLAS](https://www.openblas.net/)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.