Jak stwierdzić, czy tensorflow korzysta z przyspieszenia GPU z wewnętrznej powłoki pytona?

303

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 tensorflowto 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?

Tamim Addari
źródło
1
Powinieneś zobaczyć coś takiego w swoim dzienniku: I tensorflow / core / common_runtime / gpu / gpu_device.cc: 838] Tworzenie urządzenia TensorFlow (/ gpu: 0) -> (device: 0, name: GeForce GTX 980, pci bus id : 0000: 03: 00.0)
Jarosław Bułatow
2
W odpowiedzi jest log_device_placementpodejście. Najbardziej wiarygodnym sposobem jest spojrzenie na oś czasu, jak określono w tym komentarzu: github.com/tensorflow/tensorflow/issues/…
Yaroslav Bulatov
Tak, otrzymałem ten wynik po odpowiedzi Yao Zhanga ...
Tamim Addari,
@YaroslavBulatov w jakim dzienniku? Czy zapisuje to do pliku lub gdzie mam sprawdzić, czy pojawia się taka instrukcja?
Charlie Parker
1
Pisze do stdout lub stderr
Jarosław Bułatow

Odpowiedzi:

290

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:

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

Sprawdź konsolę pod kątem tego rodzaju wyników.

Yao Zhang
źródło
17
Próbowałem tego i drukuje absolutnie nic. Wiesz, dlaczego to może być?
Qubix
8
Zrobiłeś to na notatniku jupyter?
Tamim Addari,
27
Dane wyjściowe mogą być tworzone na konsoli, z której uruchomiono Notatnik Jupyter.
musically_ut
18
Czy możemy uzyskać zaktualizowaną odpowiedź dla Tensorflow V2 (gdzie sesje nie są obsługiwane).
iyop45
6
@ iyop45 W przypadku tensorflow V2 polecenie jest nieco zmodyfikowane:sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))
Vandan
276

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.

import tensorflow as tf
with tf.device('/gpu:0'):
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
    c = tf.matmul(a, b)

with tf.Session() as sess:
    print (sess.run(c))

Tutaj

  • „/ cpu: 0”: procesor komputera.
  • „/ gpu: 0”: GPU twojego komputera, jeśli go masz.

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:

Nie można przypisać urządzenia do węzła „MatMul”: Nie można spełnić jawnej specyfikacji urządzenia ”/ device: GPU: 0”, ponieważ w tym procesie nie są zarejestrowane żadne urządzenia spełniające tę specyfikację


Ostatnio pojawiło się kilka pomocnych funkcji w TF:

Możesz również sprawdzić dostępność urządzeń w sesji:

with tf.Session() as sess:
  devices = sess.list_devices()

devices zwróci ci coś takiego

