【Hello AI】安装并使用FastGPU-命令行使用说明

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 用户可以通过FastGPU的命令行,快速地部署云上GPU集群,管理资源的生命周期。还可以便捷地为集群安装深度学习环境,在集群运行代码,查看运行日志以及释放资源。

用户可以通过FastGPU的命令行,快速地部署云上GPU集群,管理资源的生命周期。还可以便捷地为集群安装深度学习环境,在集群运行代码,查看运行日志以及释放资源。

前提条件

  • 客户端已安装Python 3.6或以上版本。

说明您的ECS实例、本地机器、阿里云Cloud Shell工具等均可以作为客户端安装FastGPU来构建人工智能计算任务。

  • 已获取阿里云访问密钥(AccessKey)。更多信息,请参见创建AccessKey

环境准备

  1. 执行以下命令,安装FastGPU软件包。
pip3 install --force-reinstall https://ali-perseus-release.oss-cn-huhehaote.aliyuncs.com/fastgpu/fastgpu-1.1.5-py3-none-any.whl
  1. 执行以下命令,配置环境变量。

配置环境变量时,需要您提前在您的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用户创建的实例。包括以下信息:

  • instance name:实例名称。
  • age(hours):实例创建至今的时间,以小时为单位。
  • public_ip:实例的公网IP。
  • private_ip:实例的内网IP。
  • GPU:GPU规格和数量。
  • instance_type:实例规格。

参数说明:

-a:列出您当前阿里云账户下所有实例。会提供Key-Owner(密钥对)和instance_id(实例id)两个额外的信息。

  • 查询当前Linux账户下的实例:

fastgpu ls

  • 查询同一个阿里云账号不同Linux账户下的所有实例:

fastgpu ls -a

 

fastgpu create --config create.cfg
fastgpu create --name {instance_name} --machine {count} --instance_type {ins_type}

创建一个实例或一个集群。

参数说明:

  • -f, -c, --config:使用指定配置文件创建实例。
  • -n, --name:指定实例名称。
  • --image, --image_name:指定安装镜像。安装镜像可通过queryimage命令查到。
  • --image_type:指定镜像类型。如果未指定image_name,可以通过指定image_type实现,包括Aliyun、Ubuntu、CentOS。
  • -np, --machines:指定创建实例数量。
  • -i, --instance_type:指定实例规格(包括实例CPU,内存,显卡型号等),您可以通过querygpu命令查询所有实例规格。
  • --system_disk_size:指定系统盘大小,单位:GB。
  • --data_disk_size:指定数据盘大小,单位:GB。
  • --skip_setup:跳过实例初始化。
  • -nas, --nas, --enable-nas:允许实例挂载NAS。更多信息,请参见什么是文件存储NAS
  • --zone_id:指定区域id,默认为自动指定。可通过querygpu命令查询实例支持的区域id。
  • --spot:指定创建的实例为抢占式实例。更多信息,请参见抢占式实例概述
  • --confirm_cost:忽略消费确认项。
  • --install_script:指定实例安装完成后需要执行的命令。
  • -vpc, --vpc, --vpc_name:指定私有网络名称。
  • -cuda, --install_cuda, --cuda_install:自动化安装CUDA。
  • 创建一个Ubuntu系统的实例,并指定实例名称和规格,同时自动安装CUDA:

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/

  • 将本地文件拷贝到my_job集群中所有实例的/root目录中:

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实例规格。

参数说明:

  • -gpu:查询指定的GPU类型规格。

支持查询的类型:V100、 P100、A10、T4、P4、M40等。

  • -np:查询包含指定GPU个数的实例类型。支持1、2、4、8四种规格。
  • 查询所有实例类型:

fastgpu querygpu

fastgpu query

  • 查询V100 GPU包含的所有实例类型:

fastgpu query -gpu "V100"

  • 查询4个GPU的实例类型:

fastgpu query -np 4

 

fastgpu queryimage
fastgpu queryimage {os_type}

查询阿里云支持的实例镜像。

参数说明:

os_type:阿里云支持的os类型。包括CentOS、Ubuntu、Debian、SUSE、Aliyun等。

  • 查询所有镜像:

