使用Docker搭建Linux开发环境

使用Docker搭建Linux开发环境 Keith_Cheung 2024-03-19 11:42:03 224

推荐使用64位Linux服务器,本开发包在32位Linux服务器、较老版本的Linux服务器、偏冷门的Linux服务器上可能存在未知的兼容性问题。
推荐的硬件配置如下:

● CPU Intel(R) Xeon(R) CPU E5-2450 0 @ 2.10GHz 或更好CPU
● DDR: >= 16GB
● Hard disk >= 600GB
● Gigabit Ethernet
● OS: Ubuntu 18.04.2 64bit

以下是已验证过安装环境的系统,其它系统请参考官网指南:https://docs.docker.com/engine/install/

● Ubuntu18.04
● Ubuntu 22.04
● WSL2.0 Ubuntu20.04

Docker开发环境如图所示:

Docker 开发环境各部分描述:

1.宿主机环境搭建

1.1 网络环境搭建

请自行配置网络、账户、权限等,并安装curl、netstat等网络组件。

1.2 安装 docker

使用如下命令(root账户下操作)一键式安装docker:

curl -fsSL https://get.docker.com | bash -s docker

1.3 配置权限

用 sudo 方式配置权限:

  • 将用户加入docker组

    sudo gpasswd -a $USER docker
    
  • 重新启动 docker

    sudo service docker restart
    
  • 修改docker.sock权限

    sudo chmod a+rw /var/run/docker.sock
    

    配置权限示例

2.获取镜像

使用如下命令获取Docker镜像:

docker pull hispark/qiankunbp:x.x.x

获取镜像示例

3.部署 Docker 容器环境

3.1 创建容器环境

根据需要部署GPU或CPU容器,如果宿主机硬件环境没有GPU,则只能以CPU模式部署容器。

  • CPU容器部署命令:
    docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix --name ${container_name} hispark/qiankunbp:x.x.x
    
  • GPU容器部署命令:
    docker run -it --gpus all -v /tmp/.X11-unix:/tmp/.X11-unix --name ${container_name} hispark/qiankunbp:x.x.x
    
    执行容器部署命令,进入容器
    容器启动成功示例

运行容器命令参数说明

3.2 安装交叉编译工具

上传工具链软件包到容器中,或者将工具链软件包放置在挂载目录下。进入容器,在容器中执行命令,安装步骤如下:

步骤1 解压工具链。
执行如下命令进行解压:

tar xf gcc-xxxx-aarch64-v01c01-linux-musl.tgz

步骤2 安装工具链。
运行如下命令,即可完成此工具链的安装。

cd gcc-xxxx-aarch64-v01c01-linux-musl 
sudo ./install_gcc_toolchain.sh 
source /etc/profile

其它工具链安装方法与上述描述类似。

3.3 安装 SVP_NNN_PC 工具

容器部署完成后,请根据需要参考 SVP_NNN_PC工具安装命令在容器中安装SVP_NNN_PC软件包中的工具。
上传SVP_NNN_PC软件包到容器中,或者将SVP_NNN_PC软件包放置在挂载目录下。

SVP_NNN_PC 工具安装参考命令

  • 以下命令以Hi3516DV500/Hi3519DV500对应的SVP_NNN_PC工具包为例,Hi3516CV610请以对应的软件包名称进行替换。
  • 进入容器,在容器中执行如下命令,Docker容器内仅配置了root单个用户,命令中${SVP_NNN_PC_PATH}表示SVP_NNN_PC软件包所在目录。
tar -vxzf SVP_NNN_PC_*.tgz 
# 安装CANN 
cd ${SVP_NNN_PC_PATH}/SVP_NNN_PC_*/MindStudio 
chmod 755 Ascend-cann-toolkit_*.run 
./Ascend-cann-toolkit_*.run --install 
echo "export DDK_PATH=/usr/local/Ascend/ascend-toolkit/svp_latest" >> /root/.bashrc 
echo "export NPU_HOST_LIB=/usr/local/Ascend/ascend-toolkit/svp_latest/acllib/lib64/stub" >> /
root/.bashrc 
echo "export PATH=/usr/local/Ascend/ascend-toolkit/svp_latest/toolkit/bin:/usr/local/Ascend/ascend-toolkit/
svp_latest/atc/bin:$PATH" >> /root/.bashrc 
echo "export LD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/svp_latest/toolkit/tools/sim/lib:/usr/local/
Ascend/ascend-toolkit/svp_latest/atc/lib64:/usr/local/Ascend/ascend-toolkit/svp_latest/atc/
third_party_lib:$LD_LIBRARY_PATH" >> /root/.bashrc 
source /root/.bashrc 
# 安装AMCT_Caffe
cd ${SVP_NNN_PC_PATH}/SVP_NNN_PC_*/amct/amct_caffe
pip install hotwheels_amct_caffe-*+cu102-py3-none-linux_x86_64.whl
# 安装AMCT_Pytorch 
cd ${SVP_NNN_PC_PATH}/SVP_NNN_PC_*/amct/amct_pytorch 
pip install hotwheels_amct_pytorch-*+cu102-py3-none-linux_x86_64.tar.gz 
# 安装Mindcmd 
cd ${SVP_NNN_PC_PATH}/SVP_NNN_PC_*/MindCmd 
pip install mindcmd-*-linux_x86_64.* 
# 安装SVP_NNN_PC软件包的Caffe patch 
cd ${SVP_NNN_PC_PATH}/SVP_NNN_PC_*/amct/amct_caffe
tar -zxvf caffe_patch.tar.gz
cd caffe_patch/merge_proto
cp /usr/local/caffe/caffe-1.0/src/caffe/proto/caffe.proto ./ 
patch caffe.proto caffe_proto_for_svp.patch
cd ../ 
python install.py --caffe_dir /usr/local/caffe/caffe-1.0
# 重新编译Caffe
# CPU模式部署容器需要先替换Makefile.config,详见说明
cd /usr/local/caffe/caffe-1.0
mkdir -p include/caffe/proto
protoc ./src/caffe/proto/caffe.proto --cpp_out=.
mv ./src/caffe/proto/caffe.pb.h ./include/caffe/proto/
make clean 
make all -j8 
make pycaffe -j8
  • 请根据需要选择要安装的工具,工具安装前无需再考虑工具的环境依赖。
  • Hi3516DV500/Hi3519DV500 Docker中的CUDA版本为10.2,如需在Docker中使用AMCT工具,请安装对应cu102版本的whl包。
  • Hi3516CV610 Docker中的Python版本为3.10.2,如需在Docker中使用AMCT工具,请安装对应python3.10版本的whl包
  • 容器内仅包含原始Caffe环境,如果在容器内进行Caffe网络调试,请参数上述示例安装SVP_NNN_PC软件包的Caffe patch。
  • 容器默认Caffe使用GPU模式编译,如果启动的是CPU容器,请使用交付包中的SVPNNN_PC{version}/Docker/docker/cpu/Makefile.config替换/usr/local/caffe/caffe-1.0/Makefile.config,再重新编译Caffe。
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
Keith_Cheung
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区