[_DeviceAttributes(/job:tpu_worker/replica:0/task:0/device:CPU:0, CPU, -1, 4670268618893924978),
 _DeviceAttributes(/job:tpu_worker/replica:0/task:0/device:XLA_CPU:0, XLA_CPU, 17179869184, 6127825144471676437),
 _DeviceAttributes(/job:tpu_worker/replica:0/task:0/device:XLA_GPU:0, XLA_GPU, 17179869184, 16148453971365832732),
 _DeviceAttributes(/job:tpu_worker/replica:0/task:0/device:TPU:0, TPU, 17179869184, 10003582050679337480),
 _DeviceAttributes(/job:tpu_worker/replica:0/task:0/device:TPU:1, TPU, 17179869184, 5678397037036584928)
Salvador Dali
źródło
17
Wynik: [[22. 28.] [49. 64.]]
George Pligoropoulos
6
@GeorgePligor wynik tutaj nie jest tak naprawdę ważny. Albo masz wynik i GPU był używany, albo masz błąd, co oznacza, że ​​nie był używany
Salvador Dali
1
To nie działało dla mnie. Uruchomiłem to w moim Docker Container, który jest wykonywany przez nvidia-docker i etcetc. Jednak nie dostaję błędu, a procesor jest tym, który działa. Podniosłem nieco macierze (10k * 10k), aby upewnić się, że obliczenia będą przez chwilę. Wykorzystanie procesora wzrosło do 100%, ale procesor graficzny zachował chłód jak zawsze.
pascalwhoop
Podczas uruchamiania w konsoli pojawia się błąd „brak pasujących urządzeń”. W IDE jak pycharm nie ma błędu. Wydaje mi się, że jest to związane z użytą sesją, która różni się konsolą.
cn123h
Łatwy do zrozumienia. Jeśli GPU jest dostępne, wydrukuje coś w styluFound 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
Leoli
166

Poniższy fragment kodu powinien dać ci wszystkie urządzenia dostępne dla tensorflow.

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

Przykładowe dane wyjściowe

[name: "/ cpu: 0" device_type: "CPU" limit_pamięci: 268435456 lokalizacja {} inkarnacja: 4402277519343584096,

nazwa: "/ gpu: 0" typ_urządzenia: "GPU" limit_pamięci: 6772842168 lokalizacja {identyfikator_biznesu: 1} inkarnacja: 7471795903849088328 physical_device_desc: "urządzenie: 0, nazwa: GeForce GTX 1070, identyfikator magistrali pci: 0000: 05: 00.0"]

Sheraz
źródło
9
To najlepsza odpowiedź.
lolski
3
a jeśli to polecenie nie zwraca żadnego wpisu z „GPU”, czy to oznacza, że ​​moja maszyna po prostu ma GPU, czy tensorflow nie jest w stanie go zlokalizować?
mercury0114
@ mercury0114 może to być albo. na przykład, możesz mieć GPU, ale nie masz poprawnie zainstalowanego GPU.
jimijazz
4
Nie zgadzam się, to nie odpowiada na pytanie: nie chodzi o dostępne urządzenia, ale o urządzenia używane . To może być zupełnie inna historia! (np. TF domyślnie używa tylko 1 GPU.
Maju36
nazwa: "/ urządzenie: GPU: 0" typ urządzenia: "GPU" limit_pamięci: 10711446324 lokalizacja {identyfikator_biznesu: 1 linki {}} inkarnacja: 17935632445266485019 physical_device_desc: "urządzenie: 0, nazwa: GeForce RTX 2080 Ti, identyfikator magistrali pci: 0000: 01: 00.0, możliwość obliczeń: 7,5 "]
kamran kausar
89

Myślę, że jest łatwiejszy sposób na osiągnięcie tego.

import tensorflow as tf
if tf.test.gpu_device_name():
    print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
else:
    print("Please install GPU version of TF")

Zwykle drukuje jak

Default GPU Device: /device:GPU:0

Wydaje mi się to łatwiejsze niż te pełne dzienniki.

Ishan Bhatt
źródło
Zgoda. Łatwiejsze niż podejścia opisane powyżej. Drukuje listę używanych GPU. Dzięki
użytkownik907629,
2
Najlepsze niesamowite ze wszystkich
echan00
To nie jest prawidłowy test. Powróci do instrukcji else, nawet jeśli masz zainstalowaną wersję tensorflow GPU.
Goddard,
68

Tensorflow 2.0

Sesje nie są już używane w wersji 2.0. Zamiast tego można użyć tf.test.is_gpu_available:

import tensorflow as tf

assert tf.test.is_gpu_available()
assert tf.test.is_built_with_cuda()

Jeśli pojawi się błąd, musisz sprawdzić instalację.

ma3oun
źródło
Działa to również z TF 1.14 (może nawet kilkoma starszymi wersjami)!
Overdrivr
6
Teraz jest to zalecanetf.config.list_physical_devices('GPU')
Roy Shilkrot
@Roy Shilkrot Myślę, że 'tf.config.list_physical_devices (' GPU ')' nie działa w Tensorflow 2.0
Joseph
1
@joselquin Dokumenty TF v2.x mówią, że powinno działać: tensorflow.org/api_docs/python/tf/config/experimental /... i mogę sprawdzić, czy to działa dla mnie.
Roy Shilkrot
29

Potwierdzi to przepływ tensor przy użyciu GPU podczas treningu?

Kod

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

Wynik

I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 730
major: 3 minor: 5 memoryClockRate (GHz) 0.9015
pciBusID 0000:01:00.0
Total memory: 1.98GiB
Free memory: 1.72GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 730, pci bus id: 0000:01:00.0)
Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: GeForce GT 730, pci bus id: 0000:01:00.0
I tensorflow/core/common_runtime/direct_session.cc:255] Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: GeForce GT 730, pci bus id: 0000:01:00.0
himanshurobo
źródło
5
Dodaj małe wyjaśnienie, dlaczego twoja odpowiedź działa (co robi log_device_placementi jak zobaczyć procesor vs. GPU na wyjściu?). To poprawi jakość twojej odpowiedzi!
Nander Speerstra,
25

