为了账号安全,请及时绑定邮箱和手机立即绑定

OrangePi AiPro:评测与使用指南

我不知道该怎么称呼这篇关于这块板的评论才合适。最中国风格的板?最神秘的?最具争议性的?
不管怎么说——这绝对是其中之一最有趣的!

橙派 AI Pro

我现在用的最好的Edge板用于计算机视觉和LLM大概是这样的:

  1. Jetson Orin(Nano性能较弱,不过其他型号还可以)
  2. 基于Intel的(具体哪款都行)
  3. Hailo / RockChip(不清楚哪个更好些)

我们即将讨论的这块主板可能竞争第五(最有可能的是和高通)。但是否真的想这样做,尤其是在海外市场?

我们来聊一聊一款基于华为的电路板——OrangePi Ai Pro。这家公司被禁止在世界的一半地区运营。但它由中国纳税人的钱资助,而且它确实生产了一些不错的货品。

该图片来自这里。2020,现在稍微好一点了。

这块电路板专为中国市场打造,对于不会中文的人来说是个谜。不过,与一般的中文电路板不同,它还算过得去——嗯,差不多吧。

请注意,以下内容包含免责声明

我没有收到任何电路板。我的爱好是搞一些奇怪的电路板,看看机器学习在上面的表现,然后再将它们投入实际应用。在过去15年里,我处理过Blackfin和其他奇怪的电路板。看来Jetson在2014年左右崭露头角,RockChip则大约在3-4年前崭露头角。它们在计算机视觉领域都有先驱性的尝试和应用。

我在 YouTube 上做这些内容的视频,还在这里写文章。

在这次比较中,我会参考很多其他板块。关于这些板块的看法,可以在我的这篇2022年回顾中找到。

购买商品

这块板子显然不是官方对外发货,但是你可以从Aliexpress上买到。之前OrangePi 5 pro有很多混淆,但现在所有的描述都准确了。

芯片组

这块板是基于昇腾处理器Ascend310B4的。
310系列本身是在2018年面世的。据说B4是两年前生产的(但这并不确定)。
一年前,官方发布了Atlas 200I DK A2开发板,它已经预装了Linux和Python。
但直到现在,所有能买到的同类产品大约500欧元,这个价格相对较高。而OrangePi则更便宜。

第一个文档

官方网站上的文档看起来是这样的:this

没有英文内容。所有文件一如既往都只能在百度上找到。

正当我写这篇文章时,OrangePi官网上出现了一个英文首页,但下载链接仍然无效或为空。

主要指南可以在多个网站上找到,例如 这里。这显然是用中文写的。还有一个半官方的网站 这里。该网站并不包含所有内容,并且不是所有人都能从那里下载。

有一个关于 Atlas 200I DK A2 的超级有用的网站。所有的软件都是一样的,但我还没有尝试从那里下载镜像。它比另一个大1GB,所以我不会从那里获取。

当然,最好的方式是从百度下载。不过,我有一个粉丝来自KAVABANGA.TEAM,和我分享了最新版本,所以这里就有。但是迟早会过时的。

要闪烁了

文档建议用Balena Etcher来写入镜像,但对我来说不起作用。最后,我用RPi imager把镜像写入了。Ascend网站上有个工具,不过它是中文的,所以我还没有试。

这里有很多选择。这里也有一些 M.2 和 eMMC 的示例。

启动

启动这一步很明显,我更喜欢用SSH。

密码在这里 :这里->

用第二个。那么,工作目录就是示例文件夹。

你可以通过USB接口、COM端口或显示器进行连接(微笑)

让我们来看一下第一个例子

我真的喜欢最近中国人制作的例子。即使是在几乎不可能工作的板块中,也能找到一个只需两步就能搞定的漂亮例子——这种例子已经变得很常见了:

  • Grove Vision AI(这块板子更像是个玩具,但示例可以直接运行。)
  • MilkV,一块卖五美元的板子。一个示例可以直接运行,但要运行另一个则会比较麻烦。
  • MaiX -III。所有的示例都用Python运行,但是每个网络都是用C++编译的二进制文件,里面包含了网络权重和代码。

那么,两个命令:

首先,切换到 samples/notebooks/ 目录下。然后,运行 start_notebook.sh 启动脚本。

(您可以配置笔记本电脑以从外部访问登录,但我更喜欢通过隧道来连接)

就这样好了。你可以从那里运行十几个不同的样本哦!

yolov5

ResNet-50(一种深度学习的残差神经网络模型)

这对于初学者来说是在远程板上运行神经元最简单和最方便的方法。当然,专业人士会使用VSCode来连接。但当你需要快速操作并理解时,直接操作更方便。

