Skip to content

pockerman/cuberl

Repository files navigation

cuberl

cuberl is a C++ library containing implementations of various reinforcement learning, filtering and planning algorithms. The following is an indicative list of examples.

Examples

Introductory

Reinforcement learning

Path planning

Installation

The cubeai library has a host of dependencies:

In addition, the library also incorporates, see (include/cubeai/extern), the following libraries (you don't need to install these):

Enabling PyTorch and CUDA

cuberl can be complied with CUDA and/or PyTorch support. If PyTorch has been compiled using CUDA support, then you need to enable CUDA as well. In order to do so set the flag USE_CUDA in the CMakeLists.txt to ON. cuberl assumes that PyTorch is compiled with the C++11 ABI.

Documentation dependencies

There are extra dependencies if you want to generate the documentation. Namely,

Note that if Doxygen is not found on your system CMake will skip this. On a Ubuntu/Debian based machine, you can install Doxygen using

sudo apt-get install doxygen

Similarly, install sphinx_rtd_theme using

pip install sphinx_rtd_theme

Install breathe using

pip install breathe

Install m2r2 using

pip install m2r2

Issues

undefined reference to cudaLaunchKernelExC@libcudart.so.11.0.

You may want to check with nvidia-msi your CUDA Version and make sure it is compatible with the PyTorch library you are linking against

TypeError: Descriptors cannot be created directly.

This issue may be occur when using the TensorBoardServer in cuberl. This issue is related with an issue with protobuf. See: https://stackoverflow.com/questions/72441758/typeerror-descriptors-cannot-not-be-created-directly for possible solutions.