打印
[RISC-V MCU 应用开发]

在RISC-V CPU上运行OpenCV

[复制链接]
213|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
豌豆爹|  楼主 | 2023-7-11 11:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RISC-V是一个相对较新的平台,在物联网市场中越来越受欢迎。2020年,OpenCV开始支持该平台。
有效执行各种图像处理、计算机视觉和机器学习算法需要矢量/SIMD指令,许多现代CPU架构都提供了这些指令。在RISC-V的情况下,OpenCV依赖于所谓的V扩展(简称RVV)。在撰写本文时,该扩展的规范仍未最终确定。然而,一些工具(编译器、软件模拟器)已经可用,基于某些标准的草案版本的实际硬件正在准备推出。
尽管不同的CPU架构具有不同的矢量指令,但OpenCV中许多时间关键的内核都使用我们自己的跨平台Wide Universal Intrinsics进行优化——轻量级内联函数,具有统一的跨平台API和平台特定的实现(使用本机内部函数,例如x64平台上的SSE/AVX内部函数,ARM上的NEON内部函数等)。您可以在core模块中找到相应的实现:[color=rgb(12, 147, 228) !important]https://github.com/opencv/opencv/tree/master/modules/core/include/opencv2/core/hal。在RISC-V的情况下,我们提供了两个并行实现,intrin_rvv.hpp(基于中国科学院提供的最新草案标准)和intrin_rvv071.hpp(由[color=rgb(12, 147, 228) !important]平头哥半导体有限公司贡献:)。
为平头哥的玄铁910 CPU构建OpenCV:
从[color=rgb(12, 147, 228) !important]https://github.com/opencv
下载opencv和opencv_extra存储库的主分支。假设您将它们分别放在HOME/projects/opencv和HOME/projects/opencv_extra中。
从[color=rgb(12, 147, 228) !important]https://github.com/damonyu1989/Tools
下载工具链和qemu模拟器(除非您已经有真实的硬件进行测试)。解压工具,将它们放在某个目录中,例如/opt/rvv071,并将/opt/rvv071/bin添加到PATH中(例如在~/.bashrc中)。同时,设置OPENCV_TEST_DATA_PATH环境变量:
export PATH=/opt/rvv071/bin:$PATHexport OPENCV_TEST_DATA_PATH=$HOME/projects/opencv_extra/testdata
配置OpenCV(在Ubuntu 20.04 x64上测试):
mkdir $HOME/projects/build/opencv_rvv071cd $HOME/projects/build/opencv_rvv071cmake ../../opencv -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="../../opencv/platforms/linux/riscv64-0.7.1-gcc.toolchain.cmake" -DWITH_OPENCL=OFF -DBUILD_opencv_calib3d=ON -DBUILD_ZLIB=ON -DBUILD_PNG=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_WITH_INSTALL_RPATH=1 -DCMAKE_INSTALL_PREFIX=./installmake -j8make install # 可选
现在您可以在真实硬件或QEMU模拟器上运行测试。在后一种情况下,您可以使用以下命令运行:
cd binqemu-riscv64 ./opencv_test_core # 运行核心测试,您也可以运行imgproc、dnn等测试

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

497

主题

1873

帖子

4

粉丝