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、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。

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

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。 &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
23天前
|
人工智能 并行计算 安全
从零到一,打造专属AI王国!大模型私有化部署全攻略,手把手教你搭建、优化与安全设置
【10月更文挑战第24天】本文详细介绍从零开始的大模型私有化部署流程,涵盖需求分析、环境搭建、模型准备、模型部署、性能优化和安全设置六个关键步骤,并提供相应的示例代码,确保企业能够高效、安全地将大型AI模型部署在本地或私有云上。
207 7
|
10天前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
36 9
|
13天前
|
存储 运维 安全
探索操作系统:从理论到实践
【10月更文挑战第34天】操作系统,这个我们每天都在使用,却很少深入了解的神秘世界,究竟隐藏着怎样的秘密?本文将带你走进操作系统的世界,从理论到实践,一探究竟。我们将一起探讨操作系统的基本概念、功能、以及它在计算机系统中的重要角色。同时,我们还将通过代码示例,深入理解操作系统的工作原理和实现方式。无论你是计算机专业的学生,还是对操作系统感兴趣的普通用户,这篇文章都将为你打开一扇通往操作系统世界的大门。
|
13天前
|
安全 网络协议 Linux
Linux操作系统的内核升级与优化策略####
【10月更文挑战第29天】 本文深入探讨了Linux操作系统内核升级的重要性,并详细阐述了一系列优化策略,旨在帮助系统管理员和高级用户提升系统的稳定性、安全性和性能。通过实际案例分析,我们展示了如何安全有效地进行内核升级,以及如何利用调优技术充分发挥Linux系统的潜力。 ####
33 1
|
20天前
|
人工智能 弹性计算 架构师
如何推进软硬件协同优化,点亮 AI 新时代?看看这些大咖怎么说
围绕 AI、操作系统、 Arm 生态等关键技术和领域,深入探讨了 AI 技术与操作系统的融合。
|
23天前
|
人工智能 安全 网络安全
揭秘!大模型私有化部署的全方位安全攻略与优化秘籍,让你的AI项目稳如磐石,数据安全无忧!
【10月更文挑战第24天】本文探讨了大模型私有化部署的安全性考量与优化策略,涵盖数据安全、防火墙配置、性能优化、容器化部署、模型更新和数据备份等方面,提供了实用的示例代码,旨在为企业提供全面的技术参考。
68 6
|
25天前
|
存储 人工智能 弹性计算
基于《文档智能 & RAG让AI大模型更懂业务》解决方案实践体验后的想法
通过实践《文档智能 & RAG让AI大模型更懂业务》实验,掌握了构建强大LLM知识库的方法,处理企业级文档问答需求。部署文档和引导充分,但需增加资源选型指导。文档智能与RAG结合提升了文档利用效率,但在答案质量和内容精确度上有提升空间。解决方案适用于法律文档查阅、技术支持等场景,但需加强数据安全和隐私保护。建议增加基于容量需求的资源配置指导。
94 4
|
25天前
|
安全 算法 Unix
深入浅出操作系统:从基础概念到实践应用
【10月更文挑战第22天】本文旨在以浅显易懂的语言,为读者揭开操作系统的神秘面纱。我们将从操作系统的基本概念出发,逐步深入其核心功能与设计哲学,并通过具体代码示例,展示操作系统如何在实际中发挥作用。无论你是计算机科学的学生,还是对技术有浓厚兴趣的爱好者,这篇文章都将为你提供一次轻松愉快的操作系统之旅。
36 4
|
23天前
|
人工智能 JavaScript 前端开发
利用 AI 进行代码生成:GitHub Copilot 的实践与反思
【10月更文挑战第23天】本文探讨了GitHub Copilot,一个由微软和OpenAI合作推出的AI代码生成工具,其核心功能包括智能代码补全、多语言支持、上下文感知和持续学习。文章介绍了Copilot在加速开发流程、学习新语言、提高代码质量和减少重复工作等方面的应用,并反思了AI在代码生成中的代码所有权、安全性和技能发展等问题。最后,文章提供了实施Copilot的最佳实践,强调了在使用AI工具时保持对代码的控制和理解的重要性。
|
27天前
|
人工智能
精通歌词结构技巧:写歌词的方法与实践,妙笔生词AI智能写歌词软件
歌词创作是音乐的灵魂,掌握其结构技巧至关重要。开头需迅速吸引听众,主体部分需结构清晰、情感丰富,结尾则要余韵悠长。无论是叙事还是抒情,妙笔生词智能写歌词软件都能助你一臂之力,提供AI智能创作、优化及解析等多功能支持,助你轻松驾驭歌词创作。

热门文章

最新文章

下一篇
无影云桌面