我正在为游戏制作一个利用iPhone上SIMD单元的向量/矩阵库。我该怎么做?我搜索了一些资料,现在我知道几个选项:
- 苹果公司的Accelerate框架(包括BLAS+LAPACK+...),适用于iPhone OS 4
- ARM的OpenMAX实现库
- GCC自动向量化功能
哪种方式最适合用于游戏的向量/矩阵库?
我使用内联汇编创建了一些经过NEON优化的Mat*Mat和Mat*Vec例程。它们是Oolong引擎的一部分,但它们在MIT许可下发布,因此您可以随意使用它们:
现在,苹果公司拥有<simd/simd.h>
库,它是优化的数学例程库,用于小向量、矩阵和四元数,作为您提到的加速框架的一部分。
看起来这可能是今天最简单的方法。
https://developer.apple.com/documentation/accelerate/simd?language=objc