Tensorflow'un python kabuğunun içinden gpu hızlandırması kullanıp kullanmadığını nasıl anlarım?


304

Ben ikinci cevap kullanarak benim ubuntu 16.04 de tensorflow yüklemiş burada ubuntu apt cuda kurulumu yerleşik bulunuyor sahip.

Şimdi sorum tensorflow'un gerçekten gpu kullanıp kullanmadığını nasıl test edebilirim? Bir gtx 960m gpu'm var. Ben import tensorflowbu çıktı

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

Bu çıktı, tensorflow'un gpu kullanıp kullanmadığını kontrol etmek için yeterli mi?


1
Günlüğünüzde böyle bir şey görmelisiniz: I tensorflow / core / common_runtime / gpu / gpu_device.cc: 838] TensorFlow cihazı oluşturma (/ gpu: 0) -> (cihaz: 0, ad: GeForce GTX 980, pci veri yolu kimliği : 0000: 03: 00.0)
Yaroslav Bulatov

2
Cevapta bir log_device_placementyaklaşım var . En güvenilir yol, bu yorumda belirtildiği gibi zaman çizelgesine bakmaktır
Yaroslav Bulatov

Evet, bu çıktıyı Yao Zhang'ın cevabından sonra aldım ...
Tamim Addari

@YaroslavBulatov hangi girişte? Bir dosyaya yazıyor mu veya böyle bir ifadenin görünüp görünmediğini nereden kontrol edebilirim?
Charlie Parker

1
Stdout veya Stderr'e yazıyor
Yaroslav Bulatov

Yanıtlar:


290

Hayır, "açık CUDA kütüphanesini" anlatmanın yeterli olduğunu düşünmüyorum, çünkü grafiğin farklı düğümleri farklı cihazlarda olabilir.

Hangi cihazın kullanıldığını bulmak için günlük cihazı yerleşimini şu şekilde etkinleştirebilirsiniz:

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

Konsolunuzda bu tür çıkış olup olmadığını kontrol edin.


17
Bunu denedim ve kesinlikle hiçbir şey basmıyor. Bunun neden olabileceğine dair bir fikrin var mı?
Qubix

8
Bir jupyter defterde yaptın mı?
Tamim Addari

27
Çıktı, Jupyter Notebook'u çalıştırdığınız konsolda üretilebilir.
musically_ut

18
Tensorflow V2 için güncellenmiş bir cevap alabilir miyiz (tf.Sessions'ın desteklenmediği yerlerde).
iyop45

6
@ iyop45 tensorflow V2 için komut biraz değiştirildi:sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))
Vandan

276

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))Diğer yanıtlarda ve resmi TensorFlow belgelerinde belirtilenleri kullanmanın yanı sıra, gpu'ya bir hesaplama atayabilir ve bir hatanın olup olmadığını görebilirsiniz.

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

Buraya

  • "/ cpu: 0": Makinenizin CPU'su.
  • "/ gpu: 0": Eğer varsa, makinenizin GPU'su.

Bir gpu'nuz varsa ve kullanabiliyorsanız, sonucu göreceksiniz. Aksi takdirde, uzun bir yığın izinde bir hata görürsünüz. Sonunda böyle bir şey olacak:

'MatMul' düğümüne bir cihaz atanamıyor: Açık spesifik cihaz spesifikasyonu '/ device: GPU: 0' sağlanamadı çünkü bu spesifikasyonla eşleşen hiçbir cihaz bu işlemde kayıtlı değil


Son zamanlarda TF'de birkaç yararlı fonksiyon ortaya çıktı:

Oturumdaki kullanılabilir cihazları da kontrol edebilirsiniz:

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

devices sana böyle bir şey döndürecek

[_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)

17
Sonuç: [[22. 28.] [49. 64.]]
George Pligoropoulos

6
@GeorgePligor burada gerçekten önemli değil. Ya bir sonucunuz var ve GPU kullanıldı ya da bir hatayla karşılaştınız, bu da kullanılmadığı anlamına geliyor
Salvador Dali

