Anolis OS 23 基于 AMD 实例的 AI 推理优化实践 | 龙蜥技术

简介: 如何使用龙蜥社区容器镜像加速 AI 应用推理部署?

编者按:龙蜥操作系统 Anolis OS 23 是龙蜥社区基于操作系统分层分类理论,面向上游原生社区独立选型,全面支持智算的首款国内发行版,为开发人员提供了强大的 AI 开发平台,通过支持龙蜥生态软件仓库(EPAO),Anolis OS 23 实现了对主流 AI 框架的全面支持,使得 AI 开发更加便捷高效。本文将基于 AMD 实例介绍 Anolis OS 23 针对 AI 推理应用进行的专门优化,并通过最佳实践演示如何使用龙蜥社区容器镜像加速 AI 应用推理部署。

01 Anolis OS 23 加速 AI 应用部署

Anolis OS 23 中通过引入龙蜥生态软件仓库(EPAO),实现一键安装部署 AI 开发环境,解决了 AI 组件之间繁琐的依赖关系,加速 AI 应用的开发、部署流程。EPAO 仓库有以下特点:

  • EPAO 仓库支持开发者一键安装主流 NVIDIA GPU 驱动和 CUDA 加速库,为开发者节省驱动版本匹配和手动安装的时间。
  • EPAO 仓库提供对主流 AI 框架 PyTorch/TensorFlow 的版本支持,同时安装过程中自动解决 AI 框架的依赖问题,开发者无需进行额外编译,即可搭配系统 Python 环境进行快速开发。
  • EPAO 仓库中的组件在提供给开发者之前,均经过兼容性测试,开发者可以一键安装对应的组件,免去环境配置中可能出现的对系统依赖项的修改,提供使用过程中的稳定性。

EPAO 仓库当前支持的 AI 组件列表:

分类 名称 版本号
驱动 cuda 12.1.1
nvidia-driver 530.30.02
AI 框架 tensorflow 2.12.0
pytorch 2.0.1
onnx 1.14.0
CPU 场景模型加速

intel-extension-for-pytorch

2.0.100

intel-extension-for-tensorflow

1.2.0
NVIDIA 容器支持

nvidia-container-toolkit

1.13.1
libnvidia-container 1.13.1

在 Anolis OS 23 上部署 AI 环境只需三步,就可以安装适用于系统 Python 版本的 AI 开发环境:

1. 引入 EPAO。

dnf install -y anolis-epao-release

2.(GPU 实例)安装 NVIDIA 驱动及 CUDA。

dnf install -y kernel-devel-$(uname-r)
dnf install -y nvidia-driver nvidia-driver-cuda cuda

3. 安装 AI 框架。

dnf install -y pytorch
dnf install -y tensorflow

02 Anolis OS 23 加速 AI 应用推理

CPU 平台相较于 GPU 平台具备多种优势,包括灵活通用、低功耗高性能、易扩展和生态丰富等。在 AI 推理应用部署中,CPU 仍然是一种非常重要的硬件平台。然而,在 CPU 上部署 AI 推理应用并充分发挥其全部硬件性能,对开发者来说却是一个繁琐的问题。Anolis OS 23 针对这个问题,聚焦 AMD CPU 实例,引入了 AI 专门优化方案,更好的帮助开发者释放出硬件的全部性能,为开发者降本增效。

1.CPU 计算加速:现代 CPU 具备多种扩展指令集,可以大幅提高重复计算工作的并行度,然而这些指令集需要经过软件适配才能发挥作用。AMD 推出的 ZenDNN 加速库可以针对 AMD CPU 架构,充分利用扩展指令集优化 AI 推理计算,帮助 AI 开发者充分释放 AMD 平台的深度学习推理性能。ZenDNN 针对不同的推理工作负载均有优化效果,包括计算机视觉、自然语言处理和推荐系统。并且在最新的 ZenDNN v4.1 发布页面中,Anolis OS 已经正式获得 AMD 官方支持,成为首款支持 ZenDNN 的国内发行版。

2.内存分配加速:在进行 AI 推理过程中,大量的数据需要从内存中读写。使用内存加速技术可以提高内存访问的效率,减少数据访问的延迟和带宽限制。同时内存加速技术可以支持多线程并发访问内存,提高推理并行度和整体性能。tcmalloc 和 jemalloc 是两种常用的内存分配器,相比于 glibc 默认的 ptmalloc,这两种内存分配器针对多线程程序的内存管理进行了专门优化,以提高内存分配释放的性能。目前 Anolis OS 23 仓库中已经引入这两种内存分配器,开发者可以一键安装对应的组件。

在第八代 AMD ECS 实例上,安装相同版本的运行环境下,经过优化后的 Anolis OS 23 与 Ubuntu 部署相同大模型的推理性能对比:

  ChatGLM Qwen

Stable Diffusion

Ubuntu 22.04 4.985 byte/s 3.957 byte/s 0.604 pic/min
Anolis OS 23 23.811 byte/s 18.426 byte/s 1.443 pic/min

