背景
2024年是大模型在边缘侧&端侧落地的第一年。从这一年开始,头部手机厂商在自己的旗舰机型中内置了3B以下的本地大模型,证明了3B以下大模型的商业落地可行性。
在装机量更大,应用更广泛的IoT领域,已有的主控模块,例如NAS、NVR、工控计算机等边缘计算网关设备,或者市面上各种SBC(单板计算),例如树莓派5、基于Intel N100的各种小盒子,为了进一步通过多模态大模型实现智能化升级改造,例如Function Call和视觉图像的语义理解,当前只能通过原有算力有限的CPU/GPU低效率的运行大模型。不仅无法部署业界主流的大模型或者推理能力更强的多模态大模型,同时还抢占资源有限的主控算力&带宽资源导致业务无法稳定运行,影响最终用户使用体验。
因此我们尝试解决一些行业智能化升级改造的痛点,给社区开发者提供更易用、更灵活的边缘侧AI算力扩容方案,联合硬件生态伙伴基于AX650N出了M.2智能推理卡。希望能给在边缘侧基于各种不同主控芯片平台进行创新算法、大模型算法部署的开发者,提供一种新的解决方案。推动“普惠AI”更进一步。
目标群体
希望通过M.2智能推理卡这样类似的解决方案,解决下列存在的问题。
SBC智能升级
SBC:Single Board Computer,单板计算机。以大家熟悉的树莓派(Raspberry Pi)为主以及国内的其他派,他们绝大多数采用arm架构的CPU。并不是说这些国内外的派算力差是劣势,毕竟SBC的主要价值并不是AI应用,只是在有些场景需要AI应用拓展的时候,在这些SBC中正好又预留了M.2 2280的安装位置,这时候就可以即插即用M.2智能推理卡。
为了应对这一块的潜在市场需求Raspberry Pi在今年上半年推出了基于以色列公司Hailo的M.2算力卡模组,但是目前市面上基于Hailo芯片的模组明显的缺陷是运行Transformer效率较低,不具备视频流编解码能力,也无法满足开发者社区对于运行Llama3、Qwen2.5这些主流的大模型的需求。
NVR/NAS智能升级
在家用NVR、NAS产品中,大多数都预留了为拓展硬盘存储容量的M.2 2280的安装位。在某些对个人隐私数据要求严格,不愿意将本地NVR、NAS数据上传到云端进行智能分析的场景,也是M.2智能推理卡的目前之一。
工控机改造
在工业控制领域,已有的工控机想部署最新的视觉类模型或者多模态大模型来提高业务精度。例如使用基于Transformer结构的DepthAnything、SAM实现更加准确的视频处理。原本的CPU算力有限,添加额外的算力配件就很有必要。
机器人领域
通过算力扩展,降低主控运行视觉感知算法的压力,特别是基于Vision Transformer的感知算法模型。释放主控平台的系统资源占用,提升稳定性和可靠性。
AIPC探路
通过M.2智能推理卡的解决方案,探索AIPC真实的算力需求门槛(不被某软提出的40T算力需求迷惑,盲目虚标算力……)。
规格参数
项目 | 描述 |
处理器 | Octa-core Cortex-A55@1.7GHz |
内存 | 4GiB or 8GiB,64bit LPDDR4x |
存储 | 16MiB,Nor Flash |
智能 |
18TOPs@Int8,72TOPs@Int4; 支持CNN、Transformer模型部署; 支持LLM、VLM部署 |
视频编码 | H.264/H.265,16路1080@30fps编码 |
视频解码 | H.264/H.265,32路1080@30fps解码 |
Host适配 | 支持Intel、AMD、NXP、Xilinx、Raspberry Pi、Rockchip等 |
Host系统 |
Linux:Ubuntu、Debian、CentOS等; Windows(适配中) |
外形尺寸 | M.2 2280,M Key |
工作电压 | 3.3 V |
系统功耗 | <8 w |
已验证平台
项目 | 备注 |
主控平台 | RaspberryPi5、Radxa 5B、OrangePi5、Firefly3576、Firefly3568、Intel、AMD、NXP…… |
主控系统 | Ubuntu24.04、Ubuntu22.04、Debian12、OpenKylin、OpenEuler…… |
软件架构
为了做到“即插即用”,我们推出了AXCL的软件架构。AXCL是用于在Axera芯片平台上开发深度神经网络推理、转码等应用的C、Python语言API库,提供运行资源管理,内存管理,模型加载和执行,媒体数据处理等API,其逻辑架构图如下图所示:
更多AXCL的架构详情请参考《AXCL简介》。
快速安装
以受众群体最广的树莓派5为例,介绍在树莓派5上
安装M.2智能推理卡
搭建M.2智能推理卡的运行环境
运行Ultralytics的YOLO11、多模态大模型 InternVL2-1B、Whisper
硬件安装
在树莓派5上安装M.2智能推理卡时,首先需要准备一块M.2 HAT+扩展板。参考官方链接,M.2 HAT+的官方版本只支持2230、2242的M.2 M Key卡,通常 M.2卡是2280的,您可能需要考虑购买第三方的支持 2280长度的M.2 HAT+扩展板。
步骤1:准备材料
步骤2:安装完成
软件安装
树莓派5上安装M.2卡固件步骤详情可以参考《AXCL安装》。
deb包安装完成之后,可以使用lspci命令检查加速卡是否正确被识别:
axera@raspberrypi:~ $ lspci 0000:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21) 000000.0 Multimedia video controller: Axera Semiconductor Co., Ltd Device 0650 (rev 01) 000100.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21) 000100.0 Ethernet controller: Raspberry Pi Ltd RP1 PCIe 2.0 South Bridge
也可以使用axcl_ut_xxx等单元测试用例,确保M.2卡各项功能运行正常。
(base) axera@raspberrypi:~ $ axcl_ut_ axcl_ut_cmm axcl_ut_npu axcl_ut_pool axcl_ut_rt_engine axcl_ut_rt_stream axcl_ut_vdec axcl_ut_ive axcl_ut_package axcl_ut_rt_context axcl_ut_rt_init axcl_ut_socket_client axcl_ut_venc axcl_ut_msys axcl_ut_pcie_rc axcl_ut_rt_device axcl_ut_rt_memory axcl_ut_socket_server
或者使用大家都熟悉的类似nvidia-smi的小工具 axcl-smi查询板卡状态。
(base) axera@raspberrypi:~ $ axcl_smi +------------------------------------------------------------------------------------------------+ | AXCL-SMI V2.18.0_20241204020159 Driver V2.18.0_20241204020159 | +-----------------------------------------+--------------+---------------------------------------+ | Card Name Firmware | Bus-Id | Memory-Usage | | Fan Temp Pwr:Usage/Cap | CPU NPU | CMM-Usage | |=========================================+==============+=======================================| | 0 AX650N V2.18.0 | 0000:01:00.0 | 153 MiB / 954 MiB | | -- 39C -- / -- | 0% 0% | 18 MiB / 3072 MiB | +-----------------------------------------+--------------+---------------------------------------+ +------------------------------------------------------------------------------------------------+ | Processes: | | Card PID Process Name NPU Memory Usage | |================================================================================================|
NPU示例
AXCL NPU示例分别从Ultralytics YOLO11、InternVL2-1B、Whisper-Small三个比较有代表性的模型进行展示。
YOLO11
类似YOLO11这样简单的模型示例,我们提供了axcl-samples开源项目,该项目用最简单的方式展示常用的开源模型,例如Ultralytics的YOLO系列,DepthAnything,YOLO-Worldv2等等。基于Ultralytics YOLO11系列模型详细的模型导出、量化、编译的流程请参考《基于AX650N部署YOLO11》。
(https://zhuanlan.zhihu.com/p/772269394 )
(base) axera@raspberrypi:~/temp $ ./axcl_yolo11 -i ssd_horse.jpg -m yolo11x.axmodel -------------------------------------- model file : yolo11x.axmodel image file : ssd_horse.jpg img_h, img_w : 640 640 -------------------------------------- post process cost time:1.44 ms -------------------------------------- Repeat 1 times, avg time 24.69 ms, max_time 24.69 ms, min_time 24.69 ms -------------------------------------- detection num: 6 17: 96%, [ 216, 71, 423, 370], horse 16: 93%, [ 144, 203, 196, 345], dog 0: 89%, [ 273, 14, 349, 231], person 2: 88%, [ 1, 105, 132, 197], car 0: 82%, [ 431, 124, 451, 178], person 19: 46%, [ 171, 137, 202, 169], cow
InternVL2-1B
InternVL2是由上海人工智能实验室OpenGVLab发布的一款多模态大模型。
InternVL2-1B的详细模型导出、量化、编译的流程请参考《基于AX650N/AX630C部署多模态大模型InternVL2-1B》
(https://zhuanlan.zhihu.com/p/4118849355)
拷贝相关文件到树莓派上
输出结果
(base) axera@raspberrypi:~/internvl2-1b-448-ax650 $ ./run_internvl2_448_pcie.sh [I][ Init][ 135]: LLM init start 100% | ████████████████████████████████ | 27 / 27 [8.99s<8.99s, 3.00 count/s] [I][ Init][ 292]: max_token_len : 1023 [I][ Init][ 297]: kv_cache_size : 128, kv_cache_num: 1023 [I][ Init][ 305]: prefill_token_num : 320 [I][ Init][ 307]: vpm_height : 448,vpm_width : 448 [I][ Init][ 389]: LLM init ok Type "q" to exit, Ctrl+c to stop current running prompt >> who are you? image >> [I][ Run][ 626]: ttft: 425.78 ms I am an AI assistant whose name is InternVL, developed jointly by Shanghai AI Lab and SenseTime. [N][ Run][ 751]: hit eos,avg 29.24 token/s prompt >> 图片中有什么? image >> ./ssd_car.jpg [I][ Encode][ 468]: image encode time : 4202.367188 ms, size : 229376 [I][ Run][ 626]: ttft: 425.97 ms 这张图片展示了一辆红色的双层巴士,巴士上有一个广告,广告上写着“THINGS GET MORE EXCITING WHEN YOU SAY YES”(当你说“是”时,事情会变得更加有趣)。 巴士停在城市街道的一侧,街道两旁有建筑物和行人。图片中还有一位穿着黑色外套的女士站在巴士前微笑。 [N][ Run][ 751]: hit eos,avg 29.26 token/s prompt >> q (base) axera@raspberrypi:~/internvl2-1b-448-ax650 $
Whisper
Whisper是由OpenAI开源的一个自动语音识别(ASR)方案,它在从网络上收集的68万小时多语言和多任务监督数据上进行了训练。它展示了使用如此庞大和多样化的数据集可以提高对口音、背景噪音和技术语言的鲁棒性。
运行结果
处理4秒的音频数据,只需要不到0.8s,效率很高。
(base) axera@raspberrypi:~/qtang/whisper.axcl/install $ ./whisper -w ../demo.wav encoder: ../models/small-encoder.axmodel decoder_main: ../models/small-decoder-main.axmodel decoder_loop: ../models/small-decoder-loop.axmodel wav_file: ../demo.wav language: zh Load encoder take 3336.25 ms Load decoder_main take 6091.89 ms Load decoder_loop take 5690.05 ms Read positional_embedding Encoder run take 190.26 ms First token: 17556 take 51.49ms Next Token: 20844 take 30.15 ms ...... Next Token: 46514 take 30.17 ms Next Token: 50257 take 30.15 ms All Token: take 503.68ms, 31.77 token/s All take 735.09ms Result: 甚至出现交易几乎停滞的情况 (base) axera@raspberrypi:~/qtang/whisper.axcl/install $
性能测评
这里我只横向对比等价位的M.2智能推理卡与 Hailo8L M.2算力卡的差异。
常规模型推理性能归一化帧率比较
后续计划
AX650N已适配的各种创新算法模型依次迁移到 AXCL上,例如SAM、CLIP、StableDiffusion1.5、MiniCPM-V、Qwen2-VL、FlashOCC、BEVFormer等
持续优化AXCL上的大模型推理效率,例如将 InternVL2-1B中的图片编码耗时缩小到500ms以内
基于AXCL的软件体系,适配更多有趣的前沿视觉、音频、大模型算法
释放Cadence VQ7双核DSP的API、Python API和FFmpeg硬件加速库
全部0条评论
快来发表一下你的评论吧 !