【发布时间】:2010-07-26 10:58:21
【问题描述】:
我正在使用基于 ARM Cortex-A8 的处理器,我有几个地方可以计算 3x3 矩阵逆运算。
由于 Cortex-a8 处理器有一个 NEON SIMD 处理器,我有兴趣将这个协处理器用于 3x3 矩阵求逆,我看到了几个 4x4 实现(英特尔 SSE 和 freevec),但我在哪里没有看到 3x3使用 SIMD 指令执行矩阵逆运算。 freevec 使用的方法是将 4x4 矩阵拆分为 4、2x2 矩阵,然后对每个矩阵进行微小的运算,最后将结果重新组合,得到 4x4 矩阵的逆矩阵。对于 3x3 矩阵,我看不到这样的机会。
有人知道如何使用 SIMD 指令进行 3x3 矩阵求逆,这对我很有帮助吗?
问候 维克拉姆
【问题讨论】:
-
也许感兴趣:“几乎没有充分的理由来反转矩阵。” johndcook.com/blog/2010/01/19/dont-invert-that-matrix
-
会认真对待您的评论,看看如何从我的算法中消除矩阵求逆。
-
@AakashM 那篇文章不相关。 John D. Cook 关于矩阵的文章是关于科学计算中使用的大矩阵。这个问题是关于小矩阵的,通常用于计算机图形学和物理模拟。反转小矩阵非常有用(而且速度非常快)。
-
这是一个 old Intel PDF 使用 XMMS 和另一个 ARM Blog post 矩阵乘法。由于人们有不同的需求,因此可能无法给出简明的答案;速度、代码大小、内存带宽、精度等
标签: algorithm simd neon matrix-inverse