一、概述
当今 AI 技术已无处不在,从智慧城市、工业 4.0 到自动驾驶与智慧医疗,人工智能不再只是理论,而是推动世界进步的核心引擎。然而,AI真正的挑战在于实时反应与低功耗运算,这也是边缘计算(Edge Computing)崛起的关键原因。虽然云端AI计算具备强大运算能力,但面临数据传输延迟与高带宽需求的瓶颈,导致许多需要毫秒级决策的应用,如自动驾驶车辆的行车识别、工业机械臂控制、监控系统实时警报,无法依赖云端响应。
为了让 AI 运算更接近数据源并提升实时性,MemryX 提出了专为边缘计算设计的AI加速解决方案。MemryX MX3 AI加速卡采用 BF16 浮点计算架构,突破传统边缘设备仅支持整数运算(INT8)的限制,在图像识别、语音处理与目标检测等高精度AI任务上展现卓越性能,提供5 TFLOPS/W的能效比与高达20 TFLOPS的运算能力,实现低延迟、高精度的AI推理。
除此之外,MemryX 也打造完整的开发生态系统,让开发者能够无缝整合 AI 模型的设计、编译、部署与优化包含 Neural Compiler(将 AI 模型转换为 DFP 格式)、Simulator(预测吞吐量与延迟)、Benchmark(性能基准测试)以及 Viewer(GUI 可视化工具),让 AI 应用开发更加直观高效。通过这些即插即用的开发工具,MemryX 能够帮助开发者快速部署 AI 模型,灵活适配 TensorFlow、PyTorch、ONNX 等主流框架,无需重新训练模型即可应用于各类边缘场景。
随着 AI 与 IoT 技术的融合加速,MemryX 以强大的计算能力与低功耗设计,驱动 AI 边缘计算新时代,为智慧城市、工业自动化与 AIoT 设备提供创新解决方案。MemryX 的目标不仅是提升 AI 推理性能,更是让 AI 计算变得简单、灵活、高效,成为 AI 开发者手中的关键武器,推动边缘智能技术的快速演进。
二、开发套件
MemryX 提供了一套 软件开发工具包(Software Development Kit)其中包含了编译工具(Neural Compiler Tool)、芯片模拟工具(Simulator Tool)、加速器应用工具(Accelerator)、可视化界面(Viewer)。目前此套件仅能应用于 PC 端,并支持Ubuntu 与 Windows 操作系统,其安装方式请按照以下步骤操作:
SDK 软件开发套件示意图 – 资料来源官方网站
1. 编译器(Neural Compiler)
神经编译器(Neural Compiler)为 MemryX 制式化的编译工具(建议在 PC 电脑上使用)能够将各种模块格式转换编译成DFP格式(Dataflow Program),通过此格式能够告诉 MX3 芯片如何配置核心以及如何将传入的模块架构与参数信息进行处理。同时支持多种机器学习框架,如TensorFlow、Keras、ONNX、Pytorch等。
各模块格式转换为 MemryX DFP 格式示意图
编译器细节能够分为四层,如下图所示,依次为
(1)框架接口:将模块形式转换为内部图(internal graph)的形式。
(2)图处理:通过重新拆解并优化内部图。
(3)Mapper:将内部图映射至最佳可配置的 MX3 硬件资源,以最大吞吐量(FPS)为目标。
(4)汇编器:生成 DFP 文件。
DFP文件生成示意图
单一模型应用(Single-Model)
使用方式:
句子: $ mx_nc -v -m <model>
-m, --model : 设置实际的模块路径,支持 .h5 / .pb / .py / .onnx / .tflite 格式
-g, --chip_gen:设置芯片的世代(默认值:mx3)
-c, --num_chips:设置芯片的数量(默认值:1)
-v:查看编译器程序信息。
※ 一颗 MX3 芯片约可以处理 10 MB 的数据量。
※ 更多操作,请参考官网软件开发工具包。
多模型应用(Multi-Model)
在众多使用AI应用场景下,难免会需要将多种模块应用至一个模块的情境例如检测人脸表情判断,需要先定位到人脸位置,再通过判断人脸的喜怒哀乐进行分类。
使用方法:
$ mx_nc -v -m <model_1> <model_2> <model_3>
多芯片应用(Multi-Chip)
编译器会自动将给定模型的工作负载分配到可用芯片上。
使用方法:
$ mx_nc -v-c 2-m <model_1> <model_2>
多流(Multiple Input Streams)& 共享输入流(Shared Input Stream)应用
通常每个模型是独立使用一个数据流。
在多个模型且相同输入流的情况下,编译器允许共同使用同一个输入。
使用方法:
$ mx_nc -v -m<model_1> <model_2> --models_share_ifmap
改变输入形状(reshape)
以下示例展示了如何从命令行为传递到神经编译器的单输入模型的典型情况提供输入形状。
使用方式(单一模块):
$ mx_nc -m <model> -是“300,300,3”
使用方式(多模块):
$ mx_nc -m <model_1> <model_2> -是“224,224,3”“300,300,3”
模组裁剪(Model Cropping)
在使用 AI 芯片时,难免会遇到必须要移除特定的架构层或运算单元(operators)才能更有效地发挥效能。因此,MemryX 也提供了这一功能,可以将模块拆分为图像前处理(Pre-Processing)、神经网络架构处理(Neural Network)、图像后处理(Post-Processing)等架构,能够将其分工交给图像处理单元 ISP(image signal processor)、图形处理器 GPU 或中央处理器 CPU,以实现更高效的异构多核运算。
自动裁剪使用方式:
$ mx_nc -g -m <model> -v --autocrop -so
-- autocrop:系统自动裁剪前后处理。
手动裁剪使用方式:
$ mx_nc -m <model> -v --so --outputs <layer> -v -so
-is, --input_shapes:设置输入端大小
--input_format:设置输入端格式(默认值:BF16)
--inputs:指定预处理裁剪框架的名称
--outputs:指定后处理裁剪框架的名称
-so:查看编译器程序的优化步骤
其运行结果如下,从图片上可以查看计算单元、权重内存等的使用量。
模块裁剪的示意图
2. 基准测试 (Benchmark)
基准测试(Benchmark)是 AI 芯片的标准工具之一,用来测试运行模块的性能。其中 MemryX 设计了用于 C/C++ 和 Python 的基准测试工具,分别是 acclBench 和 mx_bench。可以使用这些工具来测量 FPS 和延迟数据。
下载测试模块SSDlite-MobileNet-v2_300_300_3_tensorflow.zip
$ unzipSSDlite_MobileNet_v2_300_300_3_tensorflow.zip
(2)acclBench(C++)
acclBench [-h] [-v] [-d] [-m] [-n] [-f] [-iw] [-ow] [-device_ids] [-ls]
指令:
$ acclBench -d SSDlite_MobileNet_v2_300_300_3_tensorflow.dfp -f 100
(3) mx_bench (Python)
$mx_bench [-h] [-v] [-d] [-f]
3. 模拟器(Simulator)
模拟器(Simulator)为 MemryX 制式化的工具(用于 PC 电脑使用)提供高精度的模拟性能,能够准确模拟 MemryX AI 芯片的性能,并展示 FPS(帧数)和 Latency(延迟)的测试数据。
使用方法:
$ mx_sim -v -d <dfp>-f 4
-d, --dfp:设置实际的 DFP 文件路径
-f, --frames:设置模拟的帧数(随机数值)
-v:查看编译器程序信息。
--no_progress_bar:关闭进度条
--sim_directory:模拟的文件夹路径(默认值:./simdir)
※ 模拟器无法指定芯片的数量,必须由 dfp 所设置的芯片大小来决定。
模拟工具的示意图
来源出处 Memry 文件
4. 视觉化工具(Viewer)
可视化工具(Viewer)是 MemryX 提供的 GUI 界面,包含上述编译器、模拟器、加速器。
使用方法:
$ mx_viewer
编译器 :
步骤1:选择神经网络模型
步骤 2:选择目标系统
步骤 3:编译模块
步骤4:运行结果
模拟器 :
步骤 1:设置张数
步骤 2:运行模拟
步骤 3:查看结果
加速器
需要连接上实体的 MX3 EVK,其操作方式与模拟器相似。
5. 检视器(DFP Inspect)
检视器(DFP Inspect)为 MemryX 提供的一套检查 dfp 文件的工具。
使用方法:
$ dfp_inspect <dfp>
输出信息
● DFP
■ 使用的编译器版本
■ 编译日期和时间
■ 目标芯片数量
■ 目标架构生成
■ 模拟器配置与 MXA 硬件配置的文件大小(以 MB 为单位)
● 编译模型的文件名
● 主动输入和输出端口配置
示例 :
6. 开源模块资源(Model Zoo)
原厂官网也提供丰富的开源模块资源与分析,如下图所示。
模块分析
模块资源
三、结语
MemryX MX3+ AI 加速卡以其卓越的计算性能与低功耗特性,为 AI 开发者提供了一个强大且灵活的解决方案。更重要的是,内置完整的软件开发工具链,让开发者能够快速部署 AI 模型,同时轻松调整前后处理流程实现优化的 AI 推理性能。从模型转换到性能优化,MemryX 提供了一站式的开发支持,使 AI 开发更加高效且直观。
为了满足开发者的需求,MemryX 精心打造了一系列专业工具,包括 Neural Compiler、Simulator、Benchmark 和 Viewer。这些工具不仅功能强大,还以简单易用为核心设计理念。Neural Compiler 让模型转换变得快速且无缝;Simulator 可在部署前模拟运行性能,帮助开发者预测实际应用表现;Benchmark 提供详细的吞吐量与延迟分析;而 Viewer 则以可视化界面呈现数据,让开发过程更加直观。这些工具的整合,让开发者能专注于创新,而不必被繁琐的技术细节所困扰。
在实际测试中,MemryX 芯片展现了其卓越的性能与灵活性。在 C/C++ Python DEMO 测试中,单颗芯片即可同时处理多路摄像机流,并支持多个 AI 模型的并行运行,充分展现其在边缘计算场景中的优势。此外,MemryX 的自动化模型裁剪与编译流程,让开发者无需修改原始模型即可直接部署,显著降低了开发门槛,并大幅提升了开发效率。
随着 AI 技术的快速演进,MemryX 正引领边缘计算的技术潮流,为各行各业提供高性能、低功耗且灵活的 AI 解决方案。本篇所介绍的工具与应用示例,旨在帮助开发者快速掌握 MemryX MX3+ 的使用方法,让 AI 技术的应用更加普及化,推动智慧生活的实现。如果您对 MemryX 产品感兴趣,或希望获得更多技术支持与合作机会,请随时联系。联系伊布小编!谢谢
四、参考文件
[1]MemryX 官方网站
[2] MemryX开发者中心技术网站
[4] MemryX_示例
[5] 美通社 - MemryX宣布MX3边缘AI加速器正式投产
如有任何相关MemryX技术问题,欢迎在博文底下留言提问!
接下来还会分享更多MemryX技术文章 !!敬请期待【ATU Book-MemryX 系列】 !!