Oprócz innych odpowiedzi, poniższe powinny pomóc ci upewnić się, że twoja wersja tensorflow zawiera obsługę GPU.

import tensorflow as tf
print(tf.test.is_built_with_cuda())
karaspd
źródło
7
Ostrzeżenie: informuje, czy TensorFlow jest skompilowany z GPU. Nie, czy używany jest procesor graficzny. (Jeśli na przykład sterowniki nie są poprawnie zainstalowane, wówczas używany jest procesor, nawet jeśli „is_built_with_cuda ()” jest prawdziwe.)
Ricardo Cruz
19

Ok, najpierw uruchom ipython shellz terminala i importTensorFlow:

$ ipython --pylab
Python 3.6.5 |Anaconda custom (64-bit)| (default, Apr 29 2018, 16:14:56) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.
Using matplotlib backend: Qt5Agg

In [1]: import tensorflow as tf

Teraz możemy obserwować użycie pamięci GPU w konsoli za pomocą następującego polecenia:

# realtime update for every 2s
$ watch -n 2 nvidia-smi

Ponieważ importedytowaliśmy tylko TensorFlow, ale nie korzystaliśmy jeszcze z żadnych GPU, statystyki użytkowania będą następujące:

użycie tf bez GPU

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:

In [2]: sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

Teraz statystyki zegarka powinny pokazywać zaktualizowaną pamięć użytkowania GPU, jak poniżej:

tf gpu-watch

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.

kmario23
źródło
1
Chciałbym móc odpowiedzieć gwiazdką. Ten jest złoty
Zain Rizvi,
18

Powinno to dać listę urządzeń dostępnych dla Tensorflow (zgodnie z Py-3.6):

tf = tf.Session(config=tf.ConfigProto(log_device_placement=True))
tf.list_devices()
# _DeviceAttributes(/job:localhost/replica:0/task:0/device:CPU:0, CPU, 268435456)
f0nzie
źródło
mężczyzna omyłkowo oddałem twoje pytanie ... jeśli je edytujesz, anuluję moje głosowanie
Francesco Boi
14

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.

Scott Huang
źródło
Jest to pośredni sposób
papabiceps
Jak używasz nvdia-smi do monitorowania użycia GPU?
Razin,
po zainstalowaniu cuda. nvidia-smi powinna być w twoim systemie. Zwykle używam 'nvidia-smi -l' do monitorowania użycia.
Scott huang,
3
Możesz także użyć zegarka nvidia-smi, aktualizuje ekran co 2 sekundy
Perseus14
patrz, jak nvidia-smi działa dla mnie dobrze. Widzę też w danych wyjściowych, że mój proces python korzysta z procesora graficznego
formica
9

Dzięki najnowszym aktualizacjom Tensorflow możesz to sprawdzić w następujący sposób:

tf.test.is_gpu_available( cuda_only=False, min_cuda_compute_capability=None)

Zwróci to, Truejeśli GPU jest w użyciu Tensorflow, i zwróci w Falseinny sposób.

Jeśli chcesz urządzenie device_namemożna wpisać: tf.test.gpu_device_name(). Uzyskać więcej szczegółów z tutaj

Soufiane Chami
źródło
8

Uruchom następujące polecenie w Jupyter,

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

Jeśli poprawnie skonfigurowałeś swoje środowisko, otrzymasz następujące dane wyjściowe w terminalu, w którym uruchomiłeś „notatnik jupyter” ,

2017-10-05 14:51:46.335323: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\common_runtime\gpu\gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Quadro K620, pci bus id: 0000:02:00.0)
Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Quadro K620, pci bus id: 0000:02:00.0
2017-10-05 14:51:46.337418: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\common_runtime\direct_session.cc:265] Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Quadro K620, pci bus id: 0000:02:00.0

Tutaj możesz zobaczyć, że korzystam z TensorFlow z Nvidią Quodro K620.

gofrownica
źródło
Jupyter wcale nie jest konieczny, proszę nie dodawać złożoności do pytania
Patrizio Bertoni
1
Niektórzy użytkownicy mogą chcieć upewnić się, że GPU jest użyteczna w Jupyter. Dodatkowo można to uruchomić ze skryptu Python.
wafflecat
8

