Proxmox + GPU Passthrough + Cuda + OpenCV LXC

JasonBorn

Member
Mar 4, 2021
43
2
13
36
Hallo zusammen,
ich versuche schon seit einigen Tagen meine GPU in einem LXC mit OpenCV und Cuda zu compilen.
Gibt es eine aktuelle Anleitung (ubuntu 20.04 oder 22.04) welche mir dabei hilft? Im Internet finde ich zig Versionen, nur keine davon hat mich ans Ziel gebracht.
Liegt es daran, dass ich meine GPU (P40 Tesla) Treiber gepatcht habe? (link).
Muss ich Cuda denn auch auf dem Host installieren?
Das compilen lief auch auf 100% durch.
Habe diese beiden (gepatchen) Treiber versucht:
NVIDIA-Linux-x86_64-510.85.03-vgpu-kvm.run
NVIDIA-Linux-x86_64-525.60.12-vgpu-kvm.run
DIese habe ich auch auf dem LXC installiert (--no-kernel-modul)

Cuda Versionen habe ich mehrere durch. Leider finde ich die Nvidia Seite auch sehr unübersichtlich, was denn unterstützt wird. Welche gcc Version etc.
Cudnn Versionen wurden auch viele unterschiedliche versucht.
OpenCV ebenso.
Zum compilen verwende ich diese Einstellungen:
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D CUDA_ARCH_BIN=6.1 \
-D WITH_CUBLAS=1 \
-D BUILD_TESTS=OFF \
-D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages \ ------> mit und ohne versucht
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D HAVE_opencv_python3=ON \
-D PYTHON_EXECUTABLE=/usr/bin/python3 \
-D PYTHON2_EXECUTABLE=/usr/bin/python2 \
-D BUILD_EXAMPLES=ON ..

Am Ende funktioniert das compilen wie gesagt schon, allderdings kann ich nie Hardwareunterstützt die GPU verwenden
MIt diesem Befehl sollte eigentlich 1 herausspringen:
import cv2
count = cv2.cuda.getCudaEnabledDeviceCount()
print(count)
Hier erscheint entweder -1 (verschiedene Treiber?) oder aber folgender Fehler:
Traceback (most recent call last):<br/>
File "stdin", line 1, in module> <br/>
cv2.error: OpenCV(4.7.0) /home/*****/opencv-4.7.0/modules/core/src/cuda_info.cpp:62: error: (-217:Gpu API call) unknown error in function 'getCudaEnabledDeviceCount'
Deshalb noch einmal die Frage, an was das liegt und/oder hat mir jemand eine aktuelle Anleitung?

Vielen Dank
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!