1
Bu benim için işe yaramadı. Bunu nvidia-docker ve etcetc tarafından gerçekleştirilen Docker Container'ımın içinde çalıştırdım. Ancak hata alıyorum ve CPU işi yapan biri. Bir süre hesaplamasını sağlamak için matrisleri biraz (10k * 10k) yükselttim. CPU kullanımı% 100'e kadar çıktı ama GPU her zamanki gibi serin kaldı.
pascalwhoop

Konsolda çalıştırdığınızda "eşleşen cihaz yok" hatası aldım. Pycharm gibi IDE'de hata yoktur. Sanırım bu konsolda farklı olan, kullandığım Oturumla ilgili.
cn123h

Anlaması kolay. GPU mevcutsa, böyle bir şey yazdırırFound 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

Aşağıdaki kod parçası, tensorflow'un kullanabileceği tüm cihazları sağlamalıdır.

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

Örnek Çıktı

[name: "/ cpu: 0" device_type: "CPU" memory_limit: 268435456 konum {} enkarnasyonu: 4402277519343584096,

name: "/ gpu: 0" device_type: "GPU" memory_limit: 6772842168 yerellik {bus_id: 1} enkarnasyon: 7471795903849088328 physical_device_desc: "cihaz: 0, ad: GeForce GTX 1070, pci veri yolu kimliği: 0000: 05: 00.0"]


9
Bu en iyi cevap.
lolski

3
ve bu komut "GPU" ile herhangi bir girdi döndürmezse, makinemin GPU'su olduğu veya tensorflow'un yerini bulamadığı anlamına mı geliyor?
mercury0114

@ mercury0114 de olabilir. örneğin, bir gpu'nuz olabilir, ancak doğru şekilde tensorflow-gpu yüklü olmayabilir.
jimijazz

4
Ben bu mu, katılmıyorum değil soruya cevap: bu cihazlar hakkında değil mevcut ama devises kullanılan . Ve bu tamamen farklı bir hikaye olabilir! (örn. TF varsayılan olarak yalnızca 1 GPU kullanır.
Mayou36 09

name: "/ device: GPU: 0" device_type: "GPU" memory_limit: 10711446324 yerellik {bus_id: 1 bağlantı {}} enkarnasyon: 17935632445266485019 physical_device_desc: "cihaz: 0, ad: GeForce RTX 2080 Ti, pci veri yolu kimliği: 0000: 01: 00.0, hesaplama yeteneği: 7.5 "]
kamran kausar

89

Bunu başarmanın daha kolay bir yolu olduğunu düşünüyorum.

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")

Genellikle yazdırır

Default GPU Device: /device:GPU:0

Bu benim için ayrıntılı günlüklerden daha kolay görünüyor.


Kabul. Yukarıda açıklanan yaklaşımlardan daha kolaydır. Kullandığı GPU'ların listesini yazdırır. Teşekkürler
user907629

2
En iyi harika
echan00

Bu geçerli bir test değil. Tensorflow'un GPU sürümü yüklü olsa bile else deyimine dönecektir.
Goddard

68

Tensorflow 2.0

Oturumlar artık 2.0'da kullanılmıyor. Bunun yerine aşağıdakiler kullanılabilir tf.test.is_gpu_available:

import tensorflow as tf

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

Bir hata alırsanız kurulumunuzu kontrol etmeniz gerekir.


Bu aynı zamanda TF 1.14 (belki birkaç eski sürümde) ile de çalışır!
Overdrivr

8
Artık yapılması tavsiye edilirtf.config.list_physical_devices('GPU')
Roy Shilkrot

@Roy Shilkrot Bence 'tf.config.list_physical_devices (' GPU ')' Tensorflow 2.0'da çalışmıyor
joselquin

1
@joselquin TF v2.x belgeleri bunun çalışması gerektiğini belirtir : tensorflow.org/api_docs/python/tf/config/experimental/… ve bunun benim için işe yaradığını doğrulayabilirim.
Roy Shilkrot

29

Bu da eğitim sırasında GPU kullanarak tensorflow doğrular?

kod

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

Çıktı

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

