Paddle部署
1. 拉取paddle文件
git clone https://github.com/zty-king/Paddle
2. 进入 Paddle 目录下:
cd Paddle
3. 拉取Gpu版本的paddle镜像,百度镜像源
docker pull registry.baidubce.com/paddlepaddle/paddle:latest-dev-cuda12.0-cudnn8.9-trt8.6-gcc12.2
4. 启动docker镜像:
sudo docker run -d -p 8888:22 --ipc=host --gpus all --name pd -v /data/zheng/Paddle:/home/paddle -v /data/zheng/PaddleNLP:/home/paddlenlp -v/data/zheng/clash:/home/clash -it e95e59f25afc /bin/bash
其中参数解释如下:
--gpus all:启用所有的gpu
--ipc=host:让容器使用主机网络以实现跨机建立连接,进程共享,共享内存跑分布式代码必加的东西,不然会出大问题!!!
--name pd:指定容器名称为pd
**-v PWD`为当前主机所在的路径(启动容器时的路径),/paddle为容器中的paddle文件夹,该命令是让主机对应文件夹和容器的paddle文件夹组成共享文件夹,可以统一对文件夹中的文件做增删改查。
--net=host: 指定容器和宿主主机共享 Network namespace
-it e95e59f25afc:指定运行哪个容器,e95e59f25afc为容器的ID
5. 在docker镜像中进入paddle安装梯子
5.1 将服务器上的clash文件夹复制过来,删除web文件夹(用不上)
5.2 删除external-controller;将mixed-port:7091改成mixed-port:7090;将dns中的 listen: '127.0.0.1:1054'改成 listen: '127.0.0.1:1053
5.3 vim ~/.bashrc 进入bashrc,添加以下两行:
alias clash="export http_proxy=http://127.0.0.1:7892;export https_proxy=http://127.0.0.1:7892"
alias unclash="unset http_proxy;unset https_proxy"
'先按esc,再输入:wq,回车保存退出
刷新bashrc:
source ~/.bashrc
5.4 进入clash文件夹,输入以下命令启动vpn服务
./clash -f yaml/mojie.yaml
5.5另外打开一个命令行,输入 clash启动端口代理,正式启用梯子
6. 更新所有文件夹的安全性
在根目录,最底层目录 执行 将所有文件设置成安全文件夹(新版git会控制所有文件夹为非安全,得手动添加安全性):
git config --global --add safe.directory "*"
根目录:
7. 下载network包
从home 进入./paddle/python下载txt文件(主要是networkx)
cd ./paddle/python
pip3.9 install -r requirements.txt
8. 返回paddle根目录,更换batch
cd ..
git checkout develop
9. paddle根目录创建build文件夹:
mkdir -p /home/paddle/build && cd /home/paddle/build
10. 安装相关依赖:
ninja-build用于编译,比cmake快
pip3.9 install protobuf
apt install patchelf
apt install ninja-build
11. 用ninja编译:
cmake(可以提前写好编译的.sh文件,用bash启动文件)
bash build.sh
也可以直接终端启动
cmake .. -GNinja -DPY_VERSION=3.9 -DWITH_GPU=ON -DWITH_TESTING=ON -DCMAKE_BUILD_TYPE=Release -DWITH_DISTRIBUTE=ON -DWITH_PSCORE=OFF -DWITH_MKL=OFF -DCUDA_ARCH_NAME=Auto -DON_INFER=OFF
编译
ninja
12. 进入dist文件夹,下载编译好的paddle包:
cd /paddle/build/python/dist
ls
pip3.9 install -U paddlepaddle_gpu-0.0.0-cp39-cp39-linux_x86_64.whl(ls出来的文件名)
13. 测试分布式的代码
python -c "import paddle; paddle.utils.run_check()"

完美收官!!!!!!!
14.补充 授予文件权限
chmod 777 文件路径
15.提交前格式规范文档
pre-commit run --files python/paddle/hapi/hub.py test/legacy_test/test_load_state_dict_from_url.py /data/zheng/Paddle/test/legacy_test/CMakeLists.txt
16. 进入正在运行的docker镜像
sudo docker exec -it pd /bin/bash
17.测试单测
ctest -V -R test_load_state_dict_from_url
18.配置docker,使得可以本地远程ssh连接
-
用第四步启动docker镜像
-
启动容器后,更新源
apt-get update -
在容器上安装并配置ssh 服务
安装 ssh server :
apt-get install openssh-server
启动sshd:
/usr/sbin/sshd -D &
更改密码:
passwd
4.修改配置,允许远程使用root账号ssh连接本机
修改/etc/ssh/sshd_config文件:
vim /etc/ssh/sshd_config
修改如下:允许root账户登录
PermitRootLogin yes
需要重启系统或者sshd服务
/etc/init.d/ssh stop
/etc/init.d/ssh start
service ssh restart
安装ssh服务后,系统默认开启系统sshd,查看sshd状态如果不是默认启动,修改服务为enable
systemctl enable ssh
启动sshd
/usr/sbin/sshd -D &
最后远程登录:
ssh -p 8888 root@121.48.164.41
19.同一个端口和IP的服务器如果重置了,当前本地得删除对应密钥,再连接生成新密钥
ssh-keygen -f "C:\Users\zzty\.ssh\known_hosts" -R "[121.48.164.41]:8888"