파이썬 셸 내부에서 tensorflow가 GPU 가속을 사용하고 있는지 확인하는 방법은 무엇입니까?


303

나는 두 번째 대답을 사용하여 내 우분투 16.04에 tensorflow 설치 여기 우분투 APT CUDA 설치 내장의와 함께.

이제 내 질문은 tensorflow가 실제로 GPU를 사용하는지 어떻게 테스트 할 수 있습니까? 나는 gtx 960m GPU를 가지고 있습니다. 내가 import tensorflow이것이 출력

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

이 출력이 tensorflow가 gpu를 사용하고 있는지 확인하기에 충분합니까?


1
로그에 다음과 같은 내용이 표시되어야합니다. I tensorflow / core / common_runtime / gpu / gpu_device.cc : 838] TensorFlow 장치 생성 (/ gpu : 0)-> (장치 : 0, 이름 : GeForce GTX 980, pci bus id : 0000 : 03 : 00.0)
Yaroslav Bulatov

2
이에 log_device_placement대한 접근 방식 이 있습니다 . 가장 신뢰할 수있는 방법은이 주석에 지정된대로 타임 라인을 보는 것입니다 : github.com/tensorflow/tensorflow/issues/…
Yaroslav Bulatov

예, 야오 장의 답변에
따라이

어떤 로그에 @YaroslavBulatov? 파일에 쓰나요, 아니면 그런 말이 나오는지 어디에서 확인합니까?
Charlie Parker

1
그것은 stdout 또는 stderr에 씁니다
Yaroslav Bulatov

답변:


290

아니요, 그래프의 다른 노드가 다른 장치에있을 수 있기 때문에 "open CUDA 라이브러리"만으로는 충분하지 않다고 생각합니다.

어떤 장치가 사용되는지 확인하려면 다음과 같이 로그 장치 배치를 활성화하십시오.

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

이 유형의 출력에 대해서는 콘솔을 확인하십시오.


17
나는 이것을 시도했지만 전혀 아무것도 인쇄하지 않습니다. 왜 그런지 아십니까?
Qubix

8
Jupyter 노트북에서 했습니까?
Tamim Addari

27
Jupyter Notebook을 실행 한 콘솔에서 출력이 생성 될 수 있습니다.
musically_ut

18
Tensorflow V2에 대한 업데이트 된 답변을받을 수 있습니까 (tf.Sessions는 지원되지 않습니다).
iyop45

6
@ iyop45 tensorflow V2의 경우 명령이 약간 수정되었습니다.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))공식 TensorFlow 문서 뿐만 아니라 다른 답변에 요약 된 것을 사용 하는 것 외에도 GPU에 계산을 할당하고 오류가 있는지 확인할 수 있습니다.

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

여기

  • "/ cpu : 0": 컴퓨터의 CPU.
  • "/ gpu : 0": 컴퓨터의 GPU (있는 경우).

GPU를 가지고 있고 사용할 수 있다면 결과가 나타납니다. 그렇지 않으면 긴 스택 추적에 오류가 표시됩니다. 결국 당신은 다음과 같은 것을 가질 것입니다 :

'MatMul'노드에 장치를 할당 할 수 없음 :이 프로세스에 해당 사양과 일치하는 장치가 등록되어 있지 않으므로 명시 적 장치 사양 '/ device : GPU : 0'을 충족 할 수 없습니다


최근 몇 가지 유용한 기능이 TF에 나타났습니다.

세션에서 사용 가능한 장치를 확인할 수도 있습니다.

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

devices 당신에게 뭔가를 반환합니다

