Tôi đang tìm một cách đơn giản để xác minh rằng đồ thị TF
của tôi thực sự đang chạy trên GPU.TensorFlow: Cách xác minh rằng nó đang chạy trên GPU
PS. Nó cũng sẽ được tốt đẹp để xác minh rằng các thư viện cuDNN
được sử dụng.
Tôi đang tìm một cách đơn giản để xác minh rằng đồ thị TF
của tôi thực sự đang chạy trên GPU.TensorFlow: Cách xác minh rằng nó đang chạy trên GPU
PS. Nó cũng sẽ được tốt đẹp để xác minh rằng các thư viện cuDNN
được sử dụng.
Có một số cách để xem vị trí quảng cáo.
Thêm RunOptions và RunMetadata vào cuộc gọi phiên và xem vị trí của op và tính toán trong Tensorboard. Xem mã tại đây: https://www.tensorflow.org/get_started/graph_viz
Chỉ định tùy chọn log_device_placement trong phiên ConfigProto. Bản ghi này để bàn giao tiếp mà thiết bị hoạt động được đặt trên. https://www.tensorflow.org/api_docs/python/tf/ConfigProto
Xem mức sử dụng GPU trong thiết bị đầu cuối bằng nvidia-smi.
Lưu ý rằng siêu dữ liệu ghi nhật ký rất tốn tài nguyên và chỉ nên được sử dụng để gỡ lỗi. – pfredriksen
Khi bạn nhập TF bằng Python
import tensorflow as tf
Bạn sẽ nhận được những bản ghi mà chỉ sử dụng các thư viện CUDA
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.so.5 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.8.0 locally
Ngoài ra, khi bạn xây dựng một đồ thị và chạy một phiên làm việc với log_device_placement trong Config Proto, bạn sẽ nhận được các bản ghi này (cho thấy nó đã tìm thấy một thiết bị GPU):
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:910] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties:
name: GeForce GTX 1060 6GB
major: 6 minor: 1 memoryClockRate (GHz) 1.759
pciBusID 0000:01:00.0
Total memory: 5.93GiB
Free memory: 4.94GiB
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 GTX 1060 6GB, pci bus id: 0000:01:00.0)
Tôi m nhận được cùng một đầu ra như mô tả ở trên. Nhưng các mô hình số lượng được thực hiện để được đào tạo cũng giống như CPU. Không chắc chắn, những gì tôi đang làm sai. Sử dụng Công cụ ước tính DNNRegressor và mã giống nhau đang chạy trên CPU và GPU mà không có bất kỳ sửa đổi nào, vì tôi đã biết rằng các ước tính theo mặc định chọn GPU để thực thi nếu GPU khả dụng. Bất kỳ cách nào để tìm ra ?? – user3457384
bạn có thể thấy mức sử dụng GPU không? làm "xem nvidia-smi". Nhìn vào việc sử dụng bộ nhớ và biến động GPU. – hars
Đây là vấn đề của tôi được giải thích chi tiết. https://stackoverflow.com/questions/46648484/how-to-make-best-use-of-gpu-for-tensorflow-estimators – user3457384
Có một số liên quan TensorFlow upstream issue. Về cơ bản nó nói rằng các API Python không lộ thông tin như vậy được nêu ra.
Tuy nhiên, API C++ thực hiện. Ví dụ. có tensorflow::KernelsRegisteredForOp()
. Tôi đã viết một trình bao bọc Python nhỏ xung quanh và sau đó triển khai supported_devices_for_op
here (trong this commit).
Chạy bằng 'nvprof' có thể cung cấp thông tin chi tiết về các cuộc gọi hàm cuda. Hoặc chỉ cần chạy 'nvidia-smi' để kiểm tra việc sử dụng GPU trong khi đang chạy. – Kh40tiK
Bản sao có thể có của [Làm thế nào để một TensorFlow không chạy tập lệnh trừ khi GPU được tải thành công?] (Http://stackoverflow.com/questions/42403501/how-does-one-have-tensorflow-not-run-the -số-trừ-the-gpu-đã-nạp-succes) –