Bagaimana cara mengetahui apakah tensorflow menggunakan akselerasi GPU dari dalam python shell?

303

Saya telah menginstal tensorflow di ubuntu 16.04 saya menggunakan jawaban kedua di sini dengan instalasi ubuntu apt .

Sekarang pertanyaan saya adalah bagaimana saya bisa menguji apakah tensorflow benar-benar menggunakan GPU? Saya punya gtx 960m gpu. Ketika saya import tensorflowini adalah output

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

Apakah output ini cukup untuk memeriksa apakah tensorflow menggunakan GPU?

Tamim Addari
sumber
1
Anda akan melihat sesuatu seperti ini di log Anda: Saya tensorflow / core / common_runtime / gpu / gpu_device.cc: 838] Membuat perangkat TensorFlow (/ gpu: 0) -> (perangkat: 0, nama: GeForce GTX 980, pci bus id : 0000: 03: 00.0)
Yaroslav Bulatov
2
Ada log_device_placementpendekatan dalam menjawab. Cara yang paling dapat diandalkan adalah dengan melihat timeline sebagaimana ditentukan dalam komentar ini: github.com/tensorflow/tensorflow/issues/…
Yaroslav Bulatov
Ya, saya mendapatkan hasil ini setelah jawaban Yao Zhang ...
Tamim Addari
@YaroslavBulatov di log apa? Apakah itu menulisnya ke file atau di mana saya memeriksa apakah pernyataan seperti itu muncul?
Charlie Parker
1
Ini menulis ke stdout atau stderr
Yaroslav Bulatov

Jawaban:

290

Tidak, saya tidak berpikir "perpustakaan CUDA terbuka" sudah cukup untuk mengatakan, karena node yang berbeda dari grafik mungkin pada perangkat yang berbeda.

Untuk mengetahui perangkat mana yang digunakan, Anda dapat mengaktifkan penempatan perangkat log seperti ini:

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

Periksa konsol Anda untuk jenis output ini.

Yao Zhang
sumber
17
Saya mencoba ini dan tidak mencetak apa pun. Adakah yang tahu mengapa itu terjadi?
Qubix
8
Apakah Anda melakukannya pada notebook jupyter?
Tamim Addari
27
Output dapat dihasilkan di konsol tempat Anda menjalankan Notebook Jupyter.
musically_ut
18
Bisakah kita mendapatkan jawaban yang diperbarui untuk Tensorflow V2 (di mana tf. Sesi tidak didukung).
iyop45
6
@ iyop45 Untuk tensorflow V2, perintahnya sedikit dimodifikasi:sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))
Vandan
276

Selain menggunakan sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))yang dijabarkan dalam jawaban lain serta dalam dokumentasi TensorFlow resmi , Anda dapat mencoba menetapkan perhitungan ke gpu dan melihat apakah Anda memiliki kesalahan.

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

Sini

  • "/ cpu: 0": CPU mesin Anda.
  • "/ gpu: 0": GPU mesin Anda, jika Anda memilikinya.

Jika Anda memiliki GPU dan dapat menggunakannya, Anda akan melihat hasilnya. Kalau tidak, Anda akan melihat kesalahan dengan stacktrace panjang. Pada akhirnya Anda akan memiliki sesuatu seperti ini:

Tidak dapat menetapkan perangkat ke simpul 'MatMul': Tidak dapat memenuhi spesifikasi perangkat eksplisit '/ perangkat: GPU: 0' karena tidak ada perangkat yang cocok dengan spesifikasi yang terdaftar dalam proses ini


Baru-baru ini beberapa fungsi bermanfaat muncul di TF:

Anda juga dapat memeriksa perangkat yang tersedia di sesi:

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

devices akan mengembalikan Anda sesuatu seperti

