Skip to main content
  • »
  • NOWATORSKA TECHNOLOGIA »
  • Instalacja TensorFlow na maszynie wirtualnej z włączoną obsługą vGPU na NSIS Cloud

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

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 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:

../_images/tensorflow3_creodias.png

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:

../_images/tensorflow1_creodias.png

Zaakceptuj umowę licencyjną, klikając pole wyboru. Zostaną wyświetlone łącza umożliwiające pobranie plików:

../_images/tensorflow2_creodias.png

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.

../_images/tensorflow4_creodias.png

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:

../_images/tensorflow5_creodias.png

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:

../_images/tensorflow6_creodias.png

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.