Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • PaddlePaddle
  • Paddle-Lite
  • 合并请求
  • !3311

P
Paddle-Lite
  • 项目概览

PaddlePaddle / Paddle-Lite

通知 338
Star 4
Fork 1
  • 代码
    • 文件
    • 提交
    • 分支
    • Tags
    • 贡献者
    • 分支图
    • Diff
  • Issue 271
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 78
  • Wiki 0
    • Wiki
  • 分析
    • 仓库
    • DevOps
  • 项目成员
  • Pages
P
Paddle-Lite
  • 项目概览
    • 项目概览
    • 详情
    • 发布
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • Issue 271
    • Issue 271
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 78
    • 合并请求 78
  • Pages
  • 分析
    • 分析
    • 仓库分析
    • DevOps
  • Wiki 0
    • Wiki
  • 成员
    • 成员
  • 收起侧边栏
  • 动态
  • 分支图
  • 创建新Issue
  • 提交
  • Issue看板
You need to sign in or sign up before continuing.

[parl summary] parl project code !3311

  • Report abuse
!3311 已关闭 4月 01, 2020 由 saxon_zh@saxon_zh 创建
#<User:0x00007f0e60462a60>
  • 概览 0
  • 提交 55
  • 变更 19

Created by: DannyIsFunny

(1)使cxx_predictor->clone()得到的Predictor共享权重参数 https://github.com/PaddlePaddle/Paddle-Lite/pull/3244 【问题描述】:使cxx_predictor->clone()得到的Predictor共享权重参数 【修改】: 1、Clone得到Predictor共享 ProgramDesc和部分block_desc(模型的权重参数) 2、cxx_api.h: 将Predictor->programdesc修改为share_ptr格式,需要共享,较多关联函数需要修改 3、lite/core/scope.cc中添加读取线程锁。(当前加入了写入线程锁)

(2) 添加接口GetMutableTensor(name) https://github.com/PaddlePaddle/Paddle-Lite/pull/3099 【问题描述】NLP业务需要在加载模型后修改模型终端权重参数,之后再运行。需要接口: GetMutableTensor(name)返回一个可修改的张量 【方案设计】在模型加载后修改权重在多线程下有风险,可能导致不确定输出;且当前只有x86 平台下提出该需求,不推荐一般用户使用 【本PR工作】设计一个内部develop接口,Cxx_predictor->GetMutableTensor(std::string “varname”)。该接口只有cxx_predictor可以调用,而且不对外开放使用文档。为内部调试接口。

(3) 添加接口 const std::vector<std::string> Predictor::GetParamNames() https://github.com/PaddlePaddle/Paddle-Lite/pull/3099 【方案设计】接口只输出模型的权重参数的名称,不输出输入变量、输出变量、中间变量和feed/fetch名称 【本PR工作】设计一个内部develop接口,const std::vector<std::string> Cxx_predictor->GetParamNames()。

该接口只有cxx_predictor可以调用,而且不对外开放使用文档。为内部调试接口。

(4)修复 infer_init 模型变化sequence_size 下出core错误问题 【问题定位】:gru算子中的batch_gate参数,在执行mutable_data参数后,如果dims->production 过大,op->run 后会提前释放内存。导致下次mutable_data 或程序析构时出现重复释放同一块内存问题。 【修复方法】:算子修复

注 : 为什么本PR当前不能通过一些单测? 响应开发需求将protobuf版本修改为v3.2.0,在x86环境编译正常没有问题,可以通过server端单测;Lite arm端不允许修改protobuf版本,本PR修改protobuf版本不能通过 arm端单测检查(还原third_party/protobuf版本后本PR可以正常通过单测)

(5)修复 运行infer_init 模型是CPU占用率过高问题 1、 infer_init 运行时CPU占用率,100% 。 定位问题 x86_fc_kernel实现问题,已修复 2、修复后CPU占用率50% ,优化sequence_reshape、compute 算子,降低到8% 3、 运行时线程不能控制

指派人
分配到
审核者
Request review from
无
里程碑
无
分配里程碑
工时统计
标识: paddlepaddle/Paddle-Lite!3311
Source branch: github/fork/DannyIsFunny/test_result
渝ICP备2023009037号

京公网安备11010502055752号

网络110报警服务 Powered by GitLab CE v13.7
开源知识
Git 入门 Pro Git 电子书 在线学 Git
Markdown 基础入门 IT 技术知识开源图谱
帮助
使用手册 反馈建议 博客
《GitCode 隐私声明》 《GitCode 服务条款》 关于GitCode
Powered by GitLab CE v13.7