Turbo Constraint Solver
|
Functions | |
void | barebones_dive_and_solve (const Configuration< battery::standard_allocator > &config) |
The full GPU version (gpu_dive_and_solve
) is not compiling on modern GPU hardware (SM >= 9) due to the kernel being too large. We circuvanted this issue by creating an hybrid version where only propagation is executed on the GPU (hybrid_dive_and_solve
). This has the disadvantage of memory transfers between CPU and GPU and synchronization overheads. We propose a new "barebones" version which contains less abstractions than the GPU and hybrid versions, but have the same functionalities. In particular, we directly implement the branch-and-bound algorithm here and avoid using lala::BAB
and lala::SearchTree
which are nice from a software engineering perspective but bring significant overhead. This version is intended to reach the best possible performance.
Terminology:
void barebones::barebones_dive_and_solve | ( | const Configuration< battery::standard_allocator > & | config | ) |