Obecnie jest możliwe określenie, który procesor lub GPU będzie używany z funkcją tf.device (...) dla określonych operacji, ale czy jest tam gdzie można określić a rdzeń procesora?Tensorflow: wykonywanie ops z określonym rdzeniem procesora
7
A
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)
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
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 –