Attualmente è possibile specificare quale CPU o GPU utilizzare con la funzione tf.device (...) per operazioni specifiche, ma è comunque possibile specificare a core di una CPU?Tensorflow: esecuzione di un'operazione con un core specifico di una CPU
7
A
risposta
13
Al momento non ci sono API per bloccare le operazioni su un particolare core, sebbene ciò renderebbe un buon feature request. Si potrebbe approssimare questa funzionalità creando più dispositivi CPU, ciascuno con un singolo thread ThreadPool, ma questo non è garantito per mantenere la posizione di una soluzione core-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)
Wow, con un semplice test il guadagno di velocità era di 3 volte. Grazie mille! MODIFICA: dopo l'analisi, il guadagno di 3 volte in velocità è causato solo dall'impostazione della configurazione come descritto nella risposta. Fa sentire che sto usando RNN. Lo esaminerò! – PhABC
BTW, penso che sia necessario impostare inter_op_parallelism_threads in numeri superiori nell'esempio sopra, altrimenti eseguirà tutto in modo sequenziale, ecco un test https://gist.github.com/yaroslavvb/b73ff35424dd7ab762234620cf583aac –