Hi, I want install opencv with cuda to docker containner
for dGPU RTX 3090Ti,
Use ultralytics/ultralytics
docker image,
And I use theese script to install:
https://forums.developer.nvidia.com/uploads/short-url/zDxI9fyMGjvgnarGpnGYNsS8mk2.sh
But opencv can’t with cuda,
How can I fix it?
iGPU Host Info:
| NVIDIA-SMI 535.161.07 Driver Version: 535.161.07 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 3090 Ti Off | 00000000:01:00.0 Off | Off |
| 0% 42C P8 26W / 480W | 331MiB / 24564MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
docker continner torch with cuda,but opencv can’t:
docker compose :
services:
ultralytics:
image: ultralytics/ultralytics
container_name: ultralytics-container
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
working_dir: /app
volumes:
- ..:/app
command: "python3 app.py"
ports:
- "5500:5000"
- "8080:8080"
ipc: host
stdin_open: true
tty: true
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids: ['0']
capabilities: [gpu,video]
containner python version:
I use nvidia pytorch fix this problem
docker file :
# Ultralytics YOLO 🚀, AGPL-3.0 license
# Builds ultralytics/ultralytics:latest image on DockerHub https://hub.docker.com/r/ultralytics/ultralytics
# Image is CUDA-optimized for YOLO11 single/multi-GPU training and inference
# Start FROM PyTorch image https://hub.docker.com/r/pytorch/pytorch or nvcr.io/nvidia/pytorch:23.03-py3
FROM nvcr.io/nvidia/pytorch:23.08-py3
RUN apt-get update && \
apt-get install -y --no-install-recommends \
gcc git zip unzip wget curl htop libgl1 libglib2.0-0 libpython3-dev gnupg g++ libusb-1.0-0 libsm6 \
&& rm -rf /var/lib/apt/lists/*
# Security updates
# https://security.snyk.io/vuln/SNYK-UBUNTU1804-OPENSSL-3314796
RUN apt upgrade --no-install-recommends -y openssl tar
# Create working directory
WORKDIR /app
# install requirements
COPY requirements.txt .
RUN pip install -r requirements.txt
# install opencv with CUDA support
COPY scripts .
RUN rm -r workspace
RUN bash ./build_opencv.sh
./build_opencv.sh
#!/bin/bash
#
# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved.
#
# NVIDIA Corporation and its licensors retain all intellectual property
# and proprietary rights in and to this software, related documentation
# and any modifications thereto. Any use, reproduction, disclosure or
# distribution of this software and related documentation without an express
# license agreement from NVIDIA Corporation is strictly prohibited.
#
version="4.11.0"
folder="workspace"
set -e
echo "------------------------------------"
echo "** Install requirement (1/4)"
echo "------------------------------------"
apt-get update
apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python3.10-dev python3-numpy
apt-get install -y libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libv4l-dev v4l-utils qv4l2
apt-get install -y curl
echo "------------------------------------"
echo "** Download opencv "${version}" (2/4)"
echo "------------------------------------"
mkdir $folder
cd ${folder}
curl -L https://github.com/opencv/opencv/archive/${version}.zip -o opencv-${version}.zip
curl -L https://github.com/opencv/opencv_contrib/archive/${version}.zip -o opencv_contrib-${version}.zip
unzip opencv-${version}.zip
unzip opencv_contrib-${version}.zip
rm opencv-${version}.zip opencv_contrib-${version}.zip
cd opencv-${version}/
echo "------------------------------------"
echo "** Build opencv "${version}" (3/4)"
echo "------------------------------------"
mkdir release
cd release/
cmake -D WITH_CUDA=ON -D WITH_CUDNN=ON -D CUDA_ARCH_BIN="8.6" -D CUDA_ARCH_PTX="" -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-${version}/modules -D WITH_GSTREAMER=ON -D WITH_LIBV4L=ON -D BUILD_opencv_python3=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j$(nproc)
echo "------------------------------------"
echo "** Install opencv "${version}" (4/4)"
echo "------------------------------------"
make install
echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export PYTHONPATH=/usr/local/lib/python3.10/dist-packages:$PYTHONPATH' >> ~/.bashrc
source ~/.bashrc
echo "** Install opencv "${version}" successfully"
echo "** Bye :)"
docker compose:
# nvidia docker config:
# https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/docker-specialized.html
services:
app:
image: <build image name>
container_name: <containner name>
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
working_dir: /app
volumes:
- ..:/app
command: "tail -f /dev/null"
ports:
- "5500:5000"
- "8080:8080"
ipc: host
stdin_open: true
tty: true
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids: ['0']
capabilities: [gpu,video,compute,utility]
1 Like
system
Closed
3
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.