[_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
결과 : [[22. 28.] [49. 64.]]
George Pligoropoulos 2016 년

6
@GeorgePligor 결과는 여기서 중요하지 않습니다. 어느 쪽이든 당신은 결과를 가지고 있고 GPU를 사용하거나 당신이 그것을 사용하지 않았 음을 의미 오류,이
살바도르 달리

1
이것은 나를 위해 작동하지 않았습니다. nvidia-docker 등에 의해 실행되는 Docker Container 내에서 이것을 실행했습니다. 그러나 오류가 발생하지 않으며 CPU가 작동하는 CPU입니다. 나는 행렬을 조금 올려서 (10k * 10k) 잠시 계산합니다. CPU 사용률은 100 %까지 올라갔지 만 GPU는 항상 시원하게 유지되었습니다.
pascalwhoop

콘솔에서 실행할 때 "장치 일치 없음"오류가 발생했습니다. pycharm과 같은 IDE에는 오류가 없습니다. 콘솔에서 다른 세션과 관련이 있다고 생각합니다.
cn123h

이해하기 쉬운. GPU를 사용할 수 있다면 다음과 같이 인쇄됩니다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
Leoli

166

다음 코드는 tensorflow에 사용 가능한 모든 장치를 제공해야합니다.

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

샘플 출력

[name : "/ cpu : 0"device_type : "CPU"memory_limit : 268435456 locality {} 화신 : 4402277519343584096,

이름 : "/ gpu : 0"device_type : "GPU"memory_limit : 6772842168 locality {bus_id : 1} 화신 : 7471795903849088328 physical_device_desc : "장치 : 0, 이름 : GeForce GTX 1070, pci 버스 ID : 0000 : 05 : 00.0"]


9
이것이 가장 좋은 대답입니다.
lolski

3
이 명령이 "GPU"를 가진 항목을 반환하지 않으면 내 컴퓨터에 단순히 GPU가 있거나 tensorflow가이를 찾을 수 없다는 의미입니까?
mercury0114

@ mercury0114 둘 중 하나 일 수 있습니다. 예를 들어, GPU는 있지만 tensorflow-gpu가 제대로 설치되지 않았을 수 있습니다.
jimijazz

4
동의하지 않습니다. 이 질문에 대답 하지 않습니다 . 사용 가능한 장치가 아니라 사용 된 장치에 관한 것 입니다. 그리고 그것은 완전히 다른 이야기가 될 수 있습니다! (예 : TF는 기본적으로 1 GPU 만 사용합니다.
Mayou36

이름 : "/ device : GPU : 0"device_type : "GPU"memory_limit : 10711446324 locality {bus_id : 1 links {}} 화신 : 17935632445266485019 physical_device_desc : "장치 : 0, 이름 : GeForce RTX 2080 Ti, PCI 버스 ID : 0000 : 01 : 00.0, 계산 기능 : 7.5 "]
Kamran kausar

89

나는 이것을 달성하는 더 쉬운 방법이 있다고 생각합니다.

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

일반적으로 다음과 같이 인쇄됩니다.

Default GPU Device: /device:GPU:0

자세한 로그보다 나에게 더 쉬운 것처럼 보입니다.


동의했다. 위에서 설명한 방법보다 쉽습니다. 사용중인 GPU 목록을 인쇄합니다. 감사합니다
user907629

2
모두의 최고
echan00

이것은 유효한 테스트가 아닙니다. tensorflow의 GPU 버전이 설치되어 있어도 else 문으로 돌아갑니다.
Goddard

68

텐서 플로우 2.0

세션은 더 이상 2.0에서 사용되지 않습니다. 대신 다음을 사용할 수 있습니다 tf.test.is_gpu_available.

import tensorflow as tf

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

오류가 발생하면 설치를 확인해야합니다.


TF 1.14에서도 작동합니다 (이전 버전 일 수도 있습니다)!
Overdrivr

6
이제 권장합니다tf.config.list_physical_devices('GPU')
Roy Shilkrot

@Roy Shilkrot 텐서 플로 2.0에서는 'tf.config.list_physical_devices ('GPU ')'가 작동하지 않는다고 생각합니다.
joselquin

1
@joselquin TF v2.x 문서는 tensorflow.org/api_docs/python/tf/config/experimental/… 과 같이 작동해야 하며 , 그것이 작동하는지 확인할 수 있습니다.
Roy Shilkrot

29

이것은 훈련하면서 GPU를 사용하는 tensorflow를 확인합니다.

암호

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

산출

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
답변이 작동 하는지에 대한 설명을 추가하십시오 ( log_device_placement출력에서 CPU와 GPU를 어떻게하고 어떻게합니까?). 그러면 답변의 품질이 향상됩니다!
Nander Speerstra

25

다른 답변 외에도 다음은 텐서 플로우 버전에 GPU 지원이 포함되어 있는지 확인하는 데 도움이됩니다.

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

7
경고 : TensorFlow가 GPU로 컴파일되었는지 알려줍니다. GPU 사용 여부가 아닙니다. (예를 들어 드라이버가 제대로 설치되지 않은 경우 "is_built_with_cuda ()"가 true 인 경우에도 CPU가 사용됩니다.)
Ricardo Cruz

19

좋아, 먼저 ipython shell터미널과 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

이제 다음 명령을 사용하여 콘솔에서 GPU 메모리 사용량을 수 있습니다 .

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

우리는 importTensorFlow 만 사용했지만 아직 GPU를 사용하지 않았으므로 사용 통계는 다음과 같습니다.

tf 비 GPU 사용량

GPU 메모리 사용량이 얼마나 적은지 확인하십시오 (~ 700MB). 때로는 GPU 메모리 사용량이 0MB 정도로 낮을 수도 있습니다.


이제 코드에 GPU를로드하겠습니다. 에 표시된대로 다음을 tf documentation수행하십시오.

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

이제 watch stats에 아래와 같이 업데이트 된 GPU 사용량 메모리가 표시되어야합니다.

tf GPU 시계

ipython 쉘의 Python 프로세스가 ~ 7GB의 GPU 메모리를 사용하는 방법을 살펴보십시오.


PS 코드가 실행되는 동안 이러한 통계를 계속 보면서 GPU 사용량이 시간이 지남에 따라 얼마나 강력한 지 확인할 수 있습니다.


1
답을 별표 표시 할 수 있기를 바랍니다. 이것은 황금이다
Zain Rizvi

18

이것은 Pensor-3.6에서 Tensorflow에 사용 가능한 장치 목록을 제공해야합니다.

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 내가 실수로 질문을 downvoted ... 질문을 편집하면 내 downvote을 취소합니다
Francesco Boi

14

GPU 사용을 모니터링하기 위해 nvidia-smi를 사용하는 것을 선호합니다. 프로그래밍을 시작할 때 크게 증가하면 tensorflow가 GPU를 사용하고 있다는 강력한 신호입니다.


이것은 간접적 인 방법입니다
papabiceps

nvdia-smi를 사용하여 GPU 사용량을 어떻게 모니터링합니까?
Razin

cuda를 설치 한 후 nvidia-smi가 시스템에 있어야합니다. 나는 일반적으로 사용법을 모니터링하기 위해 'nvidia-smi -l'을 사용합니다.
scott huang

3
또한 nvidia-smi watch를 사용하여 2 초마다 화면을 업데이트 할 수 있습니다.
Perseus14

nvidia-smi가 잘 작동하는 것을 지켜보십시오. 또한 파이썬 프로세스가 GPU를 사용하고 있음을 출력에서 ​​확인할 수 있습니다.
formica

9

최신 Tensorflow 업데이트를 통해 다음과 같이 확인할 수 있습니다.

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

TrueGPU를 사용중인 경우 Tensorflow반환하고 False그렇지 않으면 반환 합니다.

장치를 원하면 device_name다음을 입력 할 수 있습니다 tf.test.gpu_device_name().. 여기 에서 자세한 정보를 얻으십시오


8

Jupyter에서 다음을 실행하십시오.

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

제대로 환경을 설정 한 경우, 다음과 같은거야 당신이 "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

여기 Nvidia Quodro K620과 함께 TensorFlow를 사용하고 있습니다.


Jupyter는 전혀 필요하지 않습니다. 질문에 복잡성을 추가하지 마십시오
Patrizio Bertoni

1
일부 사용자는 Jupyter에서 GPU를 사용할 수 있는지 확인하고자 할 수 있습니다. 또한 이것은 Python 스크립트에서 실행할 수 있습니다.
와플 캣

8

커맨드 라인에서 GPU를 쿼리하는 것이 가장 쉽다는 것을 알았습니다.

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

학습이 백그라운드 프로세스 인 경우 pid from jobs -p은 pid from 과 일치해야합니다.nvidia-smi


6

다음 코드를 실행하여 현재 GPU를 사용 중인지 확인할 수 있습니다.

import tensorflow as tf
tf.test.gpu_device_name()

출력이 ''이면 사용 중임을 의미합니다 CPU.
출력이 이와 같은 경우 작동 /device:GPU:0한다는 의미 GPU입니다.


다음 코드를 사용하여 사용중인 것을 확인하십시오 GPU.

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

출력이 ' '인 경우 어떻게해야합니까?
Jason

@Jason GPU 버전을 다시 설치하십시오.
Hu Xixi

6

Jupyter 노트북 상단 근처에 두십시오. 필요하지 않은 것을 주석으로 처리하십시오.

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

참고 : TensorFlow 2.0이 출시되면서 Keras가 TF API의 일부로 포함되었습니다.

원래 여기에 answerwed .


5

Tensorflow 2.0의 경우

import tensorflow as tf

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

여기에 소스

다른 옵션은 다음과 같습니다.

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

1
is_gpu_available(tensorflow.python.framework.test_util에서)은 더 이상 사용되지 않으며 향후 버전에서 제거 될 예정입니다.
Himanshu Teotia

5

텐서 플로우 업데이트> = 2.1.

TensorFlow가 GPU를 사용하고 있는지 확인하는 권장 방법은 다음과 같습니다.

tf.config.list_physical_devices('GPU') 

TensorFlow 2.1부터는 tf.test.gpu_device_name()위에서 언급 한 바에 따라 더 이상 사용되지 않습니다.


3

이것은 tf.sessionbash 에서 직접 사용할 수있는 장치를 나열하는 데 사용하는 회선입니다 .

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

사용 가능한 장치 및 tensorflow 버전을 인쇄합니다. 예를 들면 다음과 같습니다.

_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

아래 스 니펫이 GPU를 테스트하는 데 매우 편리하다는 것을 알았습니다.

텐서 플로우 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))