[_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
sumber
17
Hasil: [[22. 28.] [49. 64.]]
George Pligoropoulos
6
@ GeorgePligor hasilnya tidak terlalu penting di sini. Entah Anda memiliki hasil dan GPU digunakan atau Anda memiliki kesalahan, yang berarti tidak digunakan
Salvador Dali
1
Ini tidak berhasil untuk saya. Saya menjalankan ini di dalam Docker Container saya yang dieksekusi oleh nvidia-docker dan sebagainya. Namun saya tidak mendapatkan kesalahan dan CPU adalah yang bekerja. Saya menaikkan matriks sedikit (10k * 10k) untuk memastikan itu menghitung untuk sementara waktu. Utilitas CPU naik hingga 100% tetapi GPU tetap dingin seperti biasa.
pascalwhoop
Saya mendapat kesalahan "tidak ada perangkat yang cocok" ketika menjalankannya di konsol. Dalam IDE seperti pycharm tidak ada kesalahan. Saya kira ini terkait dengan Sesi yang saya gunakan, yang berbeda di konsol.
cn123h
Mudah dimengerti. Jika GPU tersedia itu akan mencetak sesuatu sepertiFound 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

Sepotong kode berikut akan memberi Anda semua perangkat yang tersedia untuk tensorflow.

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

Output Sampel

[nama: "/ cpu: 0" device_type: "CPU" memory_limit: 268435456 lokalitas {} inkarnasi: 4402277519343584096,

nama: "/ gpu: 0" device_type: "GPU" memory_limit: 6772842168 lokalitas {bus_id: 1} inkarnasi: 7471795903849088328 physical_device_desc: "perangkat: 0, nama: GeForce GTX 1070, id bus pci: 0000: 05.0"]

Sheraz
sumber
9
Ini jawaban terbaik.
lolski
3
dan jika perintah ini tidak mengembalikan entri dengan "GPU", apakah itu berarti mesin saya hanya memiliki GPU, atau tensorflow tidak dapat menemukannya?
mercury0114
@ mercury0114 mungkin juga. misalnya, Anda mungkin memiliki gpu tetapi tidak memasang tensorflow-gpu dengan benar.
jimijazz
4
Saya tidak setuju, ini tidak menjawab pertanyaan: ini bukan tentang perangkat yang tersedia tetapi alat yang digunakan . Dan itu bisa menjadi cerita yang sama sekali berbeda! (mis. TF hanya akan menggunakan 1 GPU secara default.
Mayou36
nama: "/ perangkat: GPU: 0" device_type: "GPU" memory_limit: 10711446324 lokalitas {bus_id: 1 tautan {}} inkarnasi: 17935632445266485019 physical_device_desc: "perangkat: 0, nama: GeForce RTX 2080 Ti, id bus pci: 0000: 01: 00.0, kemampuan komputasi: 7,5 "]
kamran kausar
89

Saya pikir ada cara yang lebih mudah untuk mencapai ini.

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

Ini biasanya mencetak suka

Default GPU Device: /device:GPU:0

Bagi saya ini lebih mudah daripada log yang bertele-tele.

Ishan Bhatt
sumber
Sepakat. Lebih mudah daripada pendekatan yang dijelaskan di atas. Mencetak daftar GPU yang digunakannya. Terima kasih
user907629
2
Yang terbaik dari semuanya
echan00
Ini bukan tes yang valid. Ini akan kembali ke pernyataan lain meskipun Anda telah menginstal versi tensorflow GPU.
Goddard
68

Tensorflow 2.0

Sesi tidak lagi digunakan di 2.0. Sebagai gantinya, seseorang dapat menggunakan tf.test.is_gpu_available:

import tensorflow as tf

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

Jika Anda mendapatkan kesalahan, Anda perlu memeriksa instalasi Anda.

ma3oun
sumber
Itu juga bekerja dengan TF 1.14 (bahkan mungkin beberapa versi lama)!
Overdrivr
6
Sekarang dianjurkan untuk melakukantf.config.list_physical_devices('GPU')
Roy Shilkrot
@Roy Shilkrot Saya pikir 'tf.config.list_physical_devices (' GPU ')' tidak berfungsi di Tensorflow 2.0
joselquin
1
@ joselquin Dokumen TF v2.x menyatakan bahwa ia seharusnya berfungsi: tensorflow.org/api_docs/python/tf/config/experimental/… , dan saya dapat memverifikasinya tidak bekerja untuk saya.
Roy Shilkrot
29

Ini akan mengkonfirmasi bahwa tensorflow menggunakan GPU saat pelatihan juga?

Kode

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

Keluaran

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
sumber
5
Harap tambahkan sedikit penjelasan mengapa jawaban Anda berfungsi (apa yang log_device_placementdilakukan dan bagaimana cara melihat CPU vs GPU di output?). Itu akan meningkatkan kualitas jawaban Anda!
Nander Speerstra
25

Selain jawaban lain, berikut ini akan membantu Anda untuk memastikan bahwa versi tensorflow Anda termasuk dukungan GPU.

import tensorflow as tf
print(tf.test.is_built_with_cuda())
karaspd
sumber
7
Peringatan: Itu memberi tahu Anda jika TensorFlow dikompilasi dengan GPU. Bukan apakah GPU digunakan. (Jika driver tidak diinstal dengan benar misalnya, maka CPU digunakan, bahkan jika "is_built_with_cuda ()" benar.)
Ricardo Cruz
19

Ok, pertama jalankan ipython shellterminal dan 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

Sekarang, kita dapat menonton penggunaan memori GPU di konsol menggunakan perintah berikut:

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

Karena kami hanya importmengedit TensorFlow tetapi belum menggunakan GPU apa pun, statistik penggunaannya adalah:

tf penggunaan non-gpu

Perhatikan bagaimana penggunaan memori GPU sangat kurang (~ 700MB); Kadang-kadang penggunaan memori GPU bahkan mungkin serendah 0 MB.


Sekarang, mari kita muat GPU dalam kode kita. Seperti ditunjukkan dalam tf documentation, lakukan:

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

Sekarang, statistik jam tangan harus menunjukkan memori penggunaan GPU yang diperbarui seperti di bawah ini:

tf jam tangan

Amati sekarang bagaimana proses Python kami dari shell ipython menggunakan ~ 7 GB memori GPU.


PS Anda dapat terus menonton statistik ini ketika kode berjalan, untuk melihat seberapa kuat penggunaan GPU dari waktu ke waktu.

kmario23
sumber
1
Saya berharap bisa membintangi jawaban. Yang ini emas
Zain Rizvi
18

Ini harus memberikan daftar perangkat yang tersedia untuk Tensorflow (di bawah 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
sumber
man I downvoted pertanyaan Anda karena kesalahan ... jika Anda mengedit pertanyaan Anda, saya akan membatalkan downvote saya
Francesco Boi
14

Saya lebih suka menggunakan nvidia-smi untuk memantau penggunaan GPU. jika naik secara signifikan ketika Anda memulai program, itu pertanda kuat bahwa tensorflow Anda menggunakan GPU.

scott huang
sumber
Ini adalah cara tidak langsung
papabiceps
Bagaimana Anda menggunakan nvdia-smi untuk memantau penggunaan GPU?
Razin
setelah Anda menginstal cuda. nvidia-smi harus ada di sistem Anda. Saya biasanya menggunakan 'nvidia-smi -l' untuk memantau penggunaannya.
scott huang
3
Anda juga dapat menggunakan arloji nvidia-smi, memperbarui layar setiap 2 detik
Perseus14
menonton nvidia-smi bekerja dengan baik untuk saya. Saya juga bisa melihat dalam output bahwa proses python saya menggunakan GPU
formica
9

Dengan pembaruan terbaru dari Tensorflow, Anda dapat memeriksanya sebagai berikut:

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

Ini akan kembali Truejika GPU digunakan oleh Tensorflow, dan mengembalikan Falsesebaliknya.

Jika Anda ingin perangkat device_nameAnda dapat mengetik: tf.test.gpu_device_name(). Dapatkan detail lebih lanjut dari sini

Soufiane Chami
sumber
8

Jalankan yang berikut di Jupyter,

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

Jika Anda telah mengatur lingkungan Anda dengan benar, Anda akan mendapatkan output berikut di terminal tempat Anda menjalankan "jupyter notebook" ,

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

Anda dapat melihat di sini saya menggunakan TensorFlow dengan Nvidia Quodro K620.

wafflecat
sumber
Jupyter sama sekali tidak perlu, tolong jangan tambahkan kompleksitas pada pertanyaan
Patrizio Bertoni
1
Beberapa pengguna mungkin ingin memastikan GPU dapat digunakan di Jupyter. Selain itu, ini dapat dijalankan dari skrip Python.
wafflecat
8

Saya menemukan hanya menanyakan GPU dari baris perintah adalah yang paling mudah:

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

jika pembelajaran Anda adalah proses latar belakang pid dari jobs -pharus cocok dengan pid darinvidia-smi

Tim
sumber
6

Anda dapat memeriksa apakah Anda saat ini menggunakan GPU dengan menjalankan kode berikut:

import tensorflow as tf
tf.test.gpu_device_name()

Jika hasilnya adalah '', itu berarti Anda CPUhanya menggunakan ;
Jika outputnya seperti itu /device:GPU:0, artinya GPUberfungsi.


Dan gunakan kode berikut untuk memeriksa yang GPUAnda gunakan:

from tensorflow.python.client import device_lib 
device_lib.list_local_devices()
Hu Xixi
sumber
Jika hasilnya ' ', lalu apa yang harus kita lakukan?
Jason
@Jason Cukup instal ulang versi GPU.
Hu Xixi
6

Letakkan ini di dekat bagian atas notebook jupyter Anda. Komentari apa yang tidak Anda butuhkan.

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

CATATAN: Dengan dirilisnya TensorFlow 2.0, Keras sekarang dimasukkan sebagai bagian dari TF API.

Awalnya jawab di sini .

Paul Williams
sumber
5

Untuk Tensorflow 2.0

import tensorflow as tf

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

sumber di sini

Pilihan lain adalah:

tf.config.experimental.list_physical_devices('GPU')
ChaosPredictor
sumber
1
is_gpu_available(dari tensorflow.python.framework.test_util) sudah usang dan akan dihapus dalam versi yang akan datang.
Himanshu Teotia
5

PEMBARUAN UNTUK TENSORFLOW> = 2.1.

Cara yang disarankan untuk memeriksa apakah TensorFlow menggunakan GPU adalah sebagai berikut:

tf.config.list_physical_devices('GPU') 

Pada TensorFlow 2.1, tf.test.gpu_device_name()telah usang mendukung yang disebutkan di atas.

Timbus Calin
sumber
3

Ini adalah baris yang saya gunakan untuk daftar perangkat yang tersedia untuk tf.sessionlangsung dari 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__);"

Ini akan mencetak perangkat yang tersedia dan versi tensorflow, misalnya:

_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
sumber
3

Saya menemukan cuplikan di bawah ini sangat berguna untuk menguji GPU ..

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

Tes 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
sumber
3

Berikut ini juga akan mengembalikan nama perangkat GPU Anda.

import tensorflow as tf
tf.test.gpu_device_name()
Maz
sumber
Jika output dari perintah ini adalah string kosong ... bagaimana saya melakukan debug?
zthomas.nc
3

Dengan tensotflow 2.0> =

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

masukkan deskripsi gambar di sini

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

Seperti yang disarankan oleh @AmitaiIrron:

Bagian ini menunjukkan bahwa GPU ditemukan

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

Dan di sini itu ditambahkan sebagai perangkat fisik yang tersedia

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')]
bLeDy
sumber
Akan bermanfaat jika Anda menunjuk ke bagian-bagian dalam output yang menunjukkan apakah GPU digunakan.
Amitai Irron
@AmitaiIrron Terima kasih atas sarannya, saya harap ini sedikit lebih jelas sekarang.
bLeDy
2

Anda memiliki beberapa opsi untuk menguji apakah akselerasi GPU sedang digunakan oleh instalasi TensorFlow Anda.

Anda dapat mengetik perintah berikut dalam tiga platform berbeda.

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
  1. Jupyter Notebook - Periksa konsol yang menjalankan Notebook Jupyter. Anda akan dapat melihat GPU digunakan.
  2. Python Shell - Anda akan dapat langsung melihat hasilnya. (Catatan - jangan tetapkan output dari perintah kedua ke variabel 'sess'; jika itu membantu).
  3. Spyder - Ketik perintah berikut di konsol.

    import tensorflow as tf tf.test.is_gpu_available()

simpleParadox
sumber
2

Tensorflow 2.1

Penghitungan sederhana yang dapat diverifikasi dengan nvidia-smi untuk penggunaan memori pada 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
sumber
1

Jika Anda menggunakan TensorFlow 2.0, Anda dapat menggunakan ini untuk loop untuk menampilkan perangkat:

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

jika Anda menggunakan tensorflow 2.x gunakan:

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

Jalankan perintah ini di Jupyter atau IDE Anda untuk memeriksa apakah Tensorflow menggunakan GPU atau tidak: tf.config.list_physical_devices('GPU')

Tenzin Jinsel
sumber
Bagaimana jawaban ini membantu sisa jawaban di sini?
ComputerScientist