Ubuntu安装DGL
硬件/软件配置
- ubuntu 18.04
- nvidia-smi 440.100
使用docker进行安装
可根据需求以root用户权限或以非root用户权限安装Pytorch和DGL。
- 需且仅需安装合适版本的cuda
- 配置pip源
cd ~ mkdir .pip cd .pip touch pip.conf echo "[global]" >> ~/.pip/pip.conf echo "index-url = https://pypi.tuna.tsinghua.edu.cn/simple" >> ~/.pip/pip.conf echo "[install]" >> ~/.pip/pip.conf echo "trusted-host = https://pypi.tuna.tsinghua.edu.cn" >> ~/.pip/pip.conf cd /home/MyWorkspace - 安装与cuda版本对应的合适版本的pytorch
- Previous PyTorch Versions
- 使用pip安装pytorch
- 安装与cuda版本对应的合适版本的dgl
- Deep Graph Library
- 使用pip安装dgl
使用Docker进行部署DGL
- 打包镜像
sudo docker commit -m "pip install dgl with cuda:10.2 and pytorch:1.12.0" container_id dgl_dist_single:v1.0 - 编写docker-compose.yml以部署单个容器
version: '3' services: dgl_dist_single_0: container_name: dgl_dist_single_0 image: dgl_dist_single:v1.0 user: "dgl" working_dir: /home/MyWorkspace volumes: - ./dgl:/home/MyWorkspace deploy: resources: reservations: devices: - driver: nvidia count: "all" capabilities: [gpu] stdin_open: true tty: true command: /bin/bash -c "chown -R 1002:1002 . && /bin/bash" - 使用
docker-compose部署容器sudo docker-compose up -d
使用Docker部署DistDGL
-
安装
sshd并配置ssh(在安装DGL之前或之后均可)apt update apt install openssh-server mkdir /var/run/sshd ssh-keygen cd ~/.ssh cp id_rsa.pub authorized_keys- 安装openssh-server,并根据报错信息覆盖不兼容的相应软件。
- 若以非root用户权限启动容器,则需要先执行
su dgl进行用户转换,再生成密钥。 - 若以非root用户权限启动容器,则需要获取root权限启动
sshd,需要使用expect命令进行权限转换,需要为root设置登录密码。
-
打包镜像
sudo docker commit -m "pip install dgl with cuda:10.2 and pytorch:1.12.0 and sshd" container_id dgl_single:v1.0 -
部署单个容器
version: '3.5' services: dgl_cluster: image: dgl_single:v1.0 user: "dgl" working_dir: /home/dgl/MyWorkspace volumes: - ./dgl:/home/dgl/MyWorkspace shm_size: '32g' storage_opt: size: '256g' deploy: resources: limits: cpus: '8.0' memory: 16G reservations: devices: - driver: nvidia count: "all" capabilities: [gpu] stdin_open: true tty: true command: /bin/bash -c "/bin/bash /home/dgl/.ssh/sshd.sh && /bin/bash"- 设置
shm_size避免bus error。 /bin/bash /home/dgl/.ssh/sshd.sh用于以root权限启动sshd。
- 设置
-
部署多个镜像
sudo docker-compose up --scale dgl_cluster=2 -d- 部署多个镜像时,需要把container_name注释
sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name可以查看容器的IP,使用scale启动的容器的ip在同一子网下,为xx.xx.xx.02-xx.xx.xx.${number_of_container+1}。- 不同的docker容器之间可以通过容器名称相互直接访问,比如
ssh root@container_name - ip_config.txt需要使用ip配置而不是容器名称,否则会出现无法监听的情况。

该文详细介绍了如何在Ubuntu18.04系统中,利用Docker安装特定CUDA版本的PyTorch和DGL库。首先,创建pip配置文件以使用清华源加速下载,然后安装与CUDA版本匹配的PyTorch和DGL。接着,打包DGL环境到Docker镜像,并编写docker-compose.yml文件以部署单个容器。此外,还涉及到了如何在Docker容器中安装SSH服务,以便于多容器间的通信和管理。
2763

被折叠的 条评论
为什么被折叠?



