推論時の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