【Hello AI】安装并使用FastGPU-Python SDK使用说明

本文涉及的产品
轻量应用服务器 2vCPU 1GiB,适用于搭建电商独立站
轻量应用服务器 2vCPU 4GiB,适用于搭建Web应用/小程序
轻量应用服务器 2vCPU 4GiB,适用于网站搭建
简介: 用户可以通过FastGPU提供的Python接口,将FastGPU集成到您的人工智能训练或推理脚本中,从而实现快速的云上部署和资源管理。

用户可以通过FastGPU提供的Python接口,将FastGPU集成到您的人工智能训练或推理脚本中,从而实现快速的云上部署和资源管理。

前提条件

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

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

环境准备

  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  # (选填) 填入您希望使用的地域的可用区
  1. 执行以下命令,在Python代码中导入FastGPU模块。
import fastgpu

创建或获取实例

fastgpu.make_job方法会自动按规则创建实例集合。如果实例集合已存在,则返回实例集合。

job = fastgpu.make_job(
    name: str="",             # (必填)设置实例集群名称 
    instance_type: str="",    # (必填)设置实例类型 
    num_tasks: int=0,         # 设置创建实例个数
    install_script: str="",   # 设置初始化命令
    image_name: str="",       # 设置镜像名称
    image_type: str="",       # 设置镜像类型
    disk_size: int=500,       # 设置数据盘大小
    spot: bool=False,         # 设置是否抢占式实例
    confirm_cost: bool=False, # 设置是否跳过消费警告
    install_cuda: bool=False, # 设置是否自动安装GPU驱动
    mount_nas: bool=False    # 设置是否挂载NAS盘
)

上述示例涉及的参数说明如下:

参数名称

是否必填

参数说明

参数示例

name

实例集群名称。

默认值:空。表示从当前现有的资源中获取。

指定实例集群名称为fastgpu_test:

name="fastgpu_test"

instance_type

实例类型。

您可以使用命令行fastgpu querygpu查询GPU实例规格,更多信息,请参见GPU实例规格族

指定实例类型为单卡V100机型:

instance_type="ecs.gn6v-c8g1.2xlarge"

num_tasks

创建实例数量。默认值:1。

指定创建一个实例:

num_tasks=1

install_script

实例初始化脚本。

默认值:空。表示不执行任何命令。

初始化完成后,启动ssh服务:

install_script="systemctl start sshd"

image_name

实例镜像名称。

默认值:空。表示将会自动使用Alibaba Cloud Linux 2.1903作为默认镜像。

更多镜像名称可通过命令行fastgpu queryimage进行查询。

指定镜像名为CentOS:

image_name="centos_8_5_x64_20G_alibase_202111129.vhd"

image_type

实例镜像类型。您可以将参数指定为操作系统类型"aliyun"/"ubuntu"/"centos",也可以指定系统版本,例如"ubuntu_18_04"/"centos_7_9"。另外,您也可以指定为AIACC,其镜像内包含深度学习框架和AIACC-Training,更多信息,请参见什么是神龙AI加速引擎AIACC

  • 设置镜像类型为ubuntu 16.04:

image_type="ubuntu_16_04"

  • 设置镜像类型为最新版本的AIACC镜像:

image_type="AIACC"

disk_size

设置数据盘大小。

默认值:500,单位:GB。

设置数据盘大小为500 GB:

disk_size=500

spot

是否为抢占式实例。

默认值:False。

设置为抢占式实例:

spot=True

confirm_cost

确认是否跳过消费警告。默认值为False,即不跳过,创建实例过程中会弹出输入确认项。

设置跳过消费警告:

confirm_cost=True

install_cuda

设置是否自动安装GPU驱动。默认值为False,即不安装。

设置自动安装GPU驱动:

install_cuda=True

mount_nas

设置是否自动挂载NAS盘。更多信息,请参见什么是文件存储NAS

设置自动挂载NAS盘:

mount_nas=True

返回值:返回一个Job对象,代表一个实例集群,实例集群可以通过访问tasks成员访问到具体单个实例。job可以包含若干task,关系如下图所示:

job = fastgpu.make_job(...) # 创建Job
job.run("ls -l")            # 集群执行“ls -l”命令
job.tasks[0].run("ls -l")   # 单个实例(task0)执行命令

代码示例:创建一个名称为fastgpu_test的job,该job是包含2个实例(task)的对象,您可以通过访问job对象的tasks来访问创建出的实例列表。具体示例代码如下:

