Instalacja TensorFlow na platformie Docker działającej na maszynie wirtualnej NSIS vGPU
TensorFlow to jedna z najpopularniejszych bibliotek do uczenia maszynowego. W połączeniu z maszynami wirtualnymi opartymi na vGPU znacznie przyspiesza proces uczenia maszynowego. W tym artykule opiszemy, jak użyć Dockera, aby zainstalować TensorFlow na chmurze NSIS z włączoną obsługą vGPU.
Aby zapoznać się ze sposobem instalacji TensorFlow, który nie wymaga użycia Dockera, postępuj zgodnie z tym artykułem:
Instrukcje instalacji są oparte na następujących źródłach:
Przewodnik instalacji TensorFlow
Wymagania wstępne
Nr 1. Konto
Jest wymagane konto hostingowe NSIS z dostępem do interfejsu Horizon: https://horizon.cloudferro.com.
Nr 2. Maszyna wirtualna z GPU NVIDIA
Instalacja TensorFlow, jak wyjaśniono poniżej, została przetestowana na maszynie wirtualnej Ubuntu 20.04 z GPU NVIDIA, która została utworzona przy użyciu domyślnej konfiguracji hostingu NSIS. Aby uzyskać dostęp do tej maszyny wirtualnej przez SSH, należy użyć konta eouser.
Ta maszyna wirtualna musi mieć
Floating IP
Musi być możliwe połączenie się z nią za pomocą klucza SSH przechowywanego na komputerze.
Poniższy artykuł opisuje, jak utworzyć taką maszynę: Jak utworzyć nową maszynę wirtualną Linux z NVIDIA Virtual GPU w Dashboardzie OpenStack Horizon na NSIS Cloud.
Jeśli podczas tego procesu nie dodano floating IP, można to zrobić w następujący sposób: Jak dodać lub usunąć Floating IP maszyny wirtualnej w NSIS.
Co zostanie omówione?
Aktualizacja oprogramowanie na maszynie wirtualnej i sprawdzenie, czy karta graficzna NVIDIA działa.
Instalacja platformy Docker
Instalacja oraz weryfikacja NVIDIA Container Toolkit
Instalacja TensorFlow
Krok 1: Aktualizacja oprogramowania na maszynie wirtualnej i sprawdzenie, czy karta graficzna NVIDIA działa.
Połącz się z maszyną wirtualną za pomocą SSH, wykonując następujące polecenie (zastąp 64.225.129.70 Floating IP maszyny wirtualnej).
Zaktualizuj całe oprogramowanie na maszynie wirtualnej:
sudo apt update && sudo apt upgrade
Uruchom ponownie maszynę wirtualną:
sudo reboot
Po ponownym uruchomieniu maszyny wirtualnej połącz się z nią za pomocą SSH, jak poprzednio.
Sprawdź, czy karta graficzna NVIDIA działa:
nvidia-smi
Wynik polecenia powinien wyglądać następująco:
Krok 2: Instalacja platformy Docker
Zainstaluj platformę Docker za pomocą oficjalnego skryptu i włącz jej usługę:
curl https://get.docker.com | sh && sudo systemctl --now enable docker
Krok 3: Instalacja i weryfikacja NVIDIA Container Toolkit (ndivia-docker2)
NVIDIA Container Toolkit to narzędzie do tworzenia i uruchamiania kontenerów Docker z akceleracją przez GPU. Dodatkowe informacje można znaleźć tutaj: https://catalog.ngc.nvidia.com/orgs/nvidia/teams/k8s/containers/container-toolkit
Jest ono wymagane, ponieważ w kontenerze będziemy uruchamiać przepływ pracy z akceleracją GPU.
Dodaj odpowiednie repozytorium i klucz GPG:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
Teraz zainstaluj pakiet nvidia-docker2:
sudo apt update && sudo apt install -y nvidia-docker2
Uruchom ponownie środowisko Docker:
sudo systemctl restart docker
Sprawdź, czy NVIDIA Container Toolkit działa:
sudo docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi
Powinien zostać wyświetlony wynik polecenia nvidia-smi (tym razem jest ono jednak uruchamiane wewnątrz kontenera):
Krok 4 Zainstaluj TensorFlow z obsługą vGPU
Pobierz obraz TensorFlow:
sudo docker pull tensorflow/tensorflow:2.11.0-gpu
Uruchom w nim test:
sudo docker run --gpus all -it --rm tensorflow/tensorflow:2.11.0-gpu python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
Po wykonaniu poprzedniego polecenia wyświetlany jest wynik dla operacji TensorFlow na losowej próbce.
Dane wyjściowe powinny zawierać informacje podobne do tych:
Co można zrobić dalej?
Teraz, po pomyślnym zainstalowaniu TensorFlow na maszynie wirtualnej NSIS z włączonym vGPU, możesz spróbować użyć go do celów praktycznych. Jeden ze sposobów jego przetestowania został opisany w artykule
Zobaczysz tam, jak szybka może być operacja deep learning, gdy obecny jest vGPU.