作者:黄明明
英特尔边缘计算创新大使
OpenVINO 工具套件基于OneAPI开发,可以加快高性能计算机视觉和深度学习应用开发速度的工具套件,适用于从边缘到云的各种英特尔计算平台上,帮助用户更快地将更准确的真实世界数据的AI推理结果部署到生产系统中。通过简化的开发工作流程,OpenVINO可赋能开发者在现实世界中部署高性能应用程序和算法。
今天我们将基于哪吒开发者套件平台来快速部署OpenVINO Java。
OpenVINO Java API 所在的GitHub 仓库地址:https://github.com/Hmm466/OpenVINO-Java-API (复制链接到浏览器打开)
哪吒(Nezha)开发套件以信用卡大小(85 x 56mm)的开发板-哪吒(Nezha)为核心,哪吒采用Intel N97处理器(Alder Lake-N),最大睿频3.6GHz,Intel UHD Graphics内核GPU,可实现高分辨率显示;板载LPDDR5内存、eMMC存储及TPM 2.0,配备GPIO接口(与树莓派兼容),支持Windows和Linux操作系统,这些功能和无风扇散热方式相结合,为各种应用程序构建高效的解决方案,适用于如自动化、物联网网关、数字标牌和机器人等应用。
由于默认的开发版使用的Ubuntu 18的系统,但是系统存在一个显示器只有800*600的Bug,为此我们需要烧录一个新系统进去。我们进入Ubuntu intel-iot系统的下载网址(https://ubuntu.com/download/iot/intel-iot)然后下载Intel Atom X7000E Series Processors (former codename Alder Lake N) 即可,因为哪吒平台是Alder Lake N 架构,所以下载对应平台的镜像即可(实际上下载正常的桌面版本即可)。将下载后的镜像文件刻录到U盘,按照正常的Ubuntu 系统安装即可。
由于默认的Ubuntu 安装之后不会带有Intel GPU驱动,为了让推理的速度能过更加快一点,所以我们这里需要额外安装一下,首先进入
https://docs.openvino.ai/archive/2023.1/openvino_docs_install_guides_configurations_for_intel_gpu.html
这里官网给出了两种安装方式:
A:通过deb安装
B:通过apt存储库。然后安装ocl-icd-libopencl1、intel-opencl-icd、intel-level-zero-gpu和level-zero apt软件包:
由于apt包需要配置仓库,所以我们直接通过deb方式安装。
1 mkdir neo
1.3.2 下载所有的deb包
1 cd neo
2 wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.15985.7/intel-igc-core_1.0.15985.7_amd64.deb
3 wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.15985.7/intel-igc-opencl_1.0.15985.7_amd64.deb
4 wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-level-zero-gpu-dbgsym_1.3.28454.6_amd64.ddeb
5 wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-level-zero-gpu_1.3.28454.6_amd64.deb
6 wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-opencl-icd-dbgsym_24.05.28454.6_amd64.ddeb
7 wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-opencl-icd_24.05.28454.6_amd64.deb
8 wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/libigdgmm12_22.3.11_amd64.deb
1.3.3 通过root安装所有的包
1 sudo dpkg -i *.deb
这个时候我们就可以使用GPU来推理了。
2.1.1 下载并配置JDK
JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Environment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK.
2.1.2 添加api到本地maven
添加OpenVINO Java API 至Maven(目前没有在meven中央仓库发布,所以需要手动安装)
2.1.3 clone OpenVINO Java API 项目到本地
git clone https://github.com/Hmm466/OpenVINO-Java-API
2.1.4 通过IDEA 或 Eclipse 打开
通过maven install 到本地maven 库中
1 [INFO] ------------------------------------------------------------------------
2 [INFO] BUILD SUCCESS
3 [INFO] ------------------------------------------------------------------------
4 [INFO] Total time: 14.647 s
5 [INFO] Finished at: 2023-11-02T21:34:49+08:00
6 [INFO] ------------------------------------------------------------------------
jar包会放置在
/{userHome}/.m2/repository/org/openvino/java-api/1.0-SNAPSHOT/java-api-1.0-SNAPSHOT.pom
OpenVINO 有两种安装方式: OpenVINO Runtime 和OpenVINO Development Tools。OpenVINO Runtime 包含用于在处理器设备上运行模型部署推理的核心库。OpenVINO Development Tools 是一组用于处理 OpenVINO 和 OpenVINO 模型的工具,包括模型优化器、OpenVINO Runtime、模型下载器等。在此处我们只需要安装 OpenVINO Runtime 即可。
2.2.1 下载 OpenVINO Runtime
访问 Download the Intel Distribution of OpenVINO Toolkit[5] 页面,按照下面流程选择相应的安装选项,在下载页面,由于哪吒使用的是 Ubuntu22.04,因此下载时按照指定的编译版本下载即可。
2.2.2 解压缩安装包
我们所下载的 OpenVINO Runtime 本质是一个 C++ 依赖包,因此我们把它放到我们的系统目录下,这样在编译时会根据设置的系统变量获取依赖项。
1 cd ~/Downloads/
2 tar -xvzf l_openvino_toolkit_ubuntu22_2023.3.0.13775.ceeafaf64f3_x86_64.tgz
3 sudo mv l_openvino_toolkit_ubuntu22_2023.3.0.13775.ceeafaf64f3_x86_64/runtime/lib/intel64/* /usr/lib/
git clone https://github.com/Hmm466/OpenVINO-Java-API
使用IDEA打开OpenVINO-Java-API项目
创建src/test/java/org.openvino.java.test.OpenVINOTest
编写测试代码:
1 OpenVINO vino = OpenVINO.load();
2 OvVersion version = vino.getVersion();
3 Console.println("---- OpenVINO INFO----");
4 Console.println("Description : %s", version.description);
5 Console.println("Build number: %s", version.buildNumber);
结果将输出
1 ---- OpenVINO INFO----
2 Description : OpenVINO Runtime
3 Build number: 2023.3.0-13775-ceeafaf64f3-releases/2023/3
在该项目中,我们基于英特尔开发套件哪吒为硬件基础实现了Java在 Ubuntu 22.04 系统上成功使用OpenVINO Java API,并且成功允许了Yolov8模型,验证了Java可以在各种硬件平台上快速部署和运行,同时简化了Java开发者对于AI类项目的上手难度。后续我还会将继续使用 OpenVINO Java API 在 英特尔开发套件上部署更多的深度学习模型。
全部0条评论
快来发表一下你的评论吧 !