【利用 AI Studio 完成 Paddle 编译】
使用 AI Studio 提供的新项目:【框架开发任务】完成Paddle 编译!,并提供了完成 Paddle 热身活动的详细步骤!
利用 AI Studio 完成 Paddle 编译
为什么要对 Paddle 进行编译?
众所周知,PaddlePaddle 的底层代码是利用 C++ 进行开发的,对于 Python 端的日常使用者,我们仅需要依据 Paddle 官方提供的 pip 详情安装 Paddle 既可。
如果要从 Paddle 使用者升级为 Paddle 贡献者,一起为国产深度学习框架努力,那么【飞桨黑客马拉松】这个比赛就很适合大家入门!
注: 该比赛给大家提供了一个比赛的形式一起参与 Paddle 项目共建!(并不是想象中的黑客
hahahahah)
个人理解:Paddle 编译是深入参与 Paddle 开源项目共建的必经之路!
如何利用 AI Studio 完成 Paddle 编译?
- 首先我们需要申请 AI Studio 新项目:【框架开发任务】的使用权限,该项目是最近 AI Studio 刚上新的项目,配置了 Docker 镜像环境,可以无碍完成 Paddle 编译进行框架开发!
- 然后我们参考 Paddle 官方提供的源码编译教程完成 Paddle 编译了!
这里我总结了框架二次开发项目里完成 Paddle 编译所需的代码:
git clone https://github.com/PaddlePaddle/Paddle.git
pip3.7 install -r Paddle/python/requirements.txt
cd Paddle && mkdir build && cd build
cmake .. -DPY_VERSION=3.7 -DWITH_GPU=OFF -DWITH_TESTING=ON
make -j$(nproc)
#(约 2h)
仅需五行代码既可完成 Paddle 编译(上述代码是在终端中执行的)。
如果大家想对 Paddle 编译有更深入的理解,可以去了解一下 PaddlePaddle Hackathon 在 Github ISSUE 中开设的热身打卡活动,完成该活动还可以领取飞桨精美周边礼品!
下一部分提供了框架二次开发项目完成该活动的所需步骤!
注:框架二次开发项目的申请规则:发邮件给 ext_paddle_oss@baidu.com 管理员,附上 github username,aistudio uid,在邮件中说明用途(需与飞桨框架开发相关噢)!
利用框架二次开发项目完成热身打卡活动。
以下步骤均在 AI Studio 框架二次开发项目中完成!
热身打卡活动的具体任务需求可以详见活动页面,这里就不多赘述了。
一、完成前期准备工作。
拉取 PaddlePaddle/Paddle 仓库代码,并安装相关依赖。
- 1.
git clone https://github.com/PaddlePaddle/Paddle.git
- 2.
cd Paddle
- 3.
pip3.7 install -r python/requirements.txt
注:当前工作目录为 Paddle 目录(可以用 pwd
检查)。
二、 完成初次编译。
- 4.
mkdir build
- 5.
cd build
- 6.
time cmake .. -DPY_VERSION=3.7 -DWITH_GPU=OFF -DWITH_TESTING=ON
执行完成后截图 cmake 结果,注意需要包含时间和 commit 号(时间大概需要2h)。
- 7.
time make -j$(nproc)
执行完成后截图 make 结果。
注: 在初次编译的时候,我们就加上了-DWITH_TESTING=ON
,所以在运行单元测试的时候就可以不用再 cmake 和 make了。
三、 完成二次编译。
再修改文件的时候,再有注释的地方添加空格,然后保存即可。
修改底层的头文件:Paddle/paddle/fluid/platform/enforce.h
- 8.
time make -j$(nproc)
执行完成后截图 make 结果。
修改Op的cc文件:Paddle/paddle/fluid/operators/center_loss_op.cc
- 9.
time make -j$(nproc)
执行完成后截图 make 结果。
修改python文件:Paddle/python/paddle/tensor/math.py
- 10.
time make -j$(nproc)
执行完成后截图 make 结果。
四、安装whl包。
- 11.
pip install Paddle/python/dist/paddlepaddle-0.0.0-cp37-cp37m-linux_x86_64.whl
执行完成后截图。
注: 在pip install
前可以利用pwd
检查下当前目录是不是 Paddle/build/
。
五、 运行单元测试。
- 12.
/home/cmake-3.16.0-Linux-x86_64/bin/ctest -R test_logsumexp
执行完成后截图。
六、发邮件领礼品!!!
最后按照热身打卡活动的格式要求,将上述截图发送到 paddle-hack@baidu.com 邮箱既可!
注意事项
- 除了框架二次开发项目外,其余AI Studio项目目前不能够完成 Paddle 编译任务,主要原因是在 Paddle/CMakeLists.txt 里要求 cmake 的版本最低为3.15。而 AI Studio Notebook 项目里的 cmake 版本为3.12.2低于3.15(可以尝试一下改 CMakeLists.txt 的要求)。
- 在
git clone https://github.com/PaddlePaddle/Paddle.git
之后要记得pip3.X install -r Paddle/python/requirements.txt
,其中pip3.X
的版本号要和 cmake 时要求的 python version 一致。 - 运行单元测试时
ctest
要改为/home/cmake-3.16.0-Linux-x86_64/bin/ctest
,目前框架二次开发项目里直接ctest
会出现 command not found (在后续的更新中会修复这个问题)。
!cmake --version
cmake version 3.12.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
).
总结
该项目介绍了如何利用 AI Studio 的框架二次开发项目完成 Paddle 编译,如果想深入参与 Paddle 框架开发的话,Paddle 编译是必不可少的一步。在完成此次热身活动的期间也是遇到了一些问题,在 Luotao 大佬的帮助下也是成功解决了!但是目前也只是按照官方流程对 Paddle 进行编译,还需学习 cmake 的相关知识。
细心的小伙伴会发现在编译的时候会出现一些 Warning 信息,刚好现在飞桨推出了编译 Warning 消除项目,欢迎感兴趣的小伙伴一起来参与编译 Warning 消除任务,在项目中实践强化自己!
此文章为搬运
原项目链接
更多推荐
所有评论(0)