Uważam, że samo zapytanie GPU z wiersza poleceń jest najłatwiejsze:

nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.98                 Driver Version: 384.98                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 980 Ti  Off  | 00000000:02:00.0  On |                  N/A |
| 22%   33C    P8    13W / 250W |   5817MiB /  6075MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1060      G   /usr/lib/xorg/Xorg                            53MiB |
|    0     25177      C   python                                      5751MiB |
+-----------------------------------------------------------------------------+

jeśli nauka jest procesem w tle, pid z jobs -ppowinien pasować do pid znvidia-smi

Tim
źródło
6

Możesz sprawdzić, czy obecnie korzystasz z GPU, uruchamiając następujący kod:

import tensorflow as tf
tf.test.gpu_device_name()

Jeśli wynikiem jest '', oznacza to, że używasz CPUtylko;
Jeśli wynik jest podobny /device:GPU:0, oznacza to, że GPUdziała.


I użyj następującego kodu, aby sprawdzić, którego GPUużywasz:

from tensorflow.python.client import device_lib 
device_lib.list_local_devices()
Hu Xixi
źródło
Jeśli wynik jest ' ', to co powinniśmy zrobić?
Jason
@Jason Ponownie zainstaluj wersję GPU.
Hu Xixi
6

Umieść to w górnej części notebooka jupyter. Skomentuj to, czego nie potrzebujesz.

# confirm TensorFlow sees the GPU
from tensorflow.python.client import device_lib
assert 'GPU' in str(device_lib.list_local_devices())

# confirm Keras sees the GPU (for TensorFlow 1.X + Keras)
from keras import backend
assert len(backend.tensorflow_backend._get_available_gpus()) > 0

# confirm PyTorch sees the GPU
from torch import cuda
assert cuda.is_available()
assert cuda.device_count() > 0
print(cuda.get_device_name(cuda.current_device()))

UWAGA: Wraz z wydaniem TensorFlow 2.0, Keras jest teraz włączony jako część TF API.

Pierwotnie odpowiedziano tutaj .

Paul Williams
źródło
5

Dla Tensorflow 2.0

import tensorflow as tf

tf.test.is_gpu_available(
    cuda_only=False,
    min_cuda_compute_capability=None
)

źródło tutaj

inna opcja to:

tf.config.experimental.list_physical_devices('GPU')
ChaosPredictor
źródło
1
is_gpu_available(z tensorflow.python.framework.test_util) jest przestarzały i zostanie usunięty w przyszłej wersji.
Himanshu Teotia
5

AKTUALIZACJA PRZEPŁYWU TENSORA> = 2.1.

Zalecany sposób sprawdzenia, czy TensorFlow korzysta z GPU, jest następujący:

tf.config.list_physical_devices('GPU') 

Od wersji TensorFlow 2.1 tf.test.gpu_device_name()został wycofany na rzecz wyżej wymienionych.

Timbus Calin
źródło
3

Oto linia, której używam do wyświetlania listy urządzeń dostępnych tf.sessionbezpośrednio z bash:

python -c "import os; os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'; import tensorflow as tf; sess = tf.Session(); [print(x) for x in sess.list_devices()]; print(tf.__version__);"

Wydrukuje dostępne urządzenia i wersję tensorflow, na przykład:

_DeviceAttributes(/job:localhost/replica:0/task:0/device:CPU:0, CPU, 268435456, 10588614393916958794)
_DeviceAttributes(/job:localhost/replica:0/task:0/device:XLA_GPU:0, XLA_GPU, 17179869184, 12320120782636586575)
_DeviceAttributes(/job:localhost/replica:0/task:0/device:XLA_CPU:0, XLA_CPU, 17179869184, 13378821206986992411)
_DeviceAttributes(/job:localhost/replica:0/task:0/device:GPU:0, GPU, 32039954023, 12481654498215526877)
1.14.0
y.selivonchyk
źródło
3

Odkryłem, że fragment kodu jest bardzo przydatny do testowania GPU ..

Test Tensorflow 2.0

import tensorflow as tf
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
with tf.device('/gpu:0'):
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
    c = tf.matmul(a, b)

with tf.Session() as sess:
    print (sess.run(c))

Test Tensorflow 1

import tensorflow as tf
with tf.device('/gpu:0'):
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
    c = tf.matmul(a, b)