fastgpu queryimage

  • 查询CentOS系统的所有镜像版本:

fastgpu queryimage centos

 

fastgpu describe {instance_name}
fastgpu describe

查询实例的所有属性。属性包括CPU核数、GPU、镜像、内存大小、创建时间、密钥对、状态等信息。

  • 查询所有实例的所有属性:

fastgpu describe

  • 查询task0.my_job实例属性:

fastgpu describe task0.my_job

  • 查询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}

释放指定的实例。

参数说明:

  • -f:强制释放实例。
  • -y:跳过确认。
  • 释放停止状态的task0.my_job实例:

fastgpu kill task0.my_job

  • 强制释放task0.my_job实例,无论实例是什么状态:

fastgpu kill -f task0.my_job

  • 强制停止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}

停止指定的实例。若实例为集群实例,可以通过指定该实例名的取值,即将{集群名字}作为该实例值的后缀来批量停止集群下的所有实例。

参数说明:

  • -f:强制停止实例。
  • -k:实例停止后,仍进行计费操作。
  • -y:跳过确认。
  • 停止运行中的task0.my_job实例:

fastgpu stop task0.my_job

  • 强制停止task0.my_job实例:

fastgpu stop -f task0.my_job

  • 强制停止my_job下所有实例:

fastgpu stop -f {my_job}

 

fastgpu start {instance_name}

启动指定的实例。

参数说明:

-y:跳过确认。

  • 启动task0.my_job实例:

fastgpu start task0.my_job

  • 启动my_job集群:

fastgpu start {my_job}

 

fastgpu mount {instance_name}
fastgpu mount {instance_name} {mount_target_domain}

为指定的实例挂载NAS文件系统到/ncluster目录。

参数说明:

mount_target_domain:指定NAS的挂载点。如果不指定,则会自动创建挂载点并挂载。

  • 为task0.my_job实例自动创建一个挂载点,并挂载NAS文件系统到实例中:

fastgpu mount task0.my_job

  • 手动创建并获取挂载点,并将挂载点挂载到task0.my_job实例中:

fastgpu mount task0.my_job example.cn-hangzhou.nas.aliyuncs.com

  • 为集群所有实例挂载NAS文件系统:

fastgpu mount {my_job}

 

fastgpu run {instance_name} {cmd}

在指定实例中执行shell命令。

参数说明:

cmd:需要执行的命令。

  • 查询task0.my_job实例的IP:

fastgpu run task0.my_job ifconfig

  • 查询my_job集群下所有实例的IP:

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。

参数说明:

  • your_public_ip:将要访问实例机器的公网IP。
  • port_range:端口范围。以/分隔。
  • description:对添加的公网IP进行说明。
  • -a:默认安全组。
  • 将本机公网IP的22端口添加到默认安全组中:

fastgpu addip -a

  • 将本机公网IP的22端口添加到task0.my_job实例中的安全组中:

fastgpu addip task0.my_job

  • 允许IP地址为203.0.113.0的机器访问task0.my_job实例的2000-3000端口:

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"

  • 允许IP地址为203.0.113.0的机器访问my_job集群中的所有机器的2000~3000端口:

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从某一实例安全组中移除。

参数说明:

  • your_public_ip:已经添加到安全组的公网IP。
  • port_range:端口范围,以/分割。
  • -a:删除22端口下的所有公网IP。
  • 将本机公网IP从task0.my_job实例安全组中移除:

fastgpu deleteip task0.my_job

  • 将IP地址为203.0.113.0的机器从实例安全组移除:

fastgpu deleteip task0.my_job 203.0.113.0

  • 移除IP地址为203.0.113.0的机器访问2000-3000端口的权限:

fastgpu deleteip task0.my_job 203.0.113.0 2000/3000

  • 将task0.my_job实例22端口下所有IP从安全组中移除:

fastgpu deleteip -a task0.my_job

  • 将IP地址为203.0.113.0的机器从my_job集群下的所有实例中删除:

fastgpu deleteip {my_job} 203.0.113.0

 

fastgpu queryip
fastgpu queryip -a
fastgpu queryip {instance_name}