03 AI 应用推理优化实践

为了减少 AI 开发者在环境部署上的成本,龙蜥社区推出了针对 AMD CPU 优化的 AI 推理容器镜像,镜像中直接集成 ZenDNN CPU 计算加速以及 tcmalloc 内存加速,即开即用,将 AI 推理环境部署成本降低为 0。

在使用龙蜥社区容器镜像之前,需要安装 docker 运行环境,在 Anolis OS 23 上可以通过如下命令安装:

dnf install -y docker

具备 docker 运行环境后,开发者可以通过以下命令拉取镜像,并进入镜像进行 AI 开发部署:

docker pull registry.openanolis.cn/openanolis/pytorch-amd:1.12-23-zendnn4.0
docker run -d -it --name pytorch-amd -u $(id -u):$(id -g) -v $HOME:$HOME registry.openanolis.cn/openanolis/pytorch-amd:1.12-23-zendnn4.0
docker exec -it pytorch-amd /bin/bash

镜像中针对 AMD CPU 的优化已经默认生效,开发者只需要安装 AI 应用的依赖环境,就可以运行推理应用享受极致的性能体验。下面将以 ChatGLM-6B 模型为例,体验容器镜像带来的便捷(为了保证模型运行的稳定,容器内存至少分配 32 GB,存储空间至少分配 100 GB)。

1.在部署 ChatGLM-6B 之前,需要安装一些必备软件。

dnf install -y git git-lfs

2.下载 ChatGLM-6B 项目源码。

git clone https://github.com/THUDM/ChatGLM-6B.git

3.安装 Python 运行依赖(镜像已包含 PyTorch,无需另外安装)

pip install protobuf transformers==4.27.1 cpm_kernels gradio mdtex2html sentencepiece accelerate streamlit streamlit-chat

4.运行网页 DEMO。运行网页 DEMO 时,由于国内网络原因,可能会出现模型下载失败,可以多次重试,或手动下载模型文件并指定本地离线模型。

cd ~/ChatGLM-6B
streamlit run web_demo2.py --server.port 7860

网页版服务运行起来后,可以通过 http://<ECS EXTERNAL IP>:7860 访问服务。部署在 AMD CPU 实例上的聊天机器人再经过 Anolis OS 23 的专门优化后,对话非常流利,开发者无需 GPU 实例即可流畅开发 AI 应用,大大减少了开发成本与开发时间。

“更多龙蜥产品、生态、技术合作可发送邮件至邮箱 secretary@openanolis.org,我们会第一时间与您联系。”

—— 完 ——

加入龙蜥社群

加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。

社群.png

关于龙蜥

龙蜥社区是立足云计算打造面向国际的 Linux  服务器操作系统开源根社区及创新平台。龙蜥操作系统(Anolis OS)是龙蜥社区推出的 Linux 发行版,拥有三大核心能力:提效降本、更加稳定、更加安全。

目前,Anolis OS 23 已发布,全面支持智能计算,兼容主流 AI 框架,支持一键安装 nvidia GPU 驱动、CUDA 库等,完善适配 Intel、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。

加入我们,一起打造面向云时代的操作系统!

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
人工智能 数据安全/隐私保护
如何识别AI生成内容?探秘“AI指纹”检测技术
如何识别AI生成内容?探秘“AI指纹”检测技术
347 119
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
AI检测技术:如何识别机器生成的“数字指纹”?
AI检测技术:如何识别机器生成的“数字指纹”?
243 115
|
2月前
|
人工智能 自然语言处理 算法
揭秘AI文本:当前主流检测技术与挑战
揭秘AI文本:当前主流检测技术与挑战
332 115
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
如何准确检测AI生成内容?这三大技术是关键
如何准确检测AI生成内容?这三大技术是关键
595 116
|
2月前
|
机器学习/深度学习 人工智能 算法
AI生成内容的“指纹”与检测技术初探
AI生成内容的“指纹”与检测技术初探
199 9
|
2月前
|
人工智能 开发者
从技术到品牌:一个AI指令,让开发者也能写出动人的品牌故事
开发者常擅技术却困于品牌叙事。本文分享一套结构化AI指令,结合DeepSeek、通义千问等国产工具,将品牌故事拆解为可执行模块,助力技术人快速生成有温度、有逻辑的品牌故事框架,实现从代码到共鸣的跨越。
153 5
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
识破“幻影”:当前AI内容检测的技术与挑战
识破“幻影”:当前AI内容检测的技术与挑战
192 3
|
2月前
|
人工智能 自然语言处理
如何识别AI生成内容?这几点技术指标是关键
如何识别AI生成内容?这几点技术指标是关键
452 2
|
2月前
|
人工智能 搜索推荐 数据安全/隐私保护
AI检测技术:如何识别机器生成内容?
AI检测技术:如何识别机器生成内容?
137 0

推荐镜像

更多