日々精進

新しく学んだことを書き留めていきます

TensorFlow, TensorFlow MKLが使うコア数を指定する

推論時のCPU使用率を下げたい、というモチベーションでTensorFlowが使うコア数を減らしてみた。(CPUで推論させてます)

デフォルトでは推論時に論理コア数と同じだけスレッドが作られ、並列処理される。そうすると推論にかかる時間は短くなるが並列処理のオーバーヘッドがあるのでCPU使用率は上がる。

実際、TensorFlowのスレッド数を1にするとCPU使用率は10%~15%程度下がった。

TensorFlowが使うコア数は tf.ConfigProtoの引数のintra_op_parallelism_threadsとinter_op_parallelism_threadsで指定する。

intra_op_parallelism_threadsは一つのOperatorの計算(積和の計算とか)を何スレッドでやるか。 inter_op_parallelism_threadsは独立したOperatorの計算を最大いくつのスレッドでやるか。

参考: qiita.com

stackoverflow.com