-
Notifications
You must be signed in to change notification settings - Fork 5.8k
Description
各位参加飞桨开发者,大家好,欢迎大家参加飞桨社区贡献!有一些小伙伴有意愿参与,但不知道如何开始,飞桨团队特地推出了本次热身打卡活动,从编译开始,熟悉飞桨框架开发~
参与热身打卡活动并按照邮件模板格式将截图发送至 ext_paddle_oss@baidu.com 。
热身打卡活动简介
在飞桨框架二次开发中,编译 paddle 是一个重要环节,也是很多任务(如API开发、算子性能优化、数据类型扩展等)的前置条件。本次热身打卡活动,要求参与者通过 github 拉取 PaddlePaddle/Paddle 仓库代码,并参考 源码编译教程 完成 paddle 编译,截图编译成功的界面后,参考如下格式向 ext_paddle_oss@baidu.com 发送邮件。
注:本次热身打卡活动对硬件没有要求!CPU/GPU 均可,赶快行动起来吧~也可 申请AI Studio开发资源~
编译流程
1. 增加时间戳
即在命令最开始加上time,以【Linux下从源码编译】文档的【使用Docker编译】为例,
【9.执行cmake】和【10.执行编译】增加时间戳的命令为:
- CPU版本的cmake:
time cmake .. -DPY_VERSION=3.8 -DWITH_GPU=OFF
- GPU版本的cmake:
time cmake .. -DPY_VERSION=3.8 -DWITH_GPU=ON
- 执行编译:
time make -j$(nproc)
,举例有4核,即time make -j4
2. 初次编译/二次编译
初次编译时间较长,二次编译因为有编译缓存的存在,时间会缩短,对日常开发来说,二次编译时间才是影响开发效率的。让我们来感受下修改不同文件的二次编译时间。
- 修改底层的头文件:paddle/fluid/platform/enforce.h
- 修改Op的cc文件:paddle/fluid/operators/rank_loss_op.cc
- 修改python文件:python/paddle/tensor/math.py
二次编译方式:对应文件加一个空行/空格保存退出后,然后执行编译命令time make -j$(nproc)
,二次编译不再需要执行cmake。
3. 安装whl包
参考【Linux下从源码编译】文档的【使用Docker编译】中【11. 寻找whl包】和【12. 安装whl包】。
4. 运行单元测试
不同的编译选项,能编译出不同的功能,对应的编译时间也各不相同。可以参考编译选项表,尝试打开WITH_TESTING=ON
编译出单元测试,并正确运行一个单测。
- 重新运行cmake命令:
cmake .. -DPY_VERSION=3.8 -DWITH_GPU=OFF -DWITH_TESTING=ON
(在原来的cmake命令后加入-DWITH_TESTING=ON
) - 执行编译命令
make -j$(nproc)
- 安装第三方依赖
pip3.8 install -r ../python/requirements.txt
- 进入build目录,运行单元测试:参考【飞桨API python端开发指南】之【运行单元测试】,执行
ctest -R test_logsumexp
运行logsumexp的单测。
邮件格式
标题: [Hackathon 热身打卡]
内容:
飞桨团队你好,
【GitHub ID】:XXX
【打卡内容】:初次编译/二次编译/安装whl包/运行单元测试
【打卡截图】:
如:
标题: [Hackathon 热身打卡]
内容:
飞桨团队你好,
【GitHub ID】:paddle-hack
【打卡内容】:初次编译&二次编译&安装whl包&运行单元测试
【打卡截图】:
硬件 | |
---|---|
编译方式 | 参考【Linux下从源码编译】文档的【使用Docker编译】(源码编译文档 有多种编译方式,请大家填写本次编译参考的文档) |
cmake命令和时间 | 命令:time cmake .. -DPY_VERSION=3.8 -DWITH_GPU=OFF 时间:注意要将commit号截图进来哦 |
初次编译命令和时间 | 命令:time make -j20 (写一下大家用几核哦)时间:以下时间仅作为示例,不代表真实的初次编译时间 |
二次编译时间 | 时间:以下时间仅作为示例,不代表真实的二次编译时间 paddle/fluid/platform/enforce.h paddle/fluid/operators/rank_loss_op.cc python/paddle/tensor/math.py |
安装whl包 | |
运行单元测试 |
优秀作品
- 如何在VSCode中“优雅”地配置CMake —— 以PaddlePaddle为例 @LittleHeroZZZX
- 使用 Docker 从源码编译 PaddlePaddle with NVIDIA GPU @Albresky
- 【利用 AI Studio 完成 PaddlePaddle 编译】2024 版 @Marcusryz
- 常见IDE利用Docker完美查看Paddle源码跳转 @sanbuphy
参与飞桨框架贡献
如果你已经顺利完成了打卡,具备了基础的框架开发知识,你就可以参与飞桨社区丰富的开发任务,为一个大型开源项目做贡献,同时收获飞桨社区开发者的认可与各种福利。传送门:
Metadata
Metadata
Assignees
Labels
Type
Projects
Status