前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NVIDIA GPU Cloud (NGC)集群使用笔记

NVIDIA GPU Cloud (NGC)集群使用笔记

作者头像
marsggbo
发布2022-06-28 09:16:33
1.3K0
发布2022-06-28 09:16:33
举报
文章被收录于专栏:AutoML(自动机器学习)

1. 安装ngc命令

NGC集群的使用需要用到ngc命令行,安装方法如下:

  1. 下载NGC CLI
代码语言:javascript
复制
wget --content-disposition https://ngc.nvidia.com/downloads/ngccli_linux.zip && unzip ngccli_linux.zip && chmod u+x ngc-cli/ngc
  1. 检查二进制文件md5 hash
代码语言:javascript
复制
find ngc-cli/ -type f -exec md5sum {} + | LC_ALL=C sort | md5sum -c ngc-cli.md5
  1. 将ngc添加到path
代码语言:javascript
复制
echo "export PATH=\"\$PATH:$(pwd)/ngc-cli\"" >> ~/.bash_profile && source ~/.bash_profile
  1. 配置ngc
代码语言:javascript
复制
ngc config set

如果需要卸载ngc,只需要执行如下命令:

代码语言:javascript
复制
dirname `which ngc` | xargs rm -r

2. NGC使用流程

NGC运行的原理是基于docker,整个使用流程如下:

NGC Pipeline
NGC Pipeline
  1. 创建一个新的docker image,以pytorch为例,我们可以使用官方的pytorch image
代码语言:javascript
复制
docker pull nvcr.io/nvidia/pytorch:22.05-py3
  1. 创建docker container
代码语言:javascript
复制
docker run --name hyperbox --gpus all -it e34705793a75
  • --name test:表示将创建的container命名为 test
  • --gpus all: 表示使用GPU
  • -it: 表示创建container后将进入交互模式
  • e34705793a75: 是docker image的id

运行上面的命令后会进入container,你可以安装好所有需要的依赖库。安装好后执行如下命令即可退出container

代码语言:javascript
复制
exit
  1. 将container打包成新的image
代码语言:javascript
复制
docker commit -a "author_name" -m "commit message" a460d64be5e3nvcr.io/nvidian/onboarding/hyperbox:v1.1 
  • a460d64be5e3:是创建的container的id。可以通过docker ps -a查看container的id
  • nvcr.io/nvidian/onboarding/hyperbox:v1.1 : 这是给container打上了标签
    • nvidian是organization
    • onboarding是team
    • hyperbox:v1.1 是image的别名和版本号
  1. 上传生成的image

等上面的命令执行结束后会生成新的image,执行如下命令即可上传image

代码语言:javascript
复制
docker push nvcr.io/nvidian/onboarding/hyperbox:v1.1 
  1. NGC配置运行

上传image后,我们在NGC网站界面便可选择指定的image了。

NGC
NGC

除了image以外,还需要配置以下选项:

  • dataset: NGC上有很多已经上传的dataset,用户可以把dataset挂载到指定位置/mount/cifar10
dataset
dataset
  • workspace:我们可以把代码存放到workspace,具体的操作细节会在下一节介绍。
  • result: 实验的日志信息(如终端屏幕上打印出来的信息)都会保存到 /result目录下的一个log文件里,所以需要把代码存日志的路径改到/result路径下。

3. NGC基础概念:dataset result workspace

3.1 workspace

workspace简单理解就是云上的一个文件夹,这里面可以存很多需要的东西,比如代码,模型权重等等。

    1. 创建workspace,命名为my_workspace
代码语言:javascript
复制
ngc workspace create --name my_workspace
    1. 上传文件到workspace
代码语言:javascript
复制
ngc workspace upload --source ./local_path/source_code.py my_workspace 
  1. workspace其他命令
ngc workspace
ngc workspace

3.2 result

NGC 某个job结束后会把日志信息保存到/result,运行结束之后我们可以下载实验结果。

假设 job 的id是 3061231,运行如下命令即可下载实验结果

代码语言:javascript
复制
ngc result download 3061231

result其他命令如下:

ngc result
ngc result

3.3 dataset

ngc dataset
ngc dataset

4. ngc运行命令示例

以下命令也可以在NGC网页上自动生成

代码语言:javascript
复制
ngc batch run \
--name "Job-nv-us-west-2-837300" \
--preempt RUNONCE \
--min-timeslice 0s \
--ace nv-us-west-2 \
--instance dgx1v.32g.4.norm \
--total-runtime 500000s \
--image "nvidian/onboarding/hyperbox:v1.1" \
--commandline "cd /mount/workspace; python main.py" \
--result /result \
--org nvidian \
--datasetid 75237:/mount/cifar10 \
--workspace h6Vds94gT3-YyJ4365jZVg:/mount/workspace:RW
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 安装ngc命令
  • 2. NGC使用流程
  • 3. NGC基础概念:dataset result workspace
    • 3.1 workspace
      • 3.2 result
        • 3.3 dataset
        • 4. ngc运行命令示例
        相关产品与服务
        容器镜像服务
        容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档