Tensorflow có xu hướng preallocate toàn bộ bộ nhớ có sẵn trên GPU của nó. Để gỡ lỗi, liệu có cách nào để nói số lượng bộ nhớ đó thực sự đang được sử dụng không?Có cách nào để xác định bộ nhớ GPU đang được sử dụng bởi TensorFlow không?
Trả lời
(1) Có một số hỗ trợ giới hạn với Timeline để cấp phát bộ nhớ đăng nhập. Dưới đây là một ví dụ cho việc sử dụng của nó:
run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
run_metadata = tf.RunMetadata()
summary, _ = sess.run([merged, train_step],
feed_dict=feed_dict(True),
options=run_options,
run_metadata=run_metadata)
train_writer.add_run_metadata(run_metadata, 'step%03d' % i)
train_writer.add_summary(summary, i)
print('Adding run metadata for', i)
tl = timeline.Timeline(run_metadata.step_stats)
print(tl.generate_chrome_trace_format(show_memory=True))
trace_file = tf.gfile.Open(name='timeline', mode='w')
trace_file.write(tl.generate_chrome_trace_format(show_memory=True))
Bạn có thể cung cấp mã này thử với ví dụ MNIST (mnist with summaries)
này sẽ tạo ra một tập tin truy tìm tên dòng thời gian, bạn có thể mở bằng chrome:// truy tìm. Lưu ý rằng điều này chỉ cung cấp số liệu thống kê sử dụng bộ nhớ GPU xấp xỉ. Về cơ bản nó mô phỏng thực thi GPU, nhưng không có quyền truy cập vào siêu dữ liệu đồ thị đầy đủ. Nó cũng không thể biết có bao nhiêu biến đã được gán cho GPU.
(2) Đối với một biện pháp sử dụng bộ nhớ GPU rất thô, nvidia-smi sẽ hiển thị tổng mức sử dụng bộ nhớ thiết bị tại thời điểm bạn chạy lệnh.
nvprof có thể hiển thị mức sử dụng bộ nhớ chia sẻ trên chip và đăng ký mức sử dụng ở cấp hạt nhân CUDA, nhưng không hiển thị mức sử dụng bộ nhớ toàn cục/thiết bị.
Dưới đây là một lệnh ví dụ: nvprof --print-gpu-trace matrixMul
Và biết thêm chi tiết ở đây: http://docs.nvidia.com/cuda/profiler-users-guide/#abstract
Các hồ sơ TensorFlow đã được cải thiện thời gian bộ nhớ được dựa trên gpu thực thông tin bộ nhớ cấp phát https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler#visualize-time-and-memory
Bạn có thể sử dụng bộ theo dõi bộ nhớ GPU của bên thứ 3 (nghĩa là GPU-Z) để hiển thị toàn bộ mức sử dụng GPU. Họ có thể không cung cấp cho bạn sử dụng GPU cho mỗi quy trình nhưng nếu bạn đang sử dụng GPU chỉ cho lưu lượng và nếu bạn không cần phân tích chi tiết, nó sẽ là giải pháp nhanh và chính xác.
- 1. TensorFlow: cách đăng nhập sử dụng bộ nhớ GPU (VRAM)?
- 2. Tensorflow không sử dụng GPU
- 3. TensorFlow: Cách xác minh rằng nó đang chạy trên GPU
- 4. Sử dụng bộ nhớ GPU progamatically
- 5. TensorFlow: Làm thế nào để đo lường bao nhiêu bộ nhớ GPU mỗi tensor mất?
- 6. Làm thế nào để ngăn chặn lưu lượng tensorflow phân bổ toàn bộ bộ nhớ GPU?
- 7. Xác định tệp đang được sử dụng bởi FileHandler
- 8. Giới hạn CPU Tensorflow và mức sử dụng bộ nhớ
- 9. Làm thế nào tôi có thể giải quyết 'hết bộ nhớ gpu' trong TensorFlow
- 10. Làm thế nào để bạn xác định phụ trợ nào đang được sử dụng bởi matplotlib?
- 11. Xác định xem cổng có đang được sử dụng không?
- 12. Làm cách nào để tính toán bộ nhớ GPU cần thiết để chạy mô hình trong TensorFlow?
- 13. Làm thế nào để kiểm soát bộ nhớ trong khi sử dụng Keras với backend tensorflow?
- 14. TensorFlow - Sử dụng GPU thấp trên Titan X
- 15. Tìm hiểu số lượng bộ nhớ đang được sử dụng bởi một đối tượng trong C#?
- 16. Làm cách nào để xác định xem trang ASP.NET có rò rỉ bộ nhớ hay không
- 17. Tôi làm cách nào để xác định dung lượng bộ nhớ mà chương trình .NET của tôi đang sử dụng?
- 18. Làm thế nào tôi có thể xác định đối tượng nào đang được thu thập bởi bộ thu gom rác?
- 19. Làm cách nào để xác định họ phông chữ hiện tại đang được sử dụng bởi Sublime Text 2?
- 20. Split RNN Mức tiêu thụ bộ nhớ Đồng đều giữa các GPU trong TensorFlow
- 21. Làm cách nào để kiểm tra xem keras có sử dụng phiên bản gpu của tensorflow không?
- 22. Dụng cụ có hiển thị bộ nhớ được sử dụng bởi UIWebView không?
- 23. Nhận tổng dung lượng bộ nhớ GPU?
- 24. xác định lượng tài nguyên được sử dụng bởi tập lệnh php (phần trăm cpu và bộ nhớ)
- 25. Quản lý bộ nhớ iOS iOS - cách giải phóng "Bộ nhớ thực" được sử dụng bởi UIImageViews, UIScrollViews?
- 26. Xác định lượng bộ nhớ mà một lớp sử dụng?
- 27. Làm cách nào để xác định xem một ô được trả về bởi dequeueReusableCellWithIdentifier có đang được sử dụng lại trong iOS 6 không?
- 28. GPU - Ánh xạ bộ nhớ hệ thống
- 29. r - Làm thế nào để xóa bộ nhớ được sử dụng bởi rJava?
- 30. Cách chính xác để sử dụng bộ nhớ Mathematica?
Từ trong chrome: // truy tìm nơi bạn có thể thấy tổng phân bổ thiết bị? –