2016-05-02 40 views
8

Setup:Cách bật Keras với Theano để sử dụng nhiều GPU

  • Sử dụng một hệ thống Amazon Linux với một Nvidia GPU
  • Tôi đang sử dụng Keras 1.0.1
  • Chạy Theano v0.8.2 backend
  • Sử dụng CUDA và CuDNN
  • THEANO_FLAGS = "device = gpu, floatX = float32, lib.cnmem = 1"

Mọi thứ hoạt động tốt, nhưng tôi hết bộ nhớ video trên các mô hình lớn khi tôi tăng kích thước lô để tăng tốc độ đào tạo. Tôi hình chuyển sang một hệ thống 4 GPU sẽ về mặt lý thuyết, hoặc cải thiện tổng bộ nhớ còn trống hoặc cho phép các lô nhỏ hơn để xây dựng nhanh hơn, nhưng quan sát các số liệu thống kê nvidia, tôi có thể thấy chỉ có một GPU được sử dụng bởi mặc định:

+------------------------------------------------------+ 
| NVIDIA-SMI 361.42  Driver Version: 361.42   |   
|-------------------------------+----------------------+----------------------+ 
| GPU Name  Persistence-M| Bus-Id  Disp.A | Volatile Uncorr. ECC | 
| Fan Temp Perf Pwr:Usage/Cap|   Memory-Usage | GPU-Util Compute M. |  
|===============================+======================+======================| 
| 0 GRID K520   Off | 0000:00:03.0  Off |     N/A | 
| N/A 44C P0 45W/125W | 3954MiB/4095MiB |  94% Default  | 
+-------------------------------+----------------------+----------------------+ 
| 1 GRID K520   Off | 0000:00:04.0  Off |    N/A | 
| N/A 28C P8 17W/125W |  11MiB/4095MiB |  0% Default | 
+-------------------------------+----------------------+----------------------+ 
| 2 GRID K520   Off | 0000:00:05.0  Off |    N/A | 
| N/A 32C P8 17W/125W |  11MiB/4095MiB |   0% Default | 
+-------------------------------+----------------------+----------------------+ 
| 3 GRID K520   Off | 0000:00:06.0  Off |    N/A |  
| N/A 29C P8 17W/125W |  11MiB/4095MiB |   0% Default | 
+-------------------------------+----------------------+----------------------+ 

+-----------------------------------------------------------------------------+ 
| Processes:              GPU Memory | 
| GPU  PID Type Process name        Usage  | 
|=============================================================================| 
| 0  9862 C python34          3941MiB | 

tôi biết với Theano thô bạn có thể sử dụng nhiều GPU một cách thủ công một cách rõ ràng. Keras có hỗ trợ sử dụng nhiều GPU không? Nếu vậy, nó có trừu tượng hóa nó hay bạn cần ánh xạ GPU tới các thiết bị như trong Theano và tính toán marshall rõ ràng cho các GPU cụ thể?

Trả lời

4

Đào tạo nhiều GPU là experimental ("Mã khá mới và vẫn được coi là thử nghiệm tại thời điểm này. Nó đã được kiểm tra và dường như hoạt động chính xác trong mọi trường hợp được quan sát, nhưng hãy đảm bảo kiểm tra kỹ kết quả của bạn trước xuất bản một bài báo hay bất kỳ thứ gì sắp xếp. ") và chưa được tích hợp vào Keras. Tuy nhiên, bạn có thể sử dụng nhiều GPU với Keras với phần phụ trợ Tensorflow: https://blog.keras.io/keras-as-a-simplified-interface-to-tensorflow-tutorial.html#multi-gpu-and-distributed-training.

+0

Bạn có nghe thấy bất kỳ tiến triển nào trong vòng một năm qua không? Tôi biết Tensorflow như mong đợi là ăn vào cơ sở của Theano, vì vậy tôi linh hoạt với một trong hai phụ trợ. – Ray

+0

@Ray: Tôi không chắc chắn về kết thúc Theano, nhưng tôi chắc chắn khuyên bạn nên chuyển sang Tensorflow cho điều này nếu bạn có tùy chọn. –

Các vấn đề liên quan