텐서 플로우 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))

3

다음은 GPU 장치의 이름도 반환합니다.

import tensorflow as tf
tf.test.gpu_device_name()

이 명령의 출력이 빈 문자열이면 ... 어떻게 디버깅합니까?
zthomas.nc

3

tensotflow 2.0 이상

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

여기에 이미지 설명을 입력하십시오


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이 제안한대로 :

이 섹션은 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

여기에 사용 가능한 물리적 장치로 추가되었습니다

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

GPU의 사용 여부를 나타내는 출력 섹션을 가리키는 경우 유용합니다.
Amitai Irron

@AmitaiIrron 제안에 감사드립니다, 나는 그것이 조금 더 명확 해지기를 바랍니다.
bLeDy

2

TensorFlow 설치에서 GPU 가속이 사용되고 있는지 테스트 할 수있는 옵션이 있습니다.

세 가지 다른 플랫폼에서 다음 명령을 입력 할 수 있습니다.

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
  1. Jupyter Notebook-Jupyter Notebook을 실행중인 콘솔을 확인하십시오. 사용중인 GPU를 볼 수 있습니다.
  2. Python Shell-출력을 직접 볼 수 있습니다. (참고-두 번째 명령의 출력을 변수 'sess'에 할당하지 마십시오.
  3. 스파이더-콘솔에 다음 명령을 입력하십시오.

    import tensorflow as tf tf.test.is_gpu_available()


2

텐서 플로우 2.1

GPU의 메모리 사용량에 대해 nvidia-smi로 확인할 수있는 간단한 계산입니다.

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을 사용하는 경우이 for 루프를 사용하여 장치를 표시 할 수 있습니다.

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

1

tensorflow 2.x를 사용하는 경우 다음을 사용하십시오.

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

0

Jupyter 또는 IDE에서이 명령을 실행하여 Tensorflow가 GPU를 사용하고 있는지 확인하십시오. tf.config.list_physical_devices('GPU')


이 답변이 나머지 답변에 어떻게 도움이됩니까?
ComputerScientist
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.