Zainstalowałem tensorflow na moim Ubuntu 16.04, używając drugiej odpowiedzi tutaj z wbudowaną instalacją apt cuda w Ubuntu .
Teraz moje pytanie brzmi: jak mogę sprawdzić, czy tensorflow naprawdę używa GPU? Mam GTX 960m GPU. Kiedy ja import tensorflow
to jest wynik
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally
Czy to wyjście wystarczy, aby sprawdzić, czy tensorflow korzysta z GPU?
python
tensorflow
ubuntu
gpu
Tamim Addari
źródło
źródło
log_device_placement
podejście. Najbardziej wiarygodnym sposobem jest spojrzenie na oś czasu, jak określono w tym komentarzu: github.com/tensorflow/tensorflow/issues/…Odpowiedzi:
Nie, nie sądzę, że „otwarta biblioteka CUDA” wystarczy, aby powiedzieć, ponieważ różne węzły wykresu mogą znajdować się na różnych urządzeniach.
Aby dowiedzieć się, które urządzenie jest używane, możesz włączyć umiejscowienie urządzenia rejestrującego w następujący sposób:
Sprawdź konsolę pod kątem tego rodzaju wyników.
źródło
sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))
Oprócz użycia,
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
który jest opisany w innych odpowiedziach, a także w oficjalnej dokumentacji TensorFlow , możesz spróbować przypisać obliczenia do gpu i sprawdzić, czy masz błąd.Tutaj
Jeśli masz GPU i możesz go użyć, zobaczysz wynik. W przeciwnym razie zobaczysz błąd z długim śledzeniem stosu. Na koniec będziesz mieć coś takiego:
Ostatnio pojawiło się kilka pomocnych funkcji w TF:
Możesz również sprawdzić dostępność urządzeń w sesji:
devices
zwróci ci coś takiegoźródło
Found device 0 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.582 pciBusID: 0000:02:00.0 totalMemory: 10.92GiB freeMemory: 10.76GiB
Poniższy fragment kodu powinien dać ci wszystkie urządzenia dostępne dla tensorflow.
źródło
Myślę, że jest łatwiejszy sposób na osiągnięcie tego.
Zwykle drukuje jak
Wydaje mi się to łatwiejsze niż te pełne dzienniki.
źródło
Tensorflow 2.0
Sesje nie są już używane w wersji 2.0. Zamiast tego można użyć
tf.test.is_gpu_available
:Jeśli pojawi się błąd, musisz sprawdzić instalację.
źródło
tf.config.list_physical_devices('GPU')
Potwierdzi to przepływ tensor przy użyciu GPU podczas treningu?
Kod
Wynik
źródło
log_device_placement
i jak zobaczyć procesor vs. GPU na wyjściu?). To poprawi jakość twojej odpowiedzi!Oprócz innych odpowiedzi, poniższe powinny pomóc ci upewnić się, że twoja wersja tensorflow zawiera obsługę GPU.
źródło
Ok, najpierw uruchom
ipython shell
z terminala iimport
TensorFlow:Teraz możemy obserwować użycie pamięci GPU w konsoli za pomocą następującego polecenia:
Ponieważ
import
edytowaliśmy tylko TensorFlow, ale nie korzystaliśmy jeszcze z żadnych GPU, statystyki użytkowania będą następujące:Zauważ, że użycie pamięci GPU jest bardzo mniejsze (~ 700 MB); Czasami użycie pamięci GPU może wynosić nawet 0 MB.
Teraz załadujmy GPU do naszego kodu. Jak wskazano w
tf documentation
, wykonaj:Teraz statystyki zegarka powinny pokazywać zaktualizowaną pamięć użytkowania GPU, jak poniżej:
Zobacz teraz, jak nasz proces Python z powłoki ipython zużywa ~ 7 GB pamięci GPU.
PS Możesz nadal obserwować te statystyki w trakcie działania kodu, aby zobaczyć, jak intensywne jest użycie GPU w czasie.
źródło
Powinno to dać listę urządzeń dostępnych dla Tensorflow (zgodnie z Py-3.6):
źródło
Wolę używać nvidia-smi do monitorowania użycia GPU. jeśli znacząco wzrośnie po uruchomieniu programu, to silny znak, że twój tensorflow korzysta z GPU.
źródło
Dzięki najnowszym aktualizacjom Tensorflow możesz to sprawdzić w następujący sposób:
Zwróci to,
True
jeśli GPU jest w użyciuTensorflow
, i zwróci wFalse
inny sposób.Jeśli chcesz urządzenie
device_name
można wpisać:tf.test.gpu_device_name()
. Uzyskać więcej szczegółów z tutajźródło
Uruchom następujące polecenie w Jupyter,
Jeśli poprawnie skonfigurowałeś swoje środowisko, otrzymasz następujące dane wyjściowe w terminalu, w którym uruchomiłeś „notatnik jupyter” ,
Tutaj możesz zobaczyć, że korzystam z TensorFlow z Nvidią Quodro K620.
źródło
Uważam, że samo zapytanie GPU z wiersza poleceń jest najłatwiejsze:
jeśli nauka jest procesem w tle, pid z
jobs -p
powinien pasować do pid znvidia-smi
źródło
Możesz sprawdzić, czy obecnie korzystasz z GPU, uruchamiając następujący kod:
Jeśli wynikiem jest
''
, oznacza to, że używaszCPU
tylko;Jeśli wynik jest podobny
/device:GPU:0
, oznacza to, żeGPU
działa.I użyj następującego kodu, aby sprawdzić, którego
GPU
używasz:źródło
' '
, to co powinniśmy zrobić?Umieść to w górnej części notebooka jupyter. Skomentuj to, czego nie potrzebujesz.
UWAGA: Wraz z wydaniem TensorFlow 2.0, Keras jest teraz włączony jako część TF API.
Pierwotnie odpowiedziano tutaj .
źródło
Dla Tensorflow 2.0
źródło tutaj
inna opcja to:
źródło
is_gpu_available
(z tensorflow.python.framework.test_util) jest przestarzały i zostanie usunięty w przyszłej wersji.AKTUALIZACJA PRZEPŁYWU TENSORA> = 2.1.
Zalecany sposób sprawdzenia, czy TensorFlow korzysta z GPU, jest następujący:
Od wersji TensorFlow 2.1
tf.test.gpu_device_name()
został wycofany na rzecz wyżej wymienionych.źródło
Oto linia, której używam do wyświetlania listy urządzeń dostępnych
tf.session
bezpośrednio z bash:Wydrukuje dostępne urządzenia i wersję tensorflow, na przykład:
źródło
Odkryłem, że fragment kodu jest bardzo przydatny do testowania GPU ..
Test Tensorflow 2.0
Test Tensorflow 1
źródło
Poniższe spowoduje również zwrócenie nazwy urządzeń GPU.
źródło
Z tensotflow 2.0> =
źródło
Masz kilka opcji, aby sprawdzić, czy akceleracja GPU jest używana przez instalację TensorFlow.
Możesz wpisać następujące polecenia na trzech różnych platformach.
Spyder - Wpisz następujące polecenie w konsoli.
import tensorflow as tf tf.test.is_gpu_available()
źródło
Przepływ Tensor 2.1
Proste obliczenie, które można zweryfikować za pomocą nvidia-smi dla zużycia pamięci na GPU.
źródło
Zgodnie z sugestią @AmitaiIrron:
Ta sekcja wskazuje, że znaleziono GPU
I tutaj został dodany jako dostępne urządzenie fizyczne
źródło
Jeśli używasz TensorFlow 2.0, możesz użyć tego dla pętli, aby pokazać urządzenia:
źródło
jeśli używasz tensorflow 2.x użyj:
źródło
Uruchom to polecenie w Jupyter lub IDE, aby sprawdzić, czy Tensorflow używa procesora graficznego, czy nie:
tf.config.list_physical_devices('GPU')
źródło