2016-06-16 9 views

答えて

13

opsを特定のコアに固定するためのAPIは現在ありませんが、これは良いことになりますfeature request。あなたは、複数のCPUのデバイスを作成することによって、シングルスレッドのスレッドプールでそれぞれを、この機能を概算できますが、これは、コア・ピンニングソリューションの局所性を維持することは保証されません。

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

うわー、ちょうど簡単なテストで速度ゲインは3倍になりました。どうもありがとうございます! 編集:調査の後、スピードの3倍の増加は、あなたの答えに記述されているように設定を行うことによってのみ引き起こされます。それは私がRNNを使用している感覚を与える。私はこれを調べます! – PhABC

+0

ところで、上記の例では、inter_op_parallelism_threadsをより高い数値に設定する必要があると思います。そうでなければ、すべてを順番に実行します。https://gist.github.com/yaroslavvb/b73ff35424dd7ab762234620cf583aac –

関連する問題