查询实例的安全组IP,默认只查询22端口对应的IP。

参数说明:

-a:查询所有端口的IP。

  • 查询所有实例的22端口安全组IP:

fastgpu queryip

  • 查询task0.my_job实例的22端口安全组IP:

fastgpu queryip task0.my_job

  • 查询task0.my_job实例所有端口对应的安全组IP:

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}

重命名实例。

参数说明:

  • instance_new_name:实例的新名称。
  • instance_id:实例ID,可用describe命令进行查询。

将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/下的密钥对绑定至task0.my_job实例:

fastgpu attachkeypair task0.my_job

  • 将~/.ncluster/下的密钥对绑定至my_job集群:

fastgpu attachkeypair {my_job}

 

fastgpu detachkeypair {instance_name}

从实例中分离密钥对。

说明:分离后将无法正常连接和查询该实例,建议您使用attachkeypair命令重新绑定后,即可恢复正常连接和查询。

  • 分离task0.my_job实例密钥对:

fastgpu detachkeypair task0.my_job

  • 分离my_job集群下所有实例的密钥对:

fastgpu detachkeypair {my_job}

 

fastgpu notebooksample {instance_name} {passwd_of_login}

在指定实例中创建部署jupyter notebook项目示例。

  • 默认密码:AIACC。
  • 项目实例:tensorflow-1.14-python36。

参数说明:

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组件。默认值为:

  • gpu_driver_version:460.91.03。
  • cuda-version:11.2.2。
  • cudnn-version:8.1.1。

参数说明:

  • gpu_driver_version:需要安装的GPU驱动版本号。
  • cuda_version:需要安装的CUDA版本号。
  • cudnn_version:需要安装的cuDNN版本号。
  • 在task0.my_job实例中安装CUDA的默认版本:

fastgpu cuda task0.my_job

  • 在task0.my_job实例中安装GPU驱动,CUDA和cuDNN,GPU驱动版本为460.91.03,CUDA版本号为11.2.2,cuDNN版本号为8.1.1:

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版本的虚拟环境。

参数说明:

  • -h:查看帮助。
  • -f或--yaml:按照指定的YAML文件安装Conda。
  • -cu或--cuda:指定CUDA版本。支持:{11.0,10.2,10.1,10.0}
  • -py或--python:指定使用Python版本。支持:{3.5,3.6,3.7,3.8}
  • -tf或--tensorflow:指定使用TensorFlow为主框架。
  • -pt或--pytorch:指定使用PyTorch为主框架。
  • -mx或--mxnet:指定使用MXNet为主框架。
  • -v、--vers或--framework_version:指定主框架版本。

说明:TensorFlow、PyTorch以及MXNet三个指定框架参数不支持同时存在。

  • 为task0.my_job实例安装Conda,不安装任何虚拟环境:

fastgpu conda task0.my_job

  • 为my_job集群中所有实例安装Conda:

fastgpu conda {my_job}

  • 为task0.my_job实例安装Conda,并配置Python 3.6,CUDA 11.0以及PyTorch 1.7.0虚拟环境:

fastgpu conda -py 3.6 -cu 11.0 -pt -v 1.7.0

 

fastgpu allconda {instance_name}

在指定实例中安装所有支持的Conda环境。

说明:安装过程耗时较长。

  • 为task0.my_job安装所有的conda环境:

fastgpu allconda task0.my_job

  • 为my_job集群安装所有的conda环境:

fastgpu allconda {my_job}

 

fastgpu replaceimage {instance_name} {image_id}

替换指定实例的镜像。

参数说明:

image_id:需要替换的镜像名称或镜像ID。

  • 将task0.my_job实例的镜像替换为CentOS:

fastgpu replaceimage task0.my_job centos_8_2_x64_20G_alibase_20210712.vhd

  • 将my_job下所有实例替换为CentOS:

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

【扫码填写上方调研问卷】

