Skip to content

第三方库离线编译 #54305

@risemeup1

Description

@risemeup1

问题描述

This project will be mentored by @risemeup1

大家好,现在Paddle编译第三方库通过 ExternalProject_Add 命令对第三方库下载,当编译到某个第三方库的时候才会下载第三方库,然后编译,这种方式会存在很多问题。

  • 一边编译一边下载,当编译到某个第三方库的时候开始下载,导致git clone的频率增加,如果网络不稳定,任何一次git clone 失败就会导致编译出问题,本地编译和CI均太过于依赖网络;
  • 研发RD 删除 build 目录后重新编译就需要重新下载这些第三方库,又要重新git clone第三方库,没有达到复用的效果,编译时间会增加很多,也会因为网络问题影响研发效率。

注意事项

  1. 学习任务开发步骤 任务开发详细说明 ‼️ 极其重要 ‼️
  2. 参考PR:Supports offline compilation of Paddle third-party libraries #53744
  3. 认领规则:直接回复下 issue 下方
  4. **PR 通过 CI 后,可以评论里或者 review request @risemeup1 ,研发会进行审核
  5. 这些任务都比较简单,在6月20日之前完成即可
  6. 欢迎联系花花加入社区,和我们一起快乐开源!

image

任务列表 (整体进度:17/17)

按 merge 的时间顺序,排名不分先后: @GreatV (2) @gouzil (2) @huangjiyi (2) @RedContritio (2) @mrcangye (1) @sanbuphy (2) @enkilee (1) @DrRyanHuang (1) @Liyulingyue (1) @ccsuzzh (2)

  1. 第三方库作为Paddle的子模块
任务序号 第三方库 认领人 相关PR
1.1 crypotopp, pybind11, pocketfft, xbyak✅(2023/6/7) @RedContritio #54344 #54322
1.2 snappy, cub, cutlass✅(2023/6/6) @huangjiyi #54335
1.3 flashattn, mkldnn, gtest✅(2023/6/5) @GreatV #54319
  1. 根据编译选项,在cmake阶段将第三方库clone到根目录third_party/下,在make阶段不再需要下载
任务序号 第三方库 认领人 相关PR
2.1 cinn,cudnn-frontend,dirent✅(2023/6/19) @mrcangye #54461
2.2 libxsmm, lite, openblas, rocksdb✅(2023/7/18) @enkilee #54380#54480#54495#54646
2.3 arm_brpc, box_ps, concurrentqueue✅(2023/6/28) @ccsuzzh #54400#54438
2.4 cusparselt, dgc, jemalloc✅(2023/6/26) @sanbuphy #54392 #54388
2.5 lapack,libmct,mklml✅(2023/6/6) @gouzil #54326 #54764
2.6 onnxruntime, pslib_brpc, pslib✅(2023/6/6) @RedContritio #54370 #54346 #54466
2.7 xpu, paddle2onnx✅(2023/8/8) @DrRyanHuang #54451
2.8 leveldb(之前被误作为submodule了,解除submodule)✅(2023/6/15) @gouzil #54436
2.9 brpc✅(2023/6/19) @huangjiyi #54522
2.10 jitify✅(2023/7/20) @GreatV #55501
2.11 isl✅(2023/8/10) @ccsuzzh #55631
2.12 ginac✅(2023/8/11) @Liyulingyue #56165
2.13 boost✅(2023/8/11) @sanbuphy #56168
2.14 absl✅(2023/8/10) @gouzil #55549

其他成果总结

子任务 作者 相关PR
C++17的GPU编译会出现undefined reference to 的bug,需要解循环依赖✅(2023/6/11) @huangjiyi #54411
在pip install -U 前检查是否安装模块,避免重复安装但网络不好的情况✅(2023/6/7) @gouzil #54330
改动第三方库的tag,将不会自动重新触发编译的不过✅(2023/6/17) @gouzil #54614

后续关于第三方库治理的任务会陆续往上加

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions