-
-
Notifications
You must be signed in to change notification settings - Fork 56.5k
CUDA compilation is not using ccache #24195
Copy link
Copy link
Closed
opencv/opencv_contrib
#3400Labels
category: build/installcategory: gpu/cuda (contrib)OpenCV 4.0+: moved to opencv_contribOpenCV 4.0+: moved to opencv_contribfeature
Description
System Information
OpenCV version: 4.8.0
Operating System / Platform: Ubuntu 20.04.6 LTS
Compiler & compiler version: GCC 9.4.0
CUDA: 11.4
Detailed description
Using ccache 3.7.7 (Ubuntu version) or latest version (4.8.2), ccache is found by OpenCV's cmake but used only to compile C/C++
Steps to reproduce
cd opencv
mkdir build && cd build
cmake -DWITH_CUDA=ON -DBUILD_LIST=core,cudev,cudaimgproc \
-DCUDA_ARCH_BIN="7.2" \
-DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules ..
VERBOSE=1 make opencv_core
VERBOSE=1 make opencv_cudaimgproc
We could see that ccache is used for C++ files
[ 22%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/alloc.cpp.o
cd /home/dgeld/src/opencv/build/modules/core && /usr/bin/ccache /usr/bin/c++ -DCVAPI_EXPORTS -DOPENCV_ALLOCATOR_STATS_COUNTER_TYPE="long long" -DOPENCV_WITH_ITT=1 -D_USE_MATH_DEFINES -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DHAVE_MALLOC_H=1 -DHAVE_MEMALIGN=1 -DHAVE_POSIX_MEMALIGN=1 -I/home/dgeld/src/opencv/build/3rdparty/ippicv/ippicv_lnx/icv/include -I/home/dgeld/src/opencv/build/3rdparty/ippicv/ippicv_lnx/iw/include -I/home/dgeld/src/opencv/build -I/home/dgeld/src/opencv/modules/core/include -I/home/dgeld/src/opencv/build/modules/core -I/home/dgeld/src/opencv_contrib/modules/cudev/include -I/home/dgeld/src/opencv/3rdparty/include/opencl/1.2 -I/home/dgeld/src/opencv/3rdparty/ittnotify/include -isystem /usr/local/cuda-11.4/include -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Winit-self -Wpointer-arith -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -Wno-undef -Wno-enum-compare -Wno-unused-function -Wno-shadow -O3 -DNDEBUG -DNDEBUG -std=c++11 -fPIC -MD -MT modules/core/CMakeFiles/opencv_core.dir/src/alloc.cpp.o -MF CMakeFiles/opencv_core.dir/src/alloc.cpp.o.d -o CMakeFiles/opencv_core.dir/src/alloc.cpp.o -c /home/dgeld/src/opencv/modules/core/src/alloc.cpp
But CUDA files are not cached:
[ 14%] Building NVCC (Device) object modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o
cd /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda && /snap/cmake/1329/bin/cmake -E make_directory /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/.
cd /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda && /snap/cmake/1329/bin/cmake -D verbose:BOOL=1 -D build_configuration:STRING=Release -D generated_file:STRING=/home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/./cuda_compile_1_generated_gpu_mat.cu.o -D generated_cubin_file:STRING=/home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/./cuda_compile_1_generated_gpu_mat.cu.o.cubin.txt -P /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o.Release.cmake
-- Removing /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/./cuda_compile_1_generated_gpu_mat.cu.o
/snap/cmake/1329/bin/cmake -E rm -f /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/./cuda_compile_1_generated_gpu_mat.cu.o
-- Generating dependency file: /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o.NVCC-depend
/usr/local/cuda-11.4/bin/nvcc -M -D__CUDACC__ /home/dgeld/src/opencv/modules/core/src/cuda/gpu_mat.cu -o /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o.NVCC-depend -ccbin /usr/bin/cc -m64 -D_USE_MATH_DEFINES -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS -DOPENCV_WITH_ITT=1 "-DOPENCV_ALLOCATOR_STATS_COUNTER_TYPE=long long" -D__OPENCV_BUILD=1 -Xcompiler ,\"-fsigned-char\",\"-W\",\"-Wall\",\"-Wreturn-type\",\"-Wnon-virtual-dtor\",\"-Waddress\",\"-Wsequence-point\",\"-Wformat\",\"-Wformat-security\",\"-Wmissing-declarations\",\"-Winit-self\",\"-Wpointer-arith\",\"-Wuninitialized\",\"-Wno-comment\",\"-Wno-strict-overflow\",\"-fdiagnostics-show-option\",\"-Wno-long-long\",\"-pthread\",\"-fomit-frame-pointer\",\"-ffunction-sections\",\"-fdata-sections\",\"-msse\",\"-msse2\",\"-msse3\",\"-fvisibility=hidden\",\"-Wno-undef\",\"-Wno-enum-compare\",\"-Wno-unused-function\",\"-Wno-shadow\",\"-Wno-unused-but-set-variable\",\"-O3\",\"-DNDEBUG\",\"-DNDEBUG\" -gencode arch=compute_72,code=sm_72 -D_FORCE_INLINES -Xcompiler -DCVAPI_EXPORTS -Xcompiler -fPIC --std=c++14 -DNVCC -I/usr/local/cuda-11.4/include -I/home/dgeld/src/opencv/build/3rdparty/ippicv/ippicv_lnx/icv/include -I/home/dgeld/src/opencv/build/3rdparty/ippicv/ippicv_lnx/iw/include -I/home/dgeld/src/opencv/build -I/home/dgeld/src/opencv/modules/core/include -I/home/dgeld/src/opencv/build/modules/core -I/home/dgeld/src/opencv_contrib/modules/cudev/include -I/home/dgeld/src/opencv/3rdparty/include/opencl/1.2 -I/home/dgeld/src/opencv/3rdparty/ittnotify/include
-- Generating temporary cmake readable file: /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o.depend.tmp
/snap/cmake/1329/bin/cmake -D input_file:FILEPATH=/home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o.NVCC-depend -D output_file:FILEPATH=/home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o.depend.tmp -D verbose=1 -P /snap/cmake/1329/share/cmake-3.27/Modules/FindCUDA/make2cmake.cmake
-- Copy if different /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o.depend.tmp to /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o.depend
/snap/cmake/1329/bin/cmake -E copy_if_different /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o.depend.tmp /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o.depend
-- Removing /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o.depend.tmp and /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o.NVCC-depend
/snap/cmake/1329/bin/cmake -E rm -f /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o.depend.tmp /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o.NVCC-depend
-- Generating /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/./cuda_compile_1_generated_gpu_mat.cu.o
/usr/local/cuda-11.4/bin/nvcc /home/dgeld/src/opencv/modules/core/src/cuda/gpu_mat.cu -c -o /home/dgeld/src/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/./cuda_compile_1_generated_gpu_mat.cu.o -ccbin /usr/bin/cc -m64 -D_USE_MATH_DEFINES -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS -DOPENCV_WITH_ITT=1 "-DOPENCV_ALLOCATOR_STATS_COUNTER_TYPE=long long" -D__OPENCV_BUILD=1 -Xcompiler ,\"-fsigned-char\",\"-W\",\"-Wall\",\"-Wreturn-type\",\"-Wnon-virtual-dtor\",\"-Waddress\",\"-Wsequence-point\",\"-Wformat\",\"-Wformat-security\",\"-Wmissing-declarations\",\"-Winit-self\",\"-Wpointer-arith\",\"-Wuninitialized\",\"-Wno-comment\",\"-Wno-strict-overflow\",\"-fdiagnostics-show-option\",\"-Wno-long-long\",\"-pthread\",\"-fomit-frame-pointer\",\"-ffunction-sections\",\"-fdata-sections\",\"-msse\",\"-msse2\",\"-msse3\",\"-fvisibility=hidden\",\"-Wno-undef\",\"-Wno-enum-compare\",\"-Wno-unused-function\",\"-Wno-shadow\",\"-Wno-unused-but-set-variable\",\"-O3\",\"-DNDEBUG\",\"-DNDEBUG\" -gencode arch=compute_72,code=sm_72 -D_FORCE_INLINES -Xcompiler -DCVAPI_EXPORTS -Xcompiler -fPIC --std=c++14 -DNVCC -I/usr/local/cuda-11.4/include -I/home/dgeld/src/opencv/build/3rdparty/ippicv/ippicv_lnx/icv/include -I/home/dgeld/src/opencv/build/3rdparty/ippicv/ippicv_lnx/iw/include -I/home/dgeld/src/opencv/build -I/home/dgeld/src/opencv/modules/core/include -I/home/dgeld/src/opencv/build/modules/core -I/home/dgeld/src/opencv_contrib/modules/cudev/include -I/home/dgeld/src/opencv/3rdparty/include/opencl/1.2 -I/home/dgeld/src/opencv/3rdparty/ittnotify/include
I would expect the last line /usr/local/cuda-11.4/bin/nvcc /home/dgeld/src/opencv/modules/core/src/cuda/gpu_mat.cu to use ccache.
Issue submission checklist
- I report the issue, it's not a question
- I checked the problem with documentation, FAQ, open issues, forum.opencv.org, Stack Overflow, etc and have not found any solution
- I updated to the latest OpenCV version and the issue is still there
- There is reproducer code and related data files (videos, images, onnx, etc)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
category: build/installcategory: gpu/cuda (contrib)OpenCV 4.0+: moved to opencv_contribOpenCV 4.0+: moved to opencv_contribfeature