大多数关于任何AI开发板的指南在这里结束,但我们的才刚开始。

我们来聊聊如何将你的模型导出到电路板上

导出

如果你查看相关文档里边的,你找不到这些术语:ONNX、TensorFlow或PyTorch。

这里找不到ONNX、TensorFlow或PyTorch这些词。

看起来这可能会让我有点难过,不过在官方示例中提到了导出的过程。而且它似乎在实际板上运行得很好。

咱们不妨假装咱们能不用谷歌翻译就能翻译,使句子更简洁流畅。

这很罕见。好像只有 Nvidia 喜欢在板子上做转换。其他大多数制造商更喜欢在主机上做数据转换。

实际上,它在至少8GB的板子上都运行不了。详情请看这里:here

然而,这个解决方案可能不管用,因为参考的电路板可能不一样。

在OrangePi的例子中,你可以看到尝试调整swap。但这没有成功。这个过程导致了重启,可能是由于过热导致的。我稍后再具体说说。

理论上,像这样应该可以行得通:

    . /usr/local/Ascend/ascend-toolkit/set_env.sh  # 加载环境变量配置文件  
    export PYTHONPATH=/usr/local/Ascend/thirdpart/aarch64/acllite:$PYTHONPATH  # 设置PYTHONPATH环境变量  
    atc --model=yolov5s.onnx --framework=5 --output=yolov5s_bs1 --input_format=NCHW --soc_version=Ascend310B4 --input_fp16_nodes="images"  # 使用atc工具将模型转换为Ascend310B4支持的格式,输入格式为NCHW,SoC版本为Ascend310B4,输入节点使用16位浮点数

让我们把这个留作作业,给那些有16GB板的用户。

哇哦哇哦!完成文章之后,我发现解决方法。得切换到单核。然后内存占用就减少到原来的四分之一。这样一切都能顺利运行了:

终于要开始干活了

这是开始前的准备工作:

    export TE_PARALLEL_COMPILER=1  
    export MAX_COMPILE_CORE_NUMBER=1

将环境变量设置为禁用并行编译和限制编译核心数为1

请注意,OrangePi AiPro 是 Ascend310B4 而不是如示例所示的 Ascend310B1。你可以通过运行命令 “npu-smi info” 来确认这一点,这个命令会显示具体的型号信息。

我觉得 Orange Pi 团队还没看过他们的手册。

实际导出

对于我们这些普通用户来说,如果有8GB内存的机器,还有一个选择。可以在主机上安装CANN-Toolkit并通过它来导出。需要注意的是,系统需要至少配备16GB的内存——更多的内存会更好。

  1. 下载最新版本的工具包。我最初下载的是6.2版本,但都没能成功。请注意!
  2. 设置依赖项,这里有很多依赖项(点击这里查看详情:链接)。
# 更新软件包列表
sudo apt-get update  
# 安装开发工具
sudo apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev openssl libsqlite3-dev libssl-dev libffi-dev libbz2-dev libxslt1-dev unzip pciutils net-tools libblas-dev gfortran libblas3

如果没有安装 Python3 和 pip3,请安装。如果已经安装了,请记得:

在终端中运行以下命令以升级pip:
pip3 install --upgrade pip

但是对于这部分指南,华为应该有人要被解雇了。你应该使用Docker,许多硬件制造商已经开始这样做了。比如Rockchip也开始这样做了,Hailo也是如此。

以下命令用于安装Python库:

pip3 install attrs  
pip3 install numpy  
pip3 install decorator  
pip3 install sympy  
pip3 install cffi  
pip3 install pyyaml  
pip3 install pathlib2  
pip3 install psutil  
pip3 install protobuf  
pip3 install scipy  
pip3 install requests  
pip3 install absl-py  

这些库是运行项目所需的。attrs是一个用于定义可选参数的库。

没有指定版本,甚至没有现成的 Requirements.txt 文件也无所谓。至少需要安装小于2.0版本的 numpy。2.0版本不支持。我用1.26.0版本让它能正常运行。明天又会怎样呢?

现在只剩下以下:

请运行下面的命令来安装Ascend-cann-toolkit:

    chmod +x Ascend-cann-toolkit_6.2.RC2_linux-x86_64.run  # 这将赋予脚本可执行权限
    ./Ascend-cann-toolkit_6.2.RC2_linux-x86_64.run --install  # 这将开始安装过程

基本上,一切都准备好了,。在导出前,需要调整环境:

