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 |
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
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 开发者在环境部署上的成本,龙蜥社区推出了针对 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
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 应用,大大减少了开发成本与开发时间。