帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 函数计算 FC 3.0
  4. 常见问题
  5. GPU实例FAQ

GPU实例FAQ

  • 常见问题
  • 发布于 2025-04-16
  • 0 次阅读
文档编辑
文档编辑

本文介绍使用GPU实例过程中可能遇到的问题,并提供对应的解决方案。

  • 函数计算GPU实例的驱动和CUDA版本是什么?

  • 执行时遇到CUFFT_INTERNAL_ERROR怎么办?

  • 构建镜像时报错CUDA GPG Error如何解决?

  • 为什么我的GPU实例规格显示的是g1?

  • 为什么我的预留GPU实例预留不成功?

  • GPU镜像大小限制是多少?

  • GPU镜像加速转换失败怎么办?

  • 模型应该打在镜像里,还是与镜像分离?

  • 如何做模型预热,有没有最佳实践?

  • GPU镜像启动报错:[FunctionNotStarted] Function Instance health check failed on port xxx in 120 seconds.

  • 我的函数端到端延迟较大,并且波动很大,需要怎么处理?

  • 无法找到NVIDIA驱动程序怎么办?

  • 使用Ada系列卡型,报错On-demand invocation of current GPU type is disabled...如何处理?

  • 使用闲置GPU实例有哪些注意事项?

函数计算GPU实例的驱动和CUDA版本是什么?

GPU实例涉及的组件版本主要分为以下两个部分:

  • 驱动版本:包含内核态驱动nvidia.ko、CUDA用户态驱动libcuda.so等。函数计算GPU实例所使用的驱动由NVIDIA提供,由函数计算平台负责部署。随着功能迭代、新卡型推出、BUG修复、驱动生命周期到期等原因,GPU实例所使用的驱动版本未来可能变化,请避免在容器镜像中添加驱动特定相关内容,更多内容,请参见镜像使用说明。

  • CUDA Toolkit版本:包含CUDA Runtime、cuDNN、cuFFT等。CUDA Toolkit版本由您在构建容器镜像时决定。

GPU驱动和CUDA Toolkit由NVIDIA发布,两者有一定的对应关系,细节信息请参见对应版本的CUDA Toolkit Release Notes。

函数计算GPU目前使用的驱动版本为550.54.15,其对应的CUDA用户态驱动版本为12.4。为了最佳的兼容性支持,建议您使用的CUDA Toolkit最低版本为11.8,最高不超过平台提供的CUDA用户态驱动版本。

执行时遇到CUFFT_INTERNAL_ERROR怎么办?

目前已知CUDA 11.7中的cuFFT库存在前向兼容性问题,在较新的卡型中可能遇到上述错误,建议至少升级至CUDA 11.8版本。关于GPU卡型介绍,请参见实例规格。

以PyTorch为例,升级后,可以用以下代码片段来验证,无报错说明升级有效。

import torch
out = torch.fft.rfft(torch.randn(1000).cuda())

构建镜像时报错CUDA GPG Error如何解决?

构建镜像时报错GPG error,具体信息如下。

W: GPG error: https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64  InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A4B469963BF863CC
E: The repository 'https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  InRelease' is not signed.

此时,您可以在Dockerfile文件的RUN rm命令行后面增加如下脚本,然后重新构建镜像。

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A4B469963BF863CC

为什么我的GPU实例规格显示的是g1?

实例规格设置为g1等同于设置为fc.gpu.tesla.1。更多信息,请参见实例规格。

为什么我的预留GPU实例预留不成功?

预留实例失败可能有以下原因:

  • 预留实例启动超时

    • 错误码:"FunctionNotStarted"

    • 错误信息:"Function instance health check failed on port XXX in 120 seconds"

    • 解决方案:检查应用启动逻辑,是否存在公网模型下载、10 GB以上大模型加载逻辑。建议优先完成Web Server启动,再执行模型加载逻辑。

  • 已达到函数或地域级别的实例数量上限

    • 错误码:"ResourceThrottled"

    • 错误信息:"Reserve resource exceeded limit"

    • 解决方案:单个阿里云账号地域级别的GPU物理卡默认上限为30卡,实际数值以配额中心为准,如您有更高的物理卡需求,请前往配额中心申请。

GPU镜像大小限制是多少?

镜像大小限制是针对压缩后的镜像,非压缩前的镜像。您可以在阿里云容器镜像服务控制台查看压缩后镜像尺寸,也可以在本地执行命令docker images查询压缩前镜像尺寸。

通常情况下,压缩前尺寸小于20 GB的镜像可以正常部署到函数计算并使用。

GPU镜像加速转换失败怎么办?

随着您的镜像尺寸增长,镜像加速转换耗时会同步的增长,可能会因为超时导致镜像加速转换失败。您可以通过在函数计算控制台编辑和保存函数配置的方式(无需实际调整参数),重新触发加速镜像的转换。

模型应该打在镜像里,还是与镜像分离?