job = fastgpu.make_job(
    name="fastgpu_test",                   # 实例集群名称
    num_tasks=2,                           # 实例数量,创建2个实例
    instance_type="ecs.gn6v-c8g1.2xlarge", # 实例类型
    image_type="ubuntu_18_04",             # 实例镜像类型,比如为Ubuntu 18.04
    disk_size=500,                         # 数据盘大小为500 GB
    confirm_cost=True,                     # 是否确认消费警告
    spot=True,                             # 是否抢占型实例
    install_cuda=True,                     # 是否自动安装GPU驱动
    mount_nas=True                         # 是否自动挂载NAS盘
)
task1 = job.tasks[0]
task2 = job.tasks[1]

运行命令

集群或实例运行指定命令,运行完成后会将输出保存到指定目录下。

# 支持整个集群运行命令
job.run(cmd,                        # 运行的命令
         sudo=False,                # 是否以管理员权限运行
         non_blocking=False,        # 是否以非阻塞运行任务
         ignore_errors=False,       # 是否忽略错误,默认如果执行报错,则抛出一个异常
         max_wait_sec=365*24*3600,  # 最大超时时间
         show=False,                # 运行结束后是否输出结果
         show_realtime=False        # 是否实时打印输出
       )
# 同理也支持单实例运行命令
job.tasks[i].run(cmd, ...)

上述运行命令的参数说明如下:

参数名称

参数说明

参数示例

sudo

是否以管理员权限运行命令。默认值为False,即不以管理员权限运行。

设置以管理员权限运行:

sudo=True

non_blocking

是否非阻塞运行命令。默认值为False,即执行过程中等待直到执行完成。

设置非阻塞执行:

non_blocking=True

ignore_errors

是否忽略报错。默认值为False,即执行遇到异常则终止程序,报错会抛出异常。

设置忽略执行报错:

ignore_errors=True

max_wait_sec

最大超时时间,单位:秒。

默认值:365*24*3600(1年)。

设置最大超时时间为1小时:

max_wait_sec=3600

show

运行结束后是否输出结果,默认值为False。

设置运行后输出结果:

show=True

show_realtime

是否实时输出运行结果,默认值为False。

设置实时输出显示:

show_realtime=True

代码示例:

# 集群运行 "ls",列出每个实例工作目录下的文件和文件夹
job.run("ls")
# 单实例运行 "ls", 列出第i个实例工作目录下的文件和文件夹
job.tasks[i].run("ls")

文件传输

  • 上传文件到集群或单个实例:
# 上传文件到集群
job.upload(local_fn: str, remote_fn: str="", dont_overwrite: bool=False)
# 上传文件到集群中第i个实例
job.tasks[i].upload(local_fn: str, remote_fn: str="", dont_overwrite: bool=False)

参数名称

是否必填

参数说明

参数示例

Iocal_fn

本地文件路径。

设置需要上传到实例的文件路径:

local_fn="/root/test_download.fn"

remote_fn

上传目标路径。

默认值:空。表示上传到和local_fn相同的路径下。

设置实例内文件路径:

remote_fn="/root/test.txt"

dont_overwrite

是否覆盖原有文件。默认值为False,表示自动覆盖已存在的文件。

设置为不覆盖原有文件:

dont_overwrite=True

  • 从集群或单个实例下载文件到本地:
# 集群下载文件
job.download(remote_fn, local_fn: str="")
# 集群中第i个实例下载文件
job.tasks[i].download(remote_fn, local_fn: str="")

重要当机器数大于2台时,集群下载文件会引入文件冲突,不建议使用。

参数名称

是否必填

参数说明

参数示例

remote_fn

远程文件路径。

设置i实例中的文件路径:

remote_fn="/root/test.txt"

local_fn

本地文件路径。

默认值:空。表示下载到和remote_fn相同的本地路径下。

设置下载到本地的文件路径:

local_fn="/root/test_download.fn"

代码示例:为集群中所有实例上传文件,并通过某一个实例下载到本地。

# 上传/root/test.txt到集群中所有实例的/root/下
job.upload("/root/test.txt")
# 从task[0]实例中下载txt文件到当前路径下
job.tasks[0].download("/root/test.txt", "./test.txt")

停止实例

停止集群或单个实例。

# 停止整个集群的实例。
job.stop(
    keep=False, # 停止集群后,是否仍然计费
    force=False # 是否强制停止
)
# 停止集群中第i个实例
job.tasks[i].stop(
    keep=False, # 停止实例后,是否仍然计费
    force=False # 是否强制停止
)

代码示例:

job.stop(force=True, keep=True) # 强制停止整个集群,并保持收费

参数名称

参数说明

