83 lines
2.1 KiB
Bash
83 lines
2.1 KiB
Bash
#!/bin/bash
|
|
|
|
# Exit on error
|
|
set -e
|
|
|
|
# Function to check CUDA installation
|
|
check_cuda() {
|
|
if ! command -v nvcc &> /dev/null; then
|
|
echo "CUDA not found! Please install CUDA toolkit first."
|
|
exit 1
|
|
fi
|
|
echo "Found CUDA installation: $(nvcc --version | head -n1)"
|
|
}
|
|
|
|
# Function to check GPU
|
|
check_gpu() {
|
|
if ! command -v nvidia-smi &> /dev/null; then
|
|
echo "No NVIDIA GPU found or drivers not installed!"
|
|
exit 1
|
|
fi
|
|
echo "Found GPU: $(nvidia-smi -L)"
|
|
}
|
|
|
|
# Check CUDA and GPU
|
|
check_cuda
|
|
check_gpu
|
|
|
|
# Get CUDA compute capability
|
|
CUDA_ARCH=$(nvidia-smi --query-gpu=compute_cap --format=csv,noheader)
|
|
echo "GPU Compute Capability: $CUDA_ARCH"
|
|
|
|
# Create build directory
|
|
cd ~/opencv_build/opencv
|
|
mkdir -p build
|
|
cd build
|
|
|
|
# Configure OpenCV build
|
|
cmake -D CMAKE_BUILD_TYPE=RELEASE \
|
|
-D CMAKE_INSTALL_PREFIX=/usr/local \
|
|
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
|
|
-D WITH_CUDA=ON \
|
|
-D WITH_CUDNN=OFF \
|
|
-D OPENCV_DNN_CUDA=ON \
|
|
-D ENABLE_FAST_MATH=1 \
|
|
-D CUDA_FAST_MATH=1 \
|
|
-D CUDA_ARCH_BIN=$CUDA_ARCH \
|
|
-D WITH_CUBLAS=1 \
|
|
-D WITH_TBB=ON \
|
|
-D WITH_V4L=ON \
|
|
-D WITH_QT=ON \
|
|
-D WITH_OPENGL=ON \
|
|
-D WITH_GSTREAMER=ON \
|
|
-D OPENCV_GENERATE_PKGCONFIG=ON \
|
|
-D OPENCV_PC_FILE_NAME=opencv.pc \
|
|
-D OPENCV_ENABLE_NONFREE=ON \
|
|
-D INSTALL_PYTHON_EXAMPLES=OFF \
|
|
-D INSTALL_C_EXAMPLES=OFF \
|
|
-D BUILD_EXAMPLES=OFF \
|
|
-D BUILD_opencv_cudacodec=OFF \
|
|
-D OPENCV_ENABLE_MEMALIGN=ON \
|
|
-D WITH_OPENEXR=ON \
|
|
-D OPENCV_ENABLE_MEMALIGN=ON \
|
|
-D WITH_EIGEN=ON \
|
|
-D ENABLE_PRECOMPILED_HEADERS=OFF \
|
|
..
|
|
|
|
# Build using all available CPU cores
|
|
make -j$(nproc)
|
|
|
|
# Install
|
|
sudo make install
|
|
sudo ldconfig
|
|
|
|
# Print OpenCV installation information
|
|
echo "OpenCV installation completed!"
|
|
echo "OpenCV version: $(pkg-config --modversion opencv4)"
|
|
echo "Installation location: $(pkg-config --variable=prefix opencv4)"
|
|
|
|
# Create a pkg-config path file
|
|
sudo sh -c 'echo "/usr/local/lib/pkgconfig" > /etc/ld.so.conf.d/opencv.conf'
|
|
sudo ldconfig
|
|
|
|
echo "Setup complete! You can now use OpenCV with CUDA support." |