5
Lütfen cevabınızın neden çalıştığına biraz açıklama ekleyin ( log_device_placementçıkışta CPU ve GPU'yu nasıl görür ve nasıl görür?). Bu, yanıtınızın kalitesini artıracaktır!
Nander Speerstra

25

Diğer yanıtlara ek olarak, aşağıdakiler, tensorflow sürümünüzün GPU desteği içerdiğinden emin olmanıza yardımcı olmalıdır.

import tensorflow as tf
print(tf.test.is_built_with_cuda())

7
Uyarı: Bu, TensorFlow'un GPU ile derlenip derlenmediğini gösterir. GPU'nun kullanılıp kullanılmadığı değil. (Sürücüler örneğin doğru kurulmamışsa, "is_built_with_cuda ()" doğru olsa bile CPU kullanılır.)
Ricardo Cruz

19

Tamam, önce ipython shellterminalden ve importTensorFlow'dan bir başlatma yapın:

$ 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

Şimdi, aşağıdaki komutu kullanarak GPU bellek kullanımını bir konsolda izleyebiliriz :

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

Sadece importTensorFlow'u düzenlediğimizden, ancak henüz GPU kullanmadığımızdan, kullanım istatistikleri şu şekilde olacaktır:

tf gpu olmayan kullanım

GPU bellek kullanımının çok daha az olduğuna dikkat edin (~ 700MB); Bazen GPU bellek kullanımı 0 MB kadar düşük olabilir.


Şimdi GPU'yu kodumuza yükleyelim. Belirtildiği gibi yapın tf documentation:

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

Şimdi, saat istatistikleri güncellenmiş bir GPU kullanım belleği göstermelidir:

tf gpu-izle

Şimdi ipython kabuğundaki Python işlemimizin GPU belleğinin ~ 7 GB'ını nasıl kullandığını gözlemleyin.


Not: GPU kullanımının zaman içinde ne kadar yoğun olduğunu görmek için kod çalışırken bu istatistikleri izlemeye devam edebilirsiniz .


1
Keşke yıldızlara cevap verebilseydim. Bu altın
Zain Rizvi

18

Bu, Tensorflow için mevcut cihazların listesini vermelidir (Py-3.6 altında):

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)

man Sorunuzu yanlışlıkla reddettim ... eğer sorunuzu düzenlerseniz downvote'umu iptal edeceğim
Francesco Boi

14

GPU kullanımını izlemek için nvidia-smi kullanmayı tercih ederim. programınızı başlattığınızda önemli ölçüde artarsa, tensorflow'unuzun GPU kullandığının güçlü bir işareti.


Bu dolaylı bir yoldur
papabiceps

GPU kullanımını izlemek için nvdia-smi'yi nasıl kullanırsınız?
Razin

cuda yükledikten sonra. nvidia-smi sisteminizde olmalıdır. Kullanımı izlemek için genellikle 'nvidia-smi -l' kullanıyorum.
scott huang

3
Ayrıca nvidia-smi saatini kullanabilirsiniz, her 2 saniyede bir ekranı günceller
Perseus14

izle nvidia-smi benim için iyi çalışıyor. Çıktıda da python sürecimin GPU kullandığını görebiliyorum
formica

9

Tensorflow'un son güncellemeleri ile aşağıdaki gibi kontrol edebilirsiniz:

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

Bu dönecektir TrueGPU tarafından kullanılıyorsa Tensorflow, ve dönüş Falseaksi.

Cihazı isterseniz device_namesiz yazabilirsiniz: tf.test.gpu_device_name(). Daha ayrıntılı bilgi edinin burada


8

Jupyter'de aşağıdakileri çalıştırın,

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

Ortamınızı doğru şekilde kurduysanız, terminalde "jupyter notebook" u çalıştırdığınız aşağıdaki çıktıyı alırsınız ,

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

Burada bir Nvidia Quodro K620 ile TensorFlow kullandığımı görebilirsiniz.


Jupyter hiç gerekli değil, lütfen soruya karmaşıklık eklemeyin
Patrizio Bertoni

1
Bazı kullanıcılar GPU'nun Jupyter'de kullanılabilir olmasını sağlamak isteyebilir. Ayrıca, bu bir Python betiğinden de çalıştırılabilir.
wafflecat

8

Ben sadece komut satırından gpu sorgulama bulmak en kolay:

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

öğrenmeniz bir arka plan işlemi ise, gelen pid gelen pid ile jobs -peşleşmelidirnvidia-smi


6

