手把手教学攻略:如何在Anolis OS上部署OpenVINO深度学习模型? 原创

龙蜥社区OpenAnolis
发布于 2024-11-22 16:54
浏览
0收藏

近年人工智能的飞速发展离不开全球开源软件社区的共同努力。龙蜥社区是中国操作软件系统开源社区的领军者之一,发布了 12 款针对多种行业用户需求的操作系统商业版本。通过操作系统和 AI 框架的集成,更好的赋能 AI 开发者,更加方便快捷的进行行业 AI 应用的开发和部署,是龙蜥社区的重要目标。OpenVINO™ 是 Intel 发起的开源深度学习模型优化部署工具,几年来吸引了众多开源社区的合作和开发者共建。OpenVINO 和中国的开源操作系统社区合作,共同赋能 AI 开发者,更加方便快捷的开发和部署行业 AI 应用,是 OpenVINO 的重要目标。


龙蜥操作系统 Anolis OS 作为国内首个正式提供 OpenVINO 开发包和镜像的服务器端操作系统,推动国内 AI 推理生态和能力的升级。


目前 OpenVINO 已完成对于 Anolis OS 的适配,开发者可以利用 OpenVINO 工具套件在 Anolis OS 上部署以及加速深度学习模型的推理任务,目前该适配工作已通过龙蜥社区官方的兼容性认证,鉴于 OpenVINO 开源开放的特性,以及 Anolis OS 对于多硬件架构的支持,本次集成将构建一个完全自主的深度学习任务推理生态,完善人工智能上下游体系建设。


这里我们将演示如何基于 Anolis OS 23 docker 镜像 x86 平台上安装 OpenVINO,并运行深度学习模型推理任务。当然,您也可以在裸机上安装 Anolis OS,实现相同效果。

Anolis OS 安装镜像:

​https://gitee.com/link?target=https%3A%2F%2Fmirrors.openanolis.cn%2Fanolis%2F23%2Fisos%2FGA%2Fx86_64%2FAnolisOS-23.1-x86_64-dvd.iso​

1、拉取 docker 镜像并启动容器

# docker pull openanolis/anolisos:23

# docker run -it -v /srv/models/:/root/models \
--device=/dev/dri --ipc=host \
-e http_proxy=$http_proxy -e https_proxy=$https_proxy -e no_proxy=$no_proxy \
--name ov docker.io/openanolis/anolisos:23 bash

注意此处的 /srv/models 需要修改为本地宿主机路径,以便在容器内访问到外部文件或模型。同时, /dev/dri 为可访问的外部设备地址,如 GPU 等。

2、安装 GPU 驱动及图形计算库

为了在 Anolis OS 上安装 OpeenVINO 组件,首先启用 epao repo。执行如下命令,启用 epao repo。

# yum install -y anolis-epao-release

安装 x86 平台 GPU 驱动及图形计算库。

# yum install intel-gmmlib intel-gsc intel-igc-cm intel-igc-core intel-igc-opencl \
intel-level-zero-gpu intel-ocloc intel-opencl level-zero libmetee ocl-icd

安装第三方工具。

# yum install -y cmake gcc g++ wget

安装 clinfo 工具,查看当前设备中的 GPU 设备状态。

# yum install clinfo -y
# clinfo --list

手把手教学攻略:如何在Anolis OS上部署OpenVINO深度学习模型?-鸿蒙开发者社区

(图/打印系统中GPU硬件)

3、安装 OpenVINO 组件

通过 yum list all | grep openvino 命令我们可以查看 epao repo 中所有的 openvino rpm 组件包,开发者可以根据自己的模型格式和部署硬件平台,选择合适的前后端组件进行安装。

手把手教学攻略:如何在Anolis OS上部署OpenVINO深度学习模型?-鸿蒙开发者社区

(图/打印可安装的 OpenVINO 组件列表)

开发者可以通过以下命令安装最基本的 OpenVINO runtime 库,sample 组件以及 CPU 及 GPU plugin 等组件。

#wget https://storage.openvinotoolkit.org/repositories/open_model_zoo/2023.0/models_bin/1/resnet50-binary-0001/FP16-INT1/resnet50-binary-0001.bin

#wget https://storage.openvinotoolkit.org/repositories/open_model_zoo/2023.0/models_bin/1/resnet50-binary-0001/FP16-INT1/resnet50-binary-0001.xml

如果需要使用模型格式转化工具,或是直接读取第三方模型的格式的话,也可以安装指定的前端组件,例如 onnx 前端支持:

# yum install libopenvino-onnx-frontend

4、编译 OpenVINO 示例

当完成上述组件安装后,开发者可以通过 OpenVINO 自带的 C++ sample 示例,对安装进行验证。以下是容器中 sample 示例编译方式:

# cd /usr/share/openvino/samples/cpp/
# ./build_samples.sh

5、测试示例

完成sample示例编译后,我们可以 /root/openvino_cpp_samples_build/intel64/Release 目录下得到一系列基于 OpenVINO runtime 的可执行文件,我们可以运行其中的几个示例来确认各个组件是否能正常工作。