参数示例

keep

是否保持计费。默认值为False,即不计费。

设置停止后仍计费:

keep=True

force

是否强制停止。默认值为False,表示不强制停止,遇到无法退出的程序可能阻塞。

设置强制停止:

force=True

释放实例

永久删除集群或实例,释放实例占用的资源。

重要实例释放后,实例ID、固定公网IP、系统盘、设置随实例释放的数据盘等数据和资源将随之释放且不可恢复,EIP、设置不随实例释放的数据盘等独立的资源将自动解绑。请慎重执行释放操作。

job.kill()          # 释放整个集群
job.tasks[i].kill() # 释放单个实例

代码示例:强制停止并释放一个正在运行的实例。

# 强制释放集群以及集群中的实例,即使实例处于Running状态
job.kill(force=True)
# 释放单个实例,此实例应处于停机状态
job.tasks[i].kill()

参数名称

参数描述

参数示例

force

是否强制停止。默认值为False,即无法释放正在运行中的实例。

设置强制停止:

force=True

好啦!小弹的分享到此为止。我们更欢迎您分享您对阿里云产品的设想、对功能的建议或者各种吐槽,请扫描提交问卷并获得社区积分或精美礼品一份。https://survey.aliyun.com/apps/zhiliao/P4y44bm_8

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

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

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
4月前
|
Linux 计算机视觉 C++
【解决方案】Building wheel for opencv-python:安装卡顿的原因与解决方案
当你安装OpenCV时,命令行停在Building wheel for opencv-python (PEP 517) ... -似乎卡住了。这并非程序假死,而是其编译耗时巨大。本文将揭示原因,并提供优化安装体验的实用方法。
634 88
|
2月前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
1163 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
2月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
327 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
24天前
|
搜索推荐 API 开发工具
百宝箱开放平台 ✖️ Python SDK
百宝箱提供Python SDK,支持开发者集成其开放能力。需先发布应用,安装Python 3.6+环境后,通过pip安装tboxsdk,即可调用对话型、生成型智能体及文件上传等功能。
668 87
百宝箱开放平台 ✖️  Python SDK
|
4月前
|
人工智能 数据挖掘 Linux
Centos安装Python3.7(亲测可用)
本指南详细介绍了在基于Linux(以CentOS系统为例,使用yum包管理器)的系统上安装Python 3.7版本的完整流程。Python是一种广泛使用的高级编程语言,在各种领域如软件开发、数据分析、人工智能和区块链开发等都有着重要的应用。
440 2
|
6月前
|
API 开发工具 网络架构
【Azure Service Bus】使用Python SDK创建Service Bus Namespace资源(中国区)
本文介绍了如何使用Python SDK创建Azure Service Bus Namespace资源。首先,通过Microsoft Entra ID注册应用获取Client ID、Client Secret和Tenant ID,完成中国区Azure认证。接着,初始化ServiceBusManagementClient对象,并调用`begin_create_or_update`方法创建资源。
144 29
|
7月前
|
IDE 开发工具 开发者
手把手教你安装PyCharm 2025:开发者的Python IDE配置全流程+避坑指南
本教程详细介绍了PyCharm 2025版本在Windows系统下的安装流程及配置方法,涵盖AI代码补全与智能调试工具链等新功能。内容包括系统要求、安装步骤、首次运行配置(如主题选择与插件安装)、创建首个Python项目,以及常见问题解决方法。此外,还提供了切换中文界面和延伸学习资源的指导,帮助用户快速上手并高效使用PyCharm进行开发。
3559 61
|
6月前
|
人工智能 自然语言处理 开发工具
HarmonyOS NEXT~鸿蒙开发能力:HarmonyOS SDK AI 全解析
本文深入解析HarmonyOS SDK中的AI功能集,涵盖分布式AI引擎、核心组件(NLP、计算机视觉等)及智能决策能力。通过代码示例与开发实践指南,帮助开发者掌握环境配置、性能调优及多场景应用(智能家居、移动办公等)。同时探讨性能优化策略与未来演进方向,助力构建高效分布式智能应用。
638 9
|
7月前
|
存储 缓存 文件存储
uv安装python及其依赖的加速方法
国内在使用uv的时候,可能会涉及到装python的速度太慢的问题,为了解决这个问题,可以使用`UV_PYTHON_INSTALL_MIRROR`这个环境变量。除此以外,对于多人协作场景,`UV_CACHE_DIR`也是一个有用的环境变量。本文会介绍这两个变量。
5084 10
|
2月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
440 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡

热门文章

最新文章

推荐镜像

更多