Làm thế nào tôi có thể sử dụng đầy đủ mỗi lõi EC2 của tôi?Làm thế nào để làm cho TensorFlow sử dụng nhiều CPU có sẵn
Tôi đang sử dụng phiên bản AW4 của Ubuntu EC2 c4.4xlớn và TensorFlow để tạo mạng lưới thần kinh phức tạp lớn. nproc nói rằng cá thể EC2 của tôi có 16 lõi. Khi tôi chạy mã đào tạo convnet, tiện ích hàng đầu nói rằng tôi chỉ sử dụng CPU 400%. Tôi đã mong đợi nó để sử dụng CPU 1600% vì 16 lõi. Tab giám sát AWS EC2 xác nhận rằng tôi chỉ sử dụng 25% dung lượng CPU của mình. Đây là một mạng lưới khổng lồ, và trên Mac Pro mới của tôi, nó tiêu tốn khoảng 600% CPU và mất vài giờ để xây dựng, vì vậy tôi không nghĩ lý do là vì mạng của tôi quá nhỏ.
tôi tin rằng các dòng dưới đây cuối cùng quyết định sử dụng CPU:
sess = tf.InteractiveSession(config=tf.ConfigProto())
Tôi thừa nhận tôi không hiểu đầy đủ về mối quan hệ giữa các chủ đề và lõi, nhưng tôi đã cố gắng tăng số lượng lõi. Nó có hiệu ứng tương tự như dòng trên: vẫn còn CPU 400%.
NUM_THREADS = 16
sess = tf.InteractiveSession(config=tf.ConfigProto(intra_op_parallelism_threads=NUM_THREADS))
EDIT:
- htop cho thấy cho thấy rằng tôi thực sự sử dụng tất cả 16 lõi EC2 của tôi, nhưng mỗi lõi duy nhất là vào khoảng 25%
- đầu cho thấy tổng số CPU của tôi% là khoảng 400%, nhưng đôi khi nó sẽ bắn lên đến 1300% và sau đó gần như ngay lập tức quay trở lại xuống ~ 400%. Điều này làm cho tôi nghĩ rằng có thể là một vấn đề bế tắc
bao nhiêu lõi được MAC của bạn? – error2007s
@ error2007s Tôi có 4 CPU vật lý và 8 logic trên máy Mac của mình – user554481