我使用Tensorflow模型服务器观察CPU的性能问题。与原始Tensorflow模型推断相比,它推断的时间加倍。两者都是用MKL构建的,仅用于CPU。
要重现的代码:https://github.com/BogdanRuzh/tf_model_service_benchmark
Tensorflow MKL版本:
bazel build --config=mkl -c opt --copt=-msse4.1 --copt=-msse4.2 --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-O3 //tensorflow/tools/pip_package:build_pip_package
Tensorflow服务器MKL版本:
bazel build --config=mkl --config=opt --copt=-msse4.1 --copt=-msse4.2 --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-O3 tensorflow_serving/model_servers:tensorflow_model_server
目标模型是用于分割的简单CNN。
Raw Tensorflow模型在0.17秒内处理图像。 Tensorflow模型服务器在0.32秒内处理相同的图像。
如何改善这种表现?这对我的申请非常重要。
答案 0 :(得分:-1)
我想开封将对您有帮助。有人说,在配置错误的情况下,使用英特尔优化的张量流可能会导致性能下降,然后清除构建https://github.com/tensorflow/serving/issues/1272#issuecomment-477878180
您可以尝试配置批处理参数(使用配置文件和--enable_batching参数)https://github.com/tensorflow/serving/tree/master/tensorflow_serving/batching
然后设置(内部/内部)_op_parallelism_threads。
此外,MKL拥有自己的标志来提高性能https://www.tensorflow.org/guide/performance/overview#tuning_mkl_for_the_best_performance