如果您的模型文件较大、迭代频繁或随镜像发布时超过平台镜像大小限制,建议模型与镜像分离。如果选择模型与镜像分离的部署方式,可以将模型存储在NAS文件系统或OSS文件系统中,详情请参见GPU实例模型存储最佳实践。

如何做模型预热,有没有最佳实践?

建议在/initialize方法中进行模型预热,仅当/initialize方法完成后,模型才会真正接入生产流量。更多信息,请参见以下文档:

  • 配置实例生命周期

  • 模型预热代码示例

GPU镜像启动报错:[FunctionNotStarted] Function Instance health check failed on port xxx in 120 seconds.

  • 问题原因:AI/GPU应用启动耗时过长,导致函数计算FC平台健康检查失败。其中导致AI/GPU应用启动耗时过长的常见原因是加载模型耗时过长,导致WebServer启动超时。

  • 解决方案:

    • 不要在应用启动时从公网动态加载模型,建议将模型放置在镜像中,或者文件存储NAS中,就近加载模型。

    • 将模型初始化放置在/initialize方法中,优先完成应用启动。即WebServer启动后,再加载模型。

      说明

      关于函数实例生命周期的详细信息,请参见配置实例生命周期。

我的函数端到端延迟较大,并且波动很大,需要怎么处理?

  1. 首先需要确认环境信息中镜像加速准备状态为可用。

  2. 确认NAS文件系统的类型。如果您的函数需要从NAS文件系统中读取数据,如读取模型,为了保证性能,强烈建议使用通用型NAS的性能型,不推荐使用容量型。更多信息,请参见通用型NAS。

无法找到NVIDIA驱动程序怎么办?

通过docker run --gpus all命令指定容器,并使用docker commit方式构建应用镜像时,构建的镜像会携带本地NVIDIA驱动程序信息,这将导致镜像部署到函数计算后驱动程序无法正常挂载。此时,系统无法找到NVIDIA驱动程序。

为了解决以上问题,函数计算建议您使用Dockerfile的方式构建应用镜像。更多信息,请参见dockerfile。

请您避免在容器镜像中添加特定驱动版本相关的内容,更多信息,请参见镜像使用说明。

使用Ada系列卡型,报错On-demand invocation of current GPU type is disabled...如何处理?

遇到报错ResourceExhausted:On-demand invocation of current GPU type is disabled, please provision instances instead通常是由于实际请求数超过函数当前预留实例可以承载的最大请求数量,由于Ada卡型仅支持预留模式,建议您根据实际请求数增加函数预留实例个数。

使用闲置GPU实例有哪些注意事项?

  • CUDA版本

    推荐使用CUDA 12.2以及更早的版本。

  • 镜像权限

    推荐在容器镜像中以默认的root用户权限运行。

  • 实例登录

    闲置GPU实例中,由于GPU冻结等原因,暂不支持登录实例。

  • 实例优雅轮转

    函数计算平台会根据系统负载对闲置GPU实例进行优雅轮转。为确保服务质量,建议在函数实例中加入模型预热/预推理生命周期回调功能,以便新实例上线后可立即提供推理服务,详情请参见模型服务预热。

  • 模型预热/预推理

    闲置GPU实例中,为保证实例的首次唤醒延迟符合预期,建议您在业务代码中使用initialize生命周期回调功能来进行模型预热/预推理,详情请参见模型服务预热。

  • 预留配置

    切换闲置模式开关时会使该函数现有的GPU预留实例优雅下线,预留实例数短暂归零,直到新的预留实例出现。

  • 关闭推理框架内置的Metrics Server

    为提升闲置GPU的兼容性和性能,建议关闭推理框架(如NVIDIA Triton Inference Server、TorchServe等)内置的Metrics Server。

相关文章

如何监控函数执行? 2025-04-16 14:37

函数计算每次执行都会生成执行计量数据,并将其输出。具体信息,请参见

可执行文件在本地测试正常,但在函数计算的运行环境中执行时却返回permission denied报错,我该怎么办? 2025-04-16 14:37

问题现象 当我在本地使用Windows操作系统或macOS操作系统开发函数时,可执行文件在本地测试正常,但当我将函数部署到

如何存储函数程序产生的较大文件? 2025-04-16 14:37

如果需要在磁盘中存储较大文件,例如,超过500 MB的文件,您可以按照以下方式处理: 直接在

在程序运行过程中,能从哪些接口获取到实际使用的内存? 2025-04-16 14:37

您可以通过以下两种方式查询实际使用的内存: 方式一:函数调用的返回信息中包含最大内存消耗等信息。 方式二:在性能监控指标中可以查看连

函数可以相互调用吗? 2025-04-16 14:37

您可以采用以下方法实现函数间相互调用。 通过自定义域名的方式。为函数绑定自定义域名,然后通过固定域名访问函数。具体操作,请参见配置自定义域名。

函数如果出现死循环,如何终止函数进程? 2025-04-16 14:37

死循环可以分为两种情况: 情况一:单个函数运行逻辑出现死循环。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1