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

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

代码语言:javascript代码运行次数:0运行复制dirname `which ngc` | xargs rm -r2. NGC使用流程NGC运行的原理是基于docker,整个使用流程如下:

创建一个新的docker image,以pytorch为例,我们可以使用官方的pytorch image代码语言:javascript代码运行次数:0运行复制docker pull nvcr.io/nvidia/pytorch:22.05-py3创建docker container代码语言:javascript代码运行次数:0运行复制docker run --name hyperbox --gpus all -it e34705793a75--name test:表示将创建的container命名为 test--gpus all: 表示使用GPU-it: 表示创建container后将进入交互模式e34705793a75: 是docker image的id运行上面的命令后会进入container,你可以安装好所有需要的依赖库。安装好后执行如下命令即可退出container

代码语言:javascript代码运行次数:0运行复制exit将container打包成新的image代码语言:javascript代码运行次数:0运行复制docker commit -a "author_name" -m "commit message" a460d64be5e3nvcr.io/nvidian/onboarding/hyperbox:v1.1 a460d64be5e3:是创建的container的id。可以通过docker ps -a查看container的idnvcr.io/nvidian/onboarding/hyperbox:v1.1 : 这是给container打上了标签 nvidian是organizationonboarding是teamhyperbox:v1.1 是image的别名和版本号上传生成的image等上面的命令执行结束后会生成新的image,执行如下命令即可上传image

代码语言:javascript代码运行次数:0运行复制docker push nvcr.io/nvidian/onboarding/hyperbox:v1.1 NGC配置运行上传image后,我们在NGC网站界面便可选择指定的image了。

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

dataset: NGC上有很多已经上传的dataset,用户可以把dataset挂载到指定位置/mount/cifar10

workspace:我们可以把代码存放到workspace,具体的操作细节会在下一节介绍。result: 实验的日志信息(如终端屏幕上打印出来的信息)都会保存到 /result目录下的一个log文件里,所以需要把代码存日志的路径改到/result路径下。3. NGC基础概念:dataset result workspace3.1 workspaceworkspace简单理解就是云上的一个文件夹,这里面可以存很多需要的东西,比如代码,模型权重等等。

创建workspace,命名为my_workspace代码语言:javascript代码运行次数:0运行复制ngc workspace create --name my_workspace 上传文件到workspace代码语言:javascript代码运行次数:0运行复制ngc workspace upload --source ./local_path/source_code.py my_workspace workspace其他命令3.2 resultNGC 某个job结束后会把日志信息保存到/result,运行结束之后我们可以下载实验结果。

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

代码语言:javascript代码运行次数:0运行复制ngc result download 3061231result其他命令如下:

3.3 dataset4. ngc运行命令示例以下命令也可以在NGC网页上自动生成

代码语言:javascript代码运行次数:0运行复制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