7
現在、特定のオペレーションに対してtf.device(...)関数で使用するCPUまたはGPUを指定することはできますが、指定できるのはそこにありますCPUのコア?Tensorflow:特定のCPUコアでopsを実行する
現在、特定のオペレーションに対してtf.device(...)関数で使用するCPUまたはGPUを指定することはできますが、指定できるのはそこにありますCPUのコア?Tensorflow:特定のCPUコアでopsを実行する
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)
うわー、ちょうど簡単なテストで速度ゲインは3倍になりました。どうもありがとうございます! 編集:調査の後、スピードの3倍の増加は、あなたの答えに記述されているように設定を行うことによってのみ引き起こされます。それは私がRNNを使用している感覚を与える。私はこれを調べます! – PhABC
ところで、上記の例では、inter_op_parallelism_threadsをより高い数値に設定する必要があると思います。そうでなければ、すべてを順番に実行します。https://gist.github.com/yaroslavvb/b73ff35424dd7ab762234620cf583aac –