openpose icon indicating copy to clipboard operation
openpose copied to clipboard

Incompatibiltiy in `CUDA_ARCH` and `CUDA_ARCH_NAME` between OpenPose and Caffe

Open RobertoRoos opened this issue 2 years ago • 1 comments

Issue Summary

The CMake flag CUDA_ARCH is passed directly to Caffe as CUDA_ARCH_NAME, but the options are not compatible.
OpenPose expects a name like "[Name] ([Cuda version])", while Caffe expects just "[Name]".

Cuda.cmake from OpenPose:

set(__archs_names "Kepler (CUDA >= 5)" "Maxwell (CUDA >= 6)" "Pascal (CUDA >= 8)" "Volta (CUDA >= 9)" "Turing (CUDA >= 10)" "All" "Manual")

Cuda.cmake from Caffe:

set(__archs_names "Fermi" "Kepler" "Maxwell" "Pascal" "All" "Manual")

The master branches haven't changed this since v1.7.0.

Executed Command (if any)

cmake .. -DBUILD_PYTHON=ON -DCUDA_ARCH="Pascal \(CUDA >= 8\)"
make

Errors (if any)

-- Found cuDNN: ver. 7.5.0 found (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libcudnn.so) CMake Error at cmake/Cuda.cmake:101 (message): Only Kepler, Maxwell, Pascal, Volta, Turing, All, Manual, Auto architeture names are supported. Call Stack (most recent call first): cmake/Cuda.cmake:299 (caffe_select_nvcc_arch_flags) cmake/Dependencies.cmake:85 (include) CMakeLists.txt:49 (include)

-- Configuring incomplete, errors occurred!

Type of Issue

  • Compilation/installation error

Your System Configuration

  1. Can be produced with this Dockerfile:
FROM exsidius/openpose:latest

RUN cd /openpose && git fetch && git checkout v1.7.0 && cd build && \
    cmake .. -DBUILD_PYTHON=ON cmake .. -DBUILD_PYTHON=ON -DCUDA_ARCH="Pascal \(CUDA >= 8\)" && make -j`nproc` && make install
  1. OpenPose version: v1.7.0

  2. General configuration:

    • Installation mode: Installing inside Docker using CMake
    • Operating system Ubuntu 20.04, but container is based on Ubuntu 16.04
    • Release or Debug mode? Release
    • Compiler; gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
  3. Non-default settings:

    • 3-D Reconstruction module added? No
    • Any other custom CMake configuration with respect to the default version?: -DBUILD_PYTHON=ON
  4. 3rd-party software:

    • Caffe version: Default from OpenPose
    • CMake version: cmake version 3.5.1
    • OpenCV version: pre-compiled apt-get install libopencv-dev (only Ubuntu); OpenPose default (only Windows); compiled from source? If so, 2.4.9, 2.4.12, 3.1, 3.2?; ...?
  5. If GPU mode issue:

    • CUDA version: 10
    • cuDNN version: 7.5
    • GPU model: Titan Xp
  6. If CPU-only mode issue:

    • CPU brand & model:
    • Total RAM memory available:
  7. If Python API:

    • Python version: 2.7, 3.7, ...?
    • Numpy version (python -c "import numpy; print numpy.version.version" in Ubuntu):
  8. If Windows system:

    • Portable demo or compiled library?
  9. If speed performance issue:

RobertoRoos avatar Mar 21 '22 11:03 RobertoRoos

I could work around this by using the following cmake command instead, avoiding the architecture name:

cmake .. -DBUILD_PYTHON=ON -DCUDA_ARCH=Manual -DCUDA_ARCH_BIN="60 61 62" -DCUDA_ARCH_PTX="61"

RobertoRoos avatar Mar 21 '22 11:03 RobertoRoos