2016-06-16 47 views

Odpowiedz

13

Obecnie nie ma interfejsu API do przypinania ops do określonego rdzenia, ale byłby to dobry feature request. można w przybliżeniu tę funkcjonalność poprzez stworzenie wielu urządzeń procesora, każdy z pojedynczym gwintem puli wątków, ale to nie jest gwarantowane, aby utrzymać lokalizację rdzenia-przypinanie rozwiązanie:

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, po prostu za pomocą prostego testu przyrost prędkości był 3-krotny. Dziękuję bardzo! EDYCJA: Po przeprowadzeniu badania, 3-krotny wzrost prędkości jest spowodowany tylko przez ustawienie konfiguracji zgodnie z opisem w odpowiedzi. To sprawia, że ​​czuję, że używam RNN. Zajrzę w to! – PhABC

+0

BTW, myślę, że musisz ustawić inter_op_parallelism_threads na wyższy numer w powyższym przykładzie, w przeciwnym razie uruchomi wszystko sekwencyjnie, oto test https://gist.github.com/yaroslavvb/b73ff35424dd7ab762234620cf583aac –