Instalacja TensorFlow na maszynie wirtualnej z włączoną obsługą vGPU na NSIS Cloud
TensorFlow jest jedną z najpopularniejszych bibliotek do uczenia maszynowego, ale w praktyce jej głównym problemem jest niska prędkość działania. Korzystanie z niej na maszynach wirtualnych z obsługą vGPU znacznie przyspieszy proces uczenia maszynowego, więc w tym artykule pokażemy, jak zainstalować w chmurze TensorFlow z włączoną obsługą vGPU.
Co zostanie omówione?
Weryfikacja dostępności zestawu narzędzi do instalacji
Instalacja biblioteki Deep Neural Network (cuDNN), która jest akcelerowaną przez GPU biblioteką prymitywów dla głębokich sieci neuronowych.
Instalacja TensorFlow ze strony NVIDIA.
Informacja
TensorFlow można również zainstalować za pomocą Dockera: /cuttingedge/Install-TensorFlow-on-Docker-Running-on-NSIS-vGPU-Virtual-Machine.
Wymagania wstępne
Musisz mieć maszynę wirtualną z kartą graficzną NVIDIA aktywowaną w chmurze NSIS. Instrukcje tworzenia takiej maszyny można znaleźć tutaj: Jak utworzyć nową maszynę wirtualną Linux z NVIDIA Virtual GPU w Dashboardzie OpenStack Horizon na NSIS Cloud. Ta maszyna musi
mieć przypisany floating IP (patrz artykuł Jak dodać lub usunąć Floating IP maszyny wirtualnej w NSIS).
i musisz być w stanie zalogować się do niej za pomocą klucza SSH przechowywanego na komputerze lokalnym.
Aby użyć SSH na komputerze z systemem Linux, zobacz artykuł Jak połączyć się z maszyną wirtualną przez SSH w systemie Linux na NSIS. Aby uzyskać dostęp z systemu Windows, zobacz artykuł Jak uzyskać dostęp do maszyny wirtualnej z Windows PuTTY na NSIS.
Te instrukcje zostały przetestowane na maszynie wirtualnej Ubuntu 20.04 z domyślną konfiguracją hostingu NSIS. W szczególności oznacza to korzystanie z konta eouser dla poleceń CLI, jak opisano w artykułach powyżej.
Wymagana jest również rejestracja w programie deweloperskim NVIDIA <https://developer.nvidia.com/developer-program>`_. Jeśli nie jesteś jeszcze zarejestrowany(-a), będziesz mieć możliwość zrobić to, czytając ten artykuł.
Aby uruchomić TensorFlow, należy również zainstalować bibliotekę CuDNN używaną do interakcji z sieciami neuronowymi i TensorFlow. W tym artykule będziesz postępować zgodnie z instrukcjami opartymi na instrukcji instalacji cuDNN (dla Debiana/Ubuntu) z oficjalnej strony NVidii.
Krok 1 Weryfikacja dostępności zestawu narzędzi
Zaloguj się do maszyny wirtualnej za pomocą SSH (zastąp adres 64.225.129.70 Floating IP swojej maszyny):
Sprawdź dostępność preinstalowanego zestawu narzędzi do obsługi GPU, uruchamiając następujące polecenie:
nvidia-smi
Odpowiedź terminala pokazuje wstępnie zainstalowane wersje zestawu narzędzi:
NVIDIA-SMI (nvidia-smi) - narzędzie CLI zapewniające pomoc w zarządzaniu i monitorowaniu urządzeń GPU NVIDIA <https://developer.nvidia.com/nvidia-system-management-interface>`_
Sterownik NVIDIA - listę sterowników można sprawdzić pod tym linkiem <https://www.nvidia.com/Download/index.aspx?lang=en-us>`_.
Wersja CUDA - zestaw bibliotek do tworzenia aplikacji wykorzystujących GPU – Cuda Toolkit
NVIDIA-SMI 470.82.01 Driver Version: 470.82.01 CUDA Version: 11.4
Zapamiętaj lub zapisz wersję CUDA - będziesz tego potrzebować później. Możesz teraz wylogować się ze zdalnego komputera za pomocą następującego polecenia:
exit
Krok 2 Instalacja cuDNN
Aby pobrać cuDNN, przejdź do następującej strony internetowej: https://developer.nvidia.com/rdp/cudnn-download. Jeśli nie jesteś zalogowany(-a) na swoje konto NVIDIA Developer lub jeszcze go nie masz, zobaczysz następujący ekran:
W zależności od tego, czy masz konto, czy nie, kliknij Login lub Join now. Aby się zarejestrować, należy wypełnić krótki formularz i zaakceptować odpowiednie umowy prawne. Jeśli twoje hasło jest zbyt długie, możesz nie być w stanie się zarejestrować, mimo że nie otrzymasz żadnych informacji o błędzie ze strony internetowej.
Po zalogowaniu zobaczysz następujący ekran:
Zaakceptuj umowę licencyjną, klikając pole wyboru. Zostaną wyświetlone łącza umożliwiające pobranie plików:
Kliknij łącze odnoszące się do odpowiedniej wersję CUDA (została ona wyświetlona na ekranie po wywołaniu polecenia nvidia-smi na maszynie wirtualnej). Zostanie wyświetlona lista dostępnych wersji dla różnych platform.
Wybierz wersję zgodną z platformą używaną na maszynie wirtualnej – ten artykuł opisuje instalację na Ubuntu 20.04 LTS. Rozpocznie się pobieranie. Plik powinien mieć rozszerzenie .deb.
Użyj terminala, aby przejść do lokalizacji pobranego instalatora z rozszerzeniem .deb. Przeglądarki często umieszczają pliki w katalogu Downloads w katalogu domowym. Skopiuj go na zdalny komputer (zastąp installer.deb nazwą instalatora, a 64.225.129.70 floating IP maszyny wirtualnej):
scp installer.deb [email protected]:/home/eouser/
Po skopiowaniu pliku instalatora zaloguj się do maszyny wirtualnej przez SSH (zastąp 64.225.129.70 adresem IP maszyny wirtualnej):
Po zalogowaniu użyj polecenia ls, aby upewnić się, że znajduje się tam plik instalatora:
Teraz uruchom instalator (zastąp installer.deb nazwą swojego pliku instalatora):
sudo dpkg -i installer.deb
Zaimportuj klucz CUDA GPG.
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings
Po skonfigurowaniu klucza zainstaluj wymagane pakiety dodatkowe:
sudo apt update && sudo apt install apt-utils zlib1g libfreeimage3 libfreeimage-dev libcudnn8 libcudnn8-dev libcudnn8-samples
Uruchom test, aby upewnić się, że instalacja cuDNN została zakończona bez błędów (w takim przypadku po ostatnim poleceniu zostanie wyświetlony komunikat „Test passed!”):
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN
Jeśli test zostanie zakończony pomyślnie, możesz kontynuować. Jeśli nie, sprawdź, czy wszystko czynności zostały wykonane poprawnie. Jeśli masz pewność, że wszystko zostało zrobione zgodnie z instrukcjami, powtórz te kroki na nowej maszynie wirtualnej. Jeśli to nie pomoże, skontaktuj się z zespołem pomocy technicznej zgodnie z opisem w artykule Helpdesk i wsparcie.
Krok 3 Zainstaluj TensorFlow
TensorFlow działa w środowisku Python. Utworzymy izolowane środowisko wirtualne python3-venv o nazwie tensorflowenv i zainstalujemy w nim TensorFlow. Więcej informacji na temat python3-venv można znaleźć w artykule Jak zainstalować Python virtualenv lub virtualenvwrapper na NSIS Cloud.
Najpierw wróć do katalogu domowego, jeśli jeszcze w nim nie jesteś:
cd
Zaktualizuj oprogramowanie na maszynie wirtualnej:
sudo apt update && sudo apt upgrade
Następnie zainstaluj pakiet python3-venv:
sudo apt install python3-venv
Teraz utwórz wirtualne środowisko o nazwie tensorflowenv:
python3 -m venv tensorflowenv
Przejdź do tego wirtualnego środowiska:
source tensorflowenv/bin/activate
Zainstaluj pip:
sudo apt install python3-pip
Zaktualizuj pip:
pip install --upgrade pip
Zainstaluj TensorFlow:
pip install tensorflow
Uruchom następujące polecenie, aby sprawdzić, czy tensorflow jest włączony dla GPU (polecenie wyświetli jedno urządzenie GPU):
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
Jeśli urządzenie GPU jest dostępne dla TensorFlow, będzie ono domyślnie używane podczas jego pracy.
Listing GPU będzie wyglądać następująco:
Podczas testu może zostać wyświetlony następujący komunikat:
successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
Jest to tylko ostrzeżenie, które można zignorować.
Co można zrobić dalej?
TensorFlow został pomyślnie zainstalowany na serwerze NSIS z włączonym vGPU. W artykule Przykładowy przepływ pracy deep learning przy użyciu vGPU i EO-DATA na NSIS przekonasz się od razu, że obecność vGPU będzie dawać wyniki w ciągu minut, a nie godzin, jak to miało miejsce przed dodaniem vGPU.