Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

多线程下预测结果不一致 #23422

Closed
wjymath opened this issue Apr 2, 2020 · 2 comments
Closed

多线程下预测结果不一致 #23422

wjymath opened this issue Apr 2, 2020 · 2 comments
Assignees

Comments

@wjymath
Copy link

wjymath commented Apr 2, 2020

为使您的问题得到快速解决,在建立Issue前,请您先通过如下方式搜索是否有相似问题:【搜索issue关键字】【使用labels筛选】【官方文档】

如果您没有查询到相似问题,为快速解决您的提问,建立issue时请提供如下细节信息:

  • 标题:简洁、精准描述您的问题,例如“最新预测库的API文档在哪儿 ”
  • 版本、环境信息:
       1)PaddlePaddle版本:请提供您的PaddlePaddle版本号(如1.1)或CommitID
       2)CPU:预测若用CPU,请提供CPU型号,MKL/OpenBlas/MKLDNN/等数学库使用情况
       3)GPU:预测若用GPU,请提供GPU型号、CUDA和CUDNN版本号
       4)系统环境:请您描述系统类型、版本(如Mac OS 10.14),Python版本
    -预测信息
       1)C++预测:请您提供预测库安装包的版本信息,及其中的version.txt文件
       2)CMake包含路径的完整命令
       3)API信息(如调用请提供)
       4)预测库来源:官网下载/特殊环境(如BCLOUD编译)
  • 复现信息:如为报错,请给出复现环境、复现步骤
  • 问题描述:请详细描述您的问题,同步贴出报错信息、日志/代码关键片段

Thank you for contributing to PaddlePaddle.
Before submitting the issue, you could search issue in the github in case that th
If there is no solution,please make sure that this is an inference issue including the following details :
System information
-PaddlePaddle version (eg.1.1)or CommitID
-CPU: including CPUMKL/OpenBlas/MKLDNN version
-GPU: including CUDA/CUDNN version
-OS Platform (eg.Mac OS 10.14)
-Python version
-Cmake orders
-C++version.txt
-API information
To Reproduce
Steps to reproduce the behavior
Describe your current behavior
Code to reproduce the issue
Other info / logs
-预测信息
1)C++预测:请您提供预测库安装包的版本信息,及其中的version.txt文件
WITH_MKL: ON
WITH_MKLDNN: ON
WITH_GPU: OFF
2)CMake包含路径的完整命令
3)API信息(如调用请提供)
brpc+paddle的使用场景下,在server启动时加载模型,在每个bthread线程中进行Clone,采用ZeroCopyRun进行预测,在多线程模式下,结果不一致,而paddle_api.h中声明Clone方法是线程安全的,这个现象是否符合预期呢?
image

而且基于paddle官网https://www.paddlepaddle.org.cn/documentation/docs/zh/1.6/advanced_usage/deploy/inference/native_infer.html提供的demo中的thread_mobilenet_test.cc,采用ZeroCopyRun进行预测
image
image
存在同样的问题。
是否必须按照#18337中提供的解决方案,在每个bthread中缓存一个单独的predictor?且该predictor是通过CreatePaddlePredictor(config)得到的

4)预测库来源:官网下载/特殊环境(如BCLOUD编译)
BCLOUD编译

复现信息:如为报错,请给出复现环境、复现步骤
单线程结果一致,多线程结果不一致,必现
问题描述:请详细描述您的问题,同步贴出报错信息、日志/代码关键片段

@NHZlX
Copy link
Contributor

NHZlX commented Apr 3, 2020

提供下复现单测以及模型吧

可以同步做以下测试:

1) 关闭mkldnn 看下结果是否一致。
2) 关闭iroptim 看下结果是否一致。

@wjymath
Copy link
Author

wjymath commented Apr 7, 2020

关闭iroptim 看下结果是否一致

关闭以上两个配置项后结果正确,感谢~多线程下可能需要关闭优化方法,建议更新在官网

@wjymath wjymath closed this as completed Apr 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants