用户可以通过FastGPU的命令行,快速地部署云上GPU集群,管理资源的生命周期。还可以便捷地为集群安装深度学习环境,在集群运行代码,查看运行日志以及释放资源。
前提条件
- 客户端已安装Python 3.6或以上版本。
说明:您的ECS实例、本地机器、阿里云Cloud Shell工具等均可以作为客户端安装FastGPU来构建人工智能计算任务。
- 已获取阿里云访问密钥(AccessKey)。更多信息,请参见创建AccessKey。
环境准备
- 执行以下命令,安装FastGPU软件包。
pip3 install --force-reinstall https://ali-perseus-release.oss-cn-huhehaote.aliyuncs.com/fastgpu/fastgpu-1.1.5-py3-none-any.whl
- 执行以下命令,配置环境变量。
配置环境变量时,需要您提前在您的ECS实例、本地机器或阿里云Cloud Shell工具上,获取阿里云账号AccessKey(AccessKey ID和AccessKey Secret)、默认地域或默认可用区等信息。
export ALIYUN_ACCESS_KEY_ID=**** # 填入您的AccessKey ID export ALIYUN_ACCESS_KEY_SECRET=**** # 填入您的AccessKey Secret export ALIYUN_DEFAULT_REGION=cn-hangzhou # 填入您希望使用的地域(Region) export ALIYUN_DEFAULT_ZONE=cn-hangzhou-i # (选填)填入您希望使用的地域的可用区
命令行说明
下表所有命令中的{instance_name}可以表示单个实例名称,例如{instance_name}="task0.my_job",该命令仅对单个实例执行。您也可以使用{instance_name}="{my_job}",大括号{}表示以my_job为后缀的GPU集群。
命令 |
命令说明 |
命令示例 |
fastgpu [help,-h,--help]
|
查看所有FastGPU命令的帮助说明。 |
fastgpu --help fastgpu -h |
fastgpu {command} --help
|
查看指定的FastGPU命令的帮助说明。 |
fastgpu ls --help |
fastgpu ls
|
列出FastGPU用户创建的实例。包括以下信息:
参数说明: -a:列出您当前阿里云账户下所有实例。会提供Key-Owner(密钥对)和instance_id(实例id)两个额外的信息。 |
fastgpu ls
fastgpu ls -a |
fastgpu create --config create.cfg fastgpu create --name {instance_name} --machine {count} --instance_type {ins_type} |
创建一个实例或一个集群。 参数说明:
|
fastgpu create --name fastgpu_vm -np 1 --instance_type ecs.gn6v-c8g1.16xlarge --image_type ubuntu --install_cuda
fastgpu create -c config.cfg |
fastgpu ssh {instance_name}
|
使用SSH连接并登录到指定实例。 说明 您需要将本地的公网IP添加到安全组才可以通过SSH访问。建议您使用fastgpu addip -a命令快速添加。 |
使用SSH连接到task0.my_job实例: fastgpu ssh task0.my_job |
fastgpu scp /local/path/to/upload {instance_name}:/remote/path/to/save fastgpu scp {instance_name}:/remote/path/to/copy /local/path/to/save |
将本地文件拷贝到实例中,或者是从实例中拷贝到本地。 |
fastgpu scp /root/test.txt task0.my_job:/root/
fastgpu scp task0.my_job:/home/cuda/ ~/cuda/
fastgpu scp /root/test.txt {my_job}:/root/ |
fastgpu querygpu fastgpu query fastgpu query -gpu {gpu_type} fastgpu query -np {number of gpus per node} fastgpu query -gpu {gpu_type} -np {number of gpus per node} |
查询阿里云支持的GPU实例规格。 参数说明:
支持查询的类型:V100、 P100、A10、T4、P4、M40等。
|
fastgpu querygpu fastgpu query
fastgpu query -gpu "V100"
fastgpu query -np 4 |
fastgpu queryimage fastgpu queryimage {os_type} |
查询阿里云支持的实例镜像。 参数说明: os_type:阿里云支持的os类型。包括CentOS、Ubuntu、Debian、SUSE、Aliyun等。 |
fastgpu queryimage
fastgpu queryimage centos |
fastgpu describe {instance_name} fastgpu describe |
查询实例的所有属性。属性包括CPU核数、GPU、镜像、内存大小、创建时间、密钥对、状态等信息。 |
fastgpu describe
fastgpu describe task0.my_job
fastgpu describe {my_job} |
fastgpu kill {instance_name} fastgpu kill -y {instance_name} fastgpu kill {instance_a_name} {instance_b_name} {instance_c_name} fastgpu kill -f {instance_name} |
释放指定的实例。 参数说明:
|
fastgpu kill task0.my_job
fastgpu kill -f task0.my_job
fastgpu kill -f {my_job} |
fastgpu stop {instance_name} fastgpu stop {instance_a_name} {instance_b_name} {instance_c_name} fastgpu stop -f {instance_name} fastgpu stop -k {instance_name} |
停止指定的实例。若实例为集群实例,可以通过指定该实例名的取值,即将{集群名字}作为该实例值的后缀来批量停止集群下的所有实例。 参数说明:
|
fastgpu stop task0.my_job
fastgpu stop -f task0.my_job
fastgpu stop -f {my_job} |
fastgpu start {instance_name}
|
启动指定的实例。 参数说明: -y:跳过确认。 |
fastgpu start task0.my_job
fastgpu start {my_job} |
fastgpu mount {instance_name} fastgpu mount {instance_name} {mount_target_domain} |
为指定的实例挂载NAS文件系统到/ncluster目录。 参数说明: mount_target_domain:指定NAS的挂载点。如果不指定,则会自动创建挂载点并挂载。 |
fastgpu mount task0.my_job
fastgpu mount task0.my_job example.cn-hangzhou.nas.aliyuncs.com
fastgpu mount {my_job} |
fastgpu run {instance_name} {cmd}
|
在指定实例中执行shell命令。 参数说明: cmd:需要执行的命令。 |
fastgpu run task0.my_job ifconfig
fastgpu run {my_job} ifconfig |
fastgpu addip {instance_name} fastgpu addip {instance_name} {your_public_ip} fastgpu addip {instance_name} {your_public_ip} {port_range} fastgpu addip {instance_name} {your_public_ip} {port_range} {description} fastgpu addip -a {your_public_ip} {port_range} {description} |
为指定实例的安全组添加可访问的公网IP。 参数说明:
|
fastgpu addip -a
fastgpu addip task0.my_job
fastgpu addip task0.my_job 203.0.113.0 2000/3000 fastgpu addip task0.my_job 203.0.113.0 2000/3000 "open 2000-3000 port"
fastgpu addip {my_job} 203.0.113.0 2000/3000 |
fastgpu deleteip {instance_name} fastgpu deleteip {instance_name} {your_public_ip} fastgpu deleteip {instance_name} {your_public_ip} {port_range} fastgpu deleteip -a |
将IP从某一实例安全组中移除。 参数说明:
|
fastgpu deleteip task0.my_job
fastgpu deleteip task0.my_job 203.0.113.0
fastgpu deleteip task0.my_job 203.0.113.0 2000/3000
fastgpu deleteip -a task0.my_job
fastgpu deleteip {my_job} 203.0.113.0 |
fastgpu queryip fastgpu queryip -a fastgpu queryip {instance_name} |
查询实例的安全组IP,默认只查询22端口对应的IP。 参数说明: -a:查询所有端口的IP。 |
fastgpu queryip
fastgpu queryip task0.my_job
fastgpu queryip -a task0.my_job |
fastgpu addpub {string of id_rsa.pub}
|
将本机公钥添加进指定实例。 参数说明: string of id_rsa.pub:公钥路径。 |
将~/.ssh/id_rsa.pub内容添加到实例中: fastgpu addpub |
fastgpu rename {instance_name} {instance_new_name} fastgpu rename {instance_id} {instance_new_name} |
重命名实例。 参数说明:
|
将task0.my_job实例重命名为my_new_ins: fastgpu rename task0.my_job task0.my_new_ins |
fastgpu tmux {instance_name}
|
使用SSH连接到实例,并使用默认的tmux进程。 |
登录task0.my_job实例,并创建一个tmux进程: fastgpu tmux task0.my_job |
fastgpu deletekeypair
|
删除本机的密钥对。 说明:如果有实例正在使用此密钥对,删除该密钥对后,实例将会无法正常被连接和查询,但您可以通过fastgpu ls -a命令查询到。 |
删除~/.fastgpu/下对应的密钥对: fastgpu deletekeypair |
fastgpu createkeypair
|
在本机创建一个密钥对,后续实例的创建以及连接都会使用此次创建的密钥对。 |
在本机~/.fastgpu/下创建一个密钥对: fastgpu createkeypair |
fastgpu attachkeypair {instance_name}
|
将密钥对绑定到实例中。 |
fastgpu attachkeypair task0.my_job
fastgpu attachkeypair {my_job} |
fastgpu detachkeypair {instance_name}
|
从实例中分离密钥对。 说明:分离后将无法正常连接和查询该实例,建议您使用attachkeypair命令重新绑定后,即可恢复正常连接和查询。 |
fastgpu detachkeypair task0.my_job
fastgpu detachkeypair {my_job} |
fastgpu notebooksample {instance_name} {passwd_of_login}
|
在指定实例中创建部署jupyter notebook项目示例。
参数说明: passwd_of_login:指定jupyter-notebook服务器密码。 |
在task0.my_job实例中创建并部署项目示例: fastgpu notebooksample task0.my_job |
fastgpu cuda {instance_name} {gpu_driver_version} {cuda_version} {cudnn_version}
|
为指定实例安装驱动,CUDA和cuDNN组件。默认值为:
参数说明:
|
fastgpu cuda task0.my_job
fastgpu cuda task0.my_job 460.91.03 11.2.2 8.1.1 |
fastgpu conda {instance_name} fastgpu conda {instance_name} -f {conda_yaml_file} fastgpu conda {instance_name} -h fastgpu conda {instance_name} --cuda 10.0 -tf -v 1.15.0 |
为指定实例安装Conda,并创建出指定的Python、CUDA版本的虚拟环境。 参数说明:
说明:TensorFlow、PyTorch以及MXNet三个指定框架参数不支持同时存在。 |
fastgpu conda task0.my_job
fastgpu conda {my_job}
fastgpu conda -py 3.6 -cu 11.0 -pt -v 1.7.0 |
fastgpu allconda {instance_name}
|
在指定实例中安装所有支持的Conda环境。 说明:安装过程耗时较长。 |
fastgpu allconda task0.my_job
fastgpu allconda {my_job} |
fastgpu replaceimage {instance_name} {image_id}
|
替换指定实例的镜像。 参数说明: image_id:需要替换的镜像名称或镜像ID。 |
fastgpu replaceimage task0.my_job centos_8_2_x64_20G_alibase_20210712.vhd
fastgpu replaceimage {my_job} centos_8_2_x64_20G_alibase_20210712.vhd |
配置文件示例
示例文件create.cfg内容如下,参数请参考fastgpu create命令的相关说明。
[fastgpu] name=fastgpu-v100 machines=1 system_disk_size=500 data_disk_size=0 image_name= image_type=ubuntu_18_04 instance_type=ecs.gn6v-c8g1.2xlarge spot=False confirm_cost=False mount_nas=True vpc_name=fastgpu-vpc install_cuda=True [cmd] install_script=pwd
好啦!小弹的分享到此为止。我们更欢迎您分享您对阿里云产品的设想、对功能的建议或者各种吐槽,请扫描提交问卷并获得社区积分或精美礼品一份。https://survey.aliyun.com/apps/zhiliao/P4y44bm_8
【扫码填写上方调研问卷】
欢迎每位来到弹性计算的开发者们来反馈问题哦~