Ich habe Maschine mit mehreren GPUs. Meine Idee ist es, sie an verschiedene Docker-Instanzen anzuhängen, um diese Instanzen in CUDA (oder OpenCL) -Berechnungen zu verwenden.Wie GPGPU innerhalb Docker Bild mit anderen als Host-Kernel und GPU-Treiber Version
Mein Ziel ist es, Docker Image mit ziemlich alten Ubuntu und ziemlich alten AMD-Grafiktreibern (13.04) zu installieren. Grund ist einfach: ein Upgrade auf eine neuere Treiberversion hat mein OpenCL-Programm kaputt gemacht (wegen fehlerhafter AMD Linux-Treiber).
Also Frage folgt. Ist es möglich, Docker Image mit alten Ubuntu, alten Kernel (3.14 zum Beispiel) und alten AMD (fglrx
) Treiber auf frischem Arch Linux Setup mit frischen Kernel 4.2 und neueren AMD (fglrx
) Treibern im Repository laufen zu lassen?
P.S. Ich habe versucht, this answer (mit Nvidia-Karten) und leider deviceQuery
innerhalb Docker Bild keine CUDA Geräte sieht (wie es mit einigen commentors der ursprünglichen Antwort passiert) ...
P.P.S. Mein Setup:
- CPU: Intel Xeon E5-2670
GPUs:
1 x Radeon HD 7970
$ lspci -nn | grep Rad 83:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT [Radeon HD 7970/8970 OEM/R9 280X] [1002:6798] 83:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT HDMI Audio [Radeon HD 7970 Series] [1002:aaa0]
2 x GeForce GTX Titan Schwarz
Ich bin ziemlich sicher, dass alle Docker Container auf einer bestimmten Maschine [müssen den gleichen Kernel verwenden] (http://stackoverflow.com/questions/25444099/why-docker-has-ability-to-run-different-linux -Distribution) als Host. Sie können ein Ubuntu- "Image" auf einem Arch Linux-Setup ausführen, aber sie müssen den gleichen Kernel (den Host-Kernel) verwenden. Ich denke, Ihre Frage zu DeviceQuery in einem Docker-Image ist ein separates Problem. Es ist mir nicht klar, dass das überhaupt eine Programmierfrage ist. –
Einige Anwendungen hängen stark von der Kernel-Version ab (und daher von den Fähigkeiten). Also, wie ist es möglich, Kernel zu teilen (wenn sie sehr unterschiedlich sind)? Stimmt es, dass ich das gleiche "Image" OS wie Host OS ausführen soll? Ich denke, es ist ziemlich Programmierfrage zumindest in DevOps Sinn. – petRUShka