问题描述
我正在尝试将 ARM 库移植到 RISC-V。源代码包括对 arm_neon.h 的引用。 RISC-V 工具链不包含任何 NEON 源,因此,我想知道是否存在任何等效项。
此外,关于将 ARM 库移植到 RISC-V 的任何资源?
提前谢谢。
解决方法
我想这取决于您所说的“等效”是什么意思。
RISC-V 还没有真正具有 SIMD。开发扩展程序,RISC-V V specification 正在进行中,AFAICT(从局外人的角度来看)已经非常接近了。该 API 可能更像 SVE,而不是 NEON,但如果您只是询问用于 RISC-V 的 SIMD API,那可能是您最好的选择。
NEON 还支持 64 位向量,这非常罕见。 MMX 支持它们,但没有人真正使用 MMX,英特尔也没有真正添加在 64 位向量上运行的新功能。如果您喜欢 64 位向量,那么您可能对 RISC-V P specification 更感兴趣。它还没有那么远,因此您可能需要等待更长时间才能获得硬件支持。
如果您关心的是匹配 API,这样您就不必手动移植代码,那么您最好的选择可能是我的项目之一,SIMD Everywhere (SIMDe)(因此显然接受建议)。实施 NEON 的工作正在进行中,但我们目前已经完成了一半多一点。目前还没有任何 RISC-V 特定的实现(我们可能会在编译器开始支持之后开始尝试添加支持),但是由于没有普遍可用的硬件来实现 V 规范,所以这并不重要。