2016-06-16 38 views

Trả lời

13

Hiện không có API để ghim các op vào một lõi cụ thể, mặc dù điều này sẽ tạo ra một số feature request tốt. Bạn có thể ước tính chức năng này bằng cách tạo nhiều thiết bị CPU, mỗi thiết bị có một luồng chỉ một luồng, nhưng điều này không đảm bảo duy trì địa phương của giải pháp lõi-pinning:

with tf.device("/cpu:4"): 
    # ... 

with tf.device("/cpu:7"): 
    # ... 

with tf.device("/cpu:0"): 
    # ... 

config = tf.ConfigProto(device_count={"CPU": 8}, 
         inter_op_parallelism_threads=1, 
         intra_op_parallelism_threads=1) 
sess = tf.Session(config=config) 
+0

Wow, chỉ với một thử nghiệm đơn giản tăng tốc là 3 lần. Cảm ơn bạn rất nhiều! EDIT: Sau khi điều tra, tốc độ tăng gấp 3 lần về tốc độ chỉ gây ra bởi việc đặt cấu hình như được mô tả trong câu trả lời của bạn. Nó làm cho cảm giác cho rằng tôi đang sử dụng RNN. Tôi sẽ xem xét này! – PhABC

+0

BTW, tôi nghĩ rằng bạn cần phải đặt inter_op_parallelism_threads thành số cao hơn trong ví dụ trên, nếu không nó sẽ chạy mọi thứ liên tục, đây là một bài kiểm tra https://gist.github.com/yaroslavvb/b73ff35424dd7ab762234620cf583aac –

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