RISC-V向量指令集的Compute Library函数库移植

作者:叶锡聪; 庄灿锋; 王宇木; 吴鹏飞; 潘志铭; 廖力灵; 孙轶群
来源:单片机与嵌入式系统应用, 2021, 21(01): 8-13.

摘要

ARM Compute Library是一类针对ARM Cortex-A系列CPU处理器和ARM Mali系列GPU特定优化的软件算法函数库,内部实现了卷积滤波器、卷积神经网络等算法,并且使用Cortex-A CPU NEON、Mali GPU的SIMD技术加速算法运行。RISC-V指令集作为一种开源的指令集,目前发布了相对稳定的SIMD指令集版本,并且C-SKY开源了支持v0.7.1intrinsics的GCC和QEMU。在这些基础上,本文尝试将ARM Compute Library函数库移植至支持RISC-V向量指令集,其中函数移植的核心思想是在不修改源文件的前提下,通过编写一个头文件,用宏定义把ARM NEON向量类型接口逐一替换成RISC-V intrinsics中定义的向量类型和向量函数接口。