首先是 hello_query_device  设备查询示例,我们期望它可以打印当前环境中 OpenVINO 支持的所有硬件:

# cd /root/openvino_cpp_samples_build/intel64/Release
# ./hello_query_device

手把手教学攻略:如何在Anolis OS上部署OpenVINO深度学习模型?-鸿蒙开发者社区

(图/打印OpenVINO所发现的系统硬件)

此外,我们可以用 benchmark_app 工具评估 CPU 及 GPU 的推理性能是否符合预期,这里我们需要提前下载用于测试的 OpenVINO IR 模型:

#wget https://storage.openvinotoolkit.org/repositories/open_model_zoo/2023.0/models_bin/1/resnet50-binary-0001/FP16-INT1/resnet50-binary-0001.bin

#wget https://storage.openvinotoolkit.org/repositories/open_model_zoo/2023.0/models_bin/1/resnet50-binary-0001/FP16-INT1/resnet50-binary-0001.xml

通过以下指令我们可以分别评估模型在 CPU 及 GPU 上运行的推理性能:

#./benchmark_app -m resnet50-binary-0001.xml  -niter 1 -d CPU  -hint latency

手把手教学攻略:如何在Anolis OS上部署OpenVINO深度学习模型?-鸿蒙开发者社区

(图/CPU运行benchmark_app结果)

#./benchmark_app -m resnet50-binary-0001.xml  -niter 1 -d GPU  -hint latency

手把手教学攻略:如何在Anolis OS上部署OpenVINO深度学习模型?-鸿蒙开发者社区

(图/GPU运行benchmark_app结果)

最后,我们对模型的推理结果进行验证,这里参考 hello_classification 示例的说明文档,输入一张车辆图片进行验证。

hello_classification 示例说明文档:

​https://docs.openvino.ai/2024/learn-openvino/openvino-samples/hello-classification.html​

手把手教学攻略:如何在Anolis OS上部署OpenVINO深度学习模型?-鸿蒙开发者社区

(图/测试图片)


#wget https://storage.openvinotoolkit.org/data/test_data/images/car.bmp

#./hello_classification resnet50-binary-0001.xml coco.bmp CPU

手把手教学攻略:如何在Anolis OS上部署OpenVINO深度学习模型?-鸿蒙开发者社区

(图/Anolis OS运行目标分类结果)

对比宿主机在 Ubuntu 操作系统上的运行结果几乎是一致的,这意味着在 Anolis OS 上运行 OpenVINO 推理模型不会对模型精度产生影响

手把手教学攻略:如何在Anolis OS上部署OpenVINO深度学习模型?-鸿蒙开发者社区

(图/Ubuntu系统运行目标分类结果)

OpenVINO 在 2024 年,已经推出了 5 次版本更新,全面支持飞速发展的生成式AI,也会持续的和龙蜥开源社区进行更广泛的合作,共同推动 AI 的行业推广和落地。

附录:参考文档:

[1]. ​​https://openanolis.cn/​

[2]. ​​https://docs.openvino.ai/​

[3]. ​​https://gitee.com/anolis/intel-openvino/blob/master/doc/samples.md​

[4].​​https://docs.openvino.ai/2024/learn-openvino/openvino-samples/hello-classification.html​

OpenVINO 简介

OpenVINO™ 是一款开源深度学习模型优化部署工具,它由 Intel 发起,几年来吸引了众多开源社区的合作和开发者共建。

OpenVINO™ 可以极大地提升多种深度学习模型任务在数据中心和边缘计算的推理性能,使部署变得简单和高效。使用场景覆盖生成式AI模型,大语言模型,多模态模型和基础 AI 模型的丰富应用。OpenVINO™ 支持多种硬件架构,包括英特尔 CPU,GPU 和 NPU 的硬件平台,以及 ARM 架构的 CPU。可以通过 OpenVINO 及其工具链部署 AI 推理及模型服务。同时,OpenVINO 也集成/兼容广大 AI 生态框架,包括 ONNX,pytorch2.0, huggingface 等。OpenVINO 对多种操作系统提供支持,并提供 C/C++,python,C# 等多种语言的 API。关于更多 OpenVINO 的详细信息,请参考官方文档: ​​https://docs.openvino.ai/2024/index.html ​

Anolis OS 简介

龙蜥操作系统 Anolis OS 搭载了ANCK 版本的内核,性能和稳定性经过历年“双 11”历练,能为云上典型用户场景带来 40% 的综合性能提升,故障率降低 50%,兼容 Linux 生态,支持一键迁移,并提供全栈国密能力。

Anolis OS 23 是龙蜥社区推出的更安全、更稳定、更 AI 的操作系统,采用最通用的 Linux ANCK 6.6 内核,全面兼容国内外主流 CPU 架构,适配更新、更丰富的 AI 容器服务生态,在操作系统层面首次原生支持 AI 算力调用和应用。


—— 完 ——

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
    相关推荐