Şu kodu kullanarak şu anda GPU kullanıp kullanmadığınızı kontrol edebilirsiniz:

import tensorflow as tf
tf.test.gpu_device_name()

Çıktı ise '', CPUsadece kullandığınız anlamına gelir ;
Çıktı böyle bir şeyse /device:GPU:0, işe GPUyarıyor demektir .


Hangisini GPUkullandığınızı kontrol etmek için aşağıdaki kodu kullanın :

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

Çıktı ise ' 'ne yapmalıyız?
Jason

@ Jason Sadece bir GPU sürümünü yeniden yükleyin.
Hu Xixi

6

Bunu jupyter dizüstü bilgisayarınızın üstüne koyun. Neye ihtiyacınız olmadığını yorumlayın.

# 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()))

NOT: TensorFlow 2.0'ın çıkmasıyla birlikte, Keras artık TF API'nın bir parçası olarak dahil edilmiştir.

Aslında burada cevap verdi .


5

Tensorflow 2.0 için

import tensorflow as tf

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

burada kaynak

diğer seçenek:

tf.config.experimental.list_physical_devices('GPU')

1
is_gpu_available(tensorflow.python.framework.test_util'den) kaldırılmıştır ve gelecekteki bir sürümde kaldırılacaktır.
Himanshu Teotia

5

TENSORFLOW İÇİN GÜNCELLEME> = 2.1.

TensorFlow'un GPU kullanıp kullanmadığını kontrol etmek için önerilen yol şudur:

tf.config.list_physical_devices('GPU') 

TensorFlow 2.1'den tf.test.gpu_device_name()itibaren yukarıda belirtilenler lehine onaylanmamıştır.


3

Bu tf.sessiondoğrudan bash için kullanılabilir cihazları listelemek için kullanıyorum hattı :

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__);"

Kullanılabilir aygıtları ve tensorflow sürümünü yazdırır, örneğin:

_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

3

Snippet'in altında gpu test etmek için çok kullanışlı buldum.

Tensorflow 2.0 Testi

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

Tensorflow 1 Testi

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

3

Aşağıdakiler de GPU cihazlarınızın adını döndürür.

import tensorflow as tf
tf.test.gpu_device_name()

Bu komutun çıktısı boş bir dizeyse ... nasıl hata ayıklama yaparım?
zthomas.nc

3

Tensotflow 2.0 ile =

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

resim açıklamasını buraya girin


3
>>> 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')]

@AmitaiIrron tarafından önerildiği gibi:

Bu bölüm bir gpu bulunduğunu gösterir

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

Ve burada kullanılabilir bir fiziksel cihaz olarak eklendi

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')]

Çıktıda GPU'nun kullanılıp kullanılmadığını gösteren bölümlere işaret etmeniz yararlı olacaktır.
Amitai Irron

@AmitaiIrron Öneri için teşekkürler, umarım şimdi biraz daha açıktır.
bLeDy

2

GPU hızlandırmanın TensorFlow kurulumunuz tarafından kullanılıp kullanılmadığını test etmek için bazı seçenekleriniz vardır.

Aşağıdaki komutları üç farklı platformda yazabilirsiniz.

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
  1. Jupyter Notebook - Jupyter Notebook'u çalıştıran konsolu kontrol edin. Kullanılan GPU'yu görebileceksiniz.
  2. Python Shell - Çıktıyı doğrudan görebileceksiniz. (Not- ikinci komutun çıkışını 'sess' değişkenine atamayın; bu işe yararsa).
  3. Spyder - Konsolda aşağıdaki komutu yazın.

    import tensorflow as tf tf.test.is_gpu_available()


2

Tensorflow 2.1

GPU'da bellek kullanımı için nvidia-smi ile doğrulanabilen basit bir hesaplama.

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

1

TensorFlow 2.0 kullanıyorsanız, cihazları göstermek için döngü için bunu kullanabilirsiniz:

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

1

tensorflow 2.x kullanıyorsanız:

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

0

Tensorflow'un GPU kullanıp kullanmadığını kontrol etmek için Jupyter veya IDE'nizde bu komutu çalıştırın: tf.config.list_physical_devices('GPU')


Bu cevap buradaki diğer cevaplara nasıl yardımcı olur?
ComputerScientist
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.