欢迎每位来到弹性计算的开发者们来反馈问题哦~

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
1天前
|
人工智能 前端开发 JavaScript
【AI】命令行调用大模型
通过命令行调用AI大模型以提高效率,文章介绍了一个使用前端npm的方法。首先创建npm包项目,初始化配置,然后编写`constant.js`、`kiwi.js`和`main.js`三个文件,分别存放API密钥、调用接口和主逻辑。在`kiwi.js`中使用axios与大模型API交互,`main.js`接收命令行参数并输出结果。通过修改`package.json`设置入口文件,并使用`npm link`全局安装,实现命令行调用,如`moon 你好`。
43 0
|
1天前
|
TensorFlow 调度 算法框架/工具
【Hello AI】通过Docker安装并使用cGPU服务
cGPU服务可以隔离GPU资源,实现多个容器共用一张GPU卡。该服务作为阿里云容器服务Kubernetes版ACK(Container Service for Kubernetes)的组件对外提供服务,本文介绍如何通过Docker安装并使用cGPU服务。
|
1天前
|
人工智能 弹性计算 自然语言处理
【Hello AI】AIACC-ACSpeed性能数据
本文展示了AIACC-ACSpeed的部分性能数据,相比较通过原生DDP训练模型后的性能数据,使用AIACC-ACSpeed训练多个模型时,性能具有明显提升。
|
1天前
|
人工智能 Ubuntu 机器人
AI电销机器人系统源码部署之:freeswitch安装Linux
在Linux服务器上安装FreeSWITCH的简要步骤:更新软件包,安装依赖(如build-essential,libssl-dev等),下载v1.10.7源代码,解压并配置,编译,然后运行`./bootstrap.sh -j`,`./configure`,`make`,`make install`。启动FreeSWITCH服务,配置SIP用户和路由,测试连接与通话,并确保防火墙打开SIP(5060)和RTP端口。注意,实际部署可能需按需求调整。
|
1天前
|
人工智能 安全 机器人
AI电销机器人系统源码部署:freeswitch安装Windows
在Windows上安装FreeSWITCH:访问官网下载安装程序,运行并按提示安装;选择安装路径和组件;等待安装完成;配置FreeSWITCH,修改设置;启动服务;测试其功能;如遇问题,参考官方文档或进行调试故障排除。记得定期更新维护以保证稳定安全。
|
1天前
|
人工智能 弹性计算 开发工具
【Hello AI】安装并使用FastGPU-Python SDK使用说明
用户可以通过FastGPU提供的Python接口,将FastGPU集成到您的人工智能训练或推理脚本中,从而实现快速的云上部署和资源管理。
|
1天前
|
人工智能 弹性计算 固态存储
【Hello AI】AIACC-AGSpeed性能数据
本文展示了AIACC-AGSpeed(简称AGSpeed)的部分性能数据,相比较通过PyTorch原生Eager模式训练模型后的性能数据,使用AGSpeed训练多个模型时,性能具有明显提升。
|
1天前
|
机器学习/深度学习 人工智能 PyTorch
【Hello AI】安装和使用AIACC-AGSpeed(优化PyTorch深度学习模型)
AIACC-AGSpeed(简称AGSpeed)专注于优化PyTorch深度学习模型在阿里云GPU异构计算实例上的计算性能,相比原始的神龙AI加速引擎AIACC,可以实现无感的计算优化性能。本文为您介绍安装和使用AGSpeed的方法。
|
1天前
|
人工智能 弹性计算 测试技术
【Hello AI】AIACC-ACSpeed体验示例
AIACC-ACSpeed(简称ACSpeed)作为阿里云自研的AI训练加速器,在提高训练效率的同时能够降低使用成本,可以实现无感的分布式通信性能优化。ACSpeed软件包中已为您提供了适配DDP的示例代码,您可以参考本文快速体验使用ACSpeed进行模型分布式训练的过程以及性能提升效果。
|
1天前
|
人工智能 弹性计算 PyTorch
【Hello AI】安装和使用AIACC-ACSpeed-分布式训练场景的通信优化库
AIACC-ACSpeed专注于分布式训练场景的通信优化库,通过模块化的解耦优化设计,实现了分布式训练在兼容性、适用性和性能加速等方面的升级。本文为您介绍安装和使用AIACC-ACSpeed v1.1.0的方法。
http://www.vxiaotou.com