Anolis OS 23 基于 AMD 实例的 AI 推理优化实践 | 龙蜥技术
  enzabimKG0ee 2023年11月19日 23 0

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




Anolis OS 23 基于 AMD 实例的 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 --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 应用,大大减少了开发成本与开发时间。


—— 完 ——


关于龙蜥


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

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

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


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
enzabimKG0ee