Code and experiment data of the SoCS 2026 paper "Parallelizing Classical Planning: Critical Path Heuristics on the GPU"
Authors/Creators
Description
Code
The file code.zip contains an extended version of the Fast Downward planning system (http://fast-downward.org). The code for the $h^m$ heuristic used for the CPU is stored in `src/search/heuristics/h2_heuristic.cc/h` and the GPU implementation in `src/search/heuristics/hm2_torch.cc/h`. The scripts used to run the experiments can be found in "experiments/socs26/". Please see http://www.fast-downward.org for detailed instructions on how to compile the planner. Note that the CUDA toolkit is strictly required for compilation. Please, follow the instructions:
- libtorch 2.1.2 (CUDA 12.1, cxx11 ABI)
wget https://download.pytorch.org/libtorch/cu121/libtorch-cxx11-abi-shared-with-deps-2.1.2%2Bcu121.zipunzip libtorch-cxx11-abi-shared-with-deps-2.1.2+cu121.zipexport LIBTORCH=$PWD/libtorch - CUDA 12.1 must be installed (nvcc + libcudart_static, libcudadevrt).
export CUDA_HOME=/path/to/cuda-12.1export LIBRARY_PATH=$CUDA_HOME/targets/x86_64-linux/lib:$LIBRARY_PATH - Build Fast Downward (requires cmake + gcc/g++ 12.3, C++20)
cd downward_h2CMAKE_PREFIX_PATH=$LIBTORCH \LD_LIBRARY_PATH=$LIBTORCH/lib:$CUDA_HOME/lib64:$LD_LIBRARY_PATH \./build.py release
An example to run $h^2$ on the GPU without cost partitioning is:
LD_LIBRARY_PATH=$LIBTORCH/lib:$CUDA_HOME/lib64:$LD_LIBRARY_PATH \./fast-downward.py domain.pddl problem.pddl \ --search "astar(hm2torch(m=2,use_gpu=true,cp=0,n_cp=1))"