with tf.Session() as sess:
    print (sess.run(c))
ajayramesh
źródło
3

Poniższe spowoduje również zwrócenie nazwy urządzeń GPU.

import tensorflow as tf
tf.test.gpu_device_name()
Maz
źródło
Jeśli wyjście tego polecenia jest pustym ciągiem ... jak przeprowadzić debugowanie?
zthomas.nc
3

Z tensotflow 2.0> =

import tensorflow as tf
sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))

wprowadź opis zdjęcia tutaj

leplandelaville
źródło
2

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.

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
  1. Jupyter Notebook - Sprawdź konsolę, na której działa Notatnik Jupyter. Zobaczysz używany procesor graficzny.
  2. Python Shell - Będziesz mógł bezpośrednio zobaczyć wynik. (Uwaga - nie przypisuj wyjścia drugiego polecenia do zmiennej „sess”; jeśli to pomaga).
  3. Spyder - Wpisz następujące polecenie w konsoli.

    import tensorflow as tf tf.test.is_gpu_available()

simpleParadox
źródło
2

Przepływ Tensor 2.1

Proste obliczenie, które można zweryfikować za pomocą nvidia-smi dla zużycia pamięci na GPU.

import tensorflow as tf 

c1 = []
n = 10

def matpow(M, n):
    if n < 1: #Abstract cases where n < 1
        return M
    else:
        return tf.matmul(M, matpow(M, n-1))

with tf.device('/gpu:0'):
    a = tf.Variable(tf.random.uniform(shape=(10000, 10000)), name="a")
    b = tf.Variable(tf.random.uniform(shape=(10000, 10000)), name="b")
    c1.append(matpow(a, n))
    c1.append(matpow(b, n))
Cannin
źródło
2
>>> import tensorflow as tf 
>>> tf.config.list_physical_devices('GPU')

2020-05-10 14:58:16.243814: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1
2020-05-10 14:58:16.262675: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-10 14:58:16.263119: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1555] Found device 0 with properties:
pciBusID: 0000:01:00.0 name: GeForce GTX 1060 6GB computeCapability: 6.1
coreClock: 1.7715GHz coreCount: 10 deviceMemorySize: 5.93GiB deviceMemoryBandwidth: 178.99GiB/s
2020-05-10 14:58:16.263143: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1
2020-05-10 14:58:16.263188: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2020-05-10 14:58:16.264289: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10
2020-05-10 14:58:16.264495: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10
2020-05-10 14:58:16.265644: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10
2020-05-10 14:58:16.266329: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10
2020-05-10 14:58:16.266357: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2020-05-10 14:58:16.266478: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-10 14:58:16.266823: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-10 14:58:16.267107: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1697] Adding visible gpu devices: 0
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

Zgodnie z sugestią @AmitaiIrron:

Ta sekcja wskazuje, że znaleziono GPU

2020-05-10 14:58:16.263119: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1555] Found device 0 with properties:

pciBusID: 0000:01:00.0 name: GeForce GTX 1060 6GB computeCapability: 6.1
coreClock: 1.7715GHz coreCount: 10 deviceMemorySize: 5.93GiB deviceMemoryBandwidth: 178.99GiB/s

I tutaj został dodany jako dostępne urządzenie fizyczne

2020-05-10 14:58:16.267107: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1697] Adding visible gpu devices: 0

[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
blady
źródło
Przydałoby się wskazać sekcje w danych wyjściowych wskazujące, czy używany jest procesor graficzny.
Amitai Irron
@AmitaiIrron Dzięki za sugestię, mam nadzieję, że jest to teraz trochę bardziej jasne.
bLeDy
1

Jeśli używasz TensorFlow 2.0, możesz użyć tego dla pętli, aby pokazać urządzenia:

with tf.compat.v1.Session() as sess:
  devices = sess.list_devices()
devices
Doug
źródło
1

jeśli używasz tensorflow 2.x użyj:

sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))
Cheptii
źródło
0

Uruchom to polecenie w Jupyter lub IDE, aby sprawdzić, czy Tensorflow używa procesora graficznego, czy nie: tf.config.list_physical_devices('GPU')

Tenzin Jinsel
źródło
W jaki sposób ta odpowiedź pomaga w przypadku pozostałych odpowiedzi tutaj?
ComputerScientist