source /home/ubuntu/Ascend/ascend-toolkit/set_env.sh  # 源文件路径
export LD_LIBRARY_PATH=/home/ubuntu/Ascend/ascend-toolkit/7.0.RC1/tools/ncs/lib64:$LD_LIBRARY_PATH  # 设置 LD_LIBRARY_PATH
export PATH=/home/ubuntu/Ascend/ascend-toolkit/7.0.RC1/tools/ncs/bin/:$PATH  # 设置 PATH

不同的指南可能有不同的值。这是我使用的方法。它被安装在/home/ubuntu/Ascend/ 目录下。

虽然有警告,但还是能工作!

别害怕,没事!

我的感觉是

这远远不是最差的板块。最终指南相当简单明了,没有任何玄妙之处。

但是,到目前为止,没有任何现成的指南。系统文件需要从互联网各处搜集,尽管我已经知道需要寻找的内容。搜索和查找谷歌无法处理的bug,在中国的搜索引擎中尤其困难,简直让人头疼。

我会给它打6到7分(满分是10分)。我差不多需要5到6个小时来完成。

声明。根据我在其他论坛的经验,这份指南目前为止还有效,但估计半年之内就会失效。

层叠支持

所有的基本卷积网络都表现得很好,甚至一些Transformer也有效(Dinov2已验证)。现在已经到了这种程度,已经开始需要处理文本了。YoloWorld则无法开箱即用。

与LLM合作还不是很清楚。不支持Torch 和 Torch.jit。支持的有:

  • Onnx (深度学习框架)
  • Tensorflow (深度学习框架)
  • Caffe (深度学习框架)
  • MindSpore (深度学习框架)

但是,正如你意识到的,但大多数大模型在ONNX中也无法很好地导出。所以,我认为限制可能更多地出现在这一层。纯卷积还好,但模型中的所有逻辑都需要移除。

我只部分成功地将Whisper从这里(链接)部分导出。

我们来看看速度

这块板子真棒!

我使用FP16进行所有测量。我们先从这个Yolov5说起。

    预处理时间:  
    0.0060651302337646484  
    推理时间:  
    0.04085516929626465  
    NMS 处理时间:  
    0.0065386295318603516

看看这里的比较(点击这里)这里(抱歉,我还没来得及添加新的项目)。这些电路板(board)更快。

  • Jetson Orin
  • RK3588 在 12 线程模式下(由于棘手的 3 核 NPU)。单线程时 RK3588 速度较慢
  • Hailo-8(但 Hailo 是 int8,非常依赖总线速度)。例如,但对现代的 RPi Ai Kit 来说会更慢。
  • MAIX-III(但其实用性差,仅支持 int8 数据类型)
  • Intel 处理器(但需要是比较新的型号处理器)

与此同时,在简单性、可用性、性能、价格和服务和支持方面,唯一的直接竞争对手是RK3588(不过我更喜欢它一点,这以后再说)。

几个其他有用的网络平台,

    ResNet-50 约 12毫秒 (12ms)  
    Dinov2S (224*224) 约 46毫秒 (46ms)  
    Dinov2B (224*224) 约 111毫秒 (111ms)

真的不错。对于Dinov2来说,它比RK3588快多了,而且是的,不同的平台在不同的网络上表现各异,这是正常的。

重要提示:增加批量大小不会加快处理速度

电能消耗

我有点困惑。空载功耗是七瓦,而npu全负荷时的消耗是九瓦。这与其他我测试过的主板完全不同。

空闲时的无用消费

气温

温度也特别奇怪。我没用冷却器测试过。主板在空闲模式下就已经很热了。而且在运行推理时,温度几乎没变。

我的看法是关于易用性的

哦!这里就变得有趣了。我会根据我经历的一切来谈。

选板时,重要的是要考虑它能解决什么问题以及适合用在哪里。

没有人会在欧洲或美国的关键基础设施(比如医院、智慧城市等)中使用中国生产的电路板。因此,那里我们用Jetsons、Hailo和Intel的产品。你也可以选择其他一些板子。

使用中文标识对于私人企业来说是很正常的。这就是为什么简单的场合(如宠物监控、智能商店、私人停车场等)经常使用RockChip,这是一种经常被这些场景使用的芯片品牌。

但是OrangePi AiPro确实遇到了一些麻烦。

  • 它并不能在所有地方使用。
  • 即使在可以使用它的国家,情况也有很大疑问,华为并没有将这些国家作为目标市场。
  • 他们甚至连英语文档都不尝试编写。

看起来这三个问题已经足够让你们在几乎所有情况下都选择瑞芯微芯片,除了超大订单(在那种情况下,你们需要考虑不同的参数)。

你可以在YouTube上找到这个视频!

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消