我的情况是,我必须在 C++ 中使用几乎永远不会改变的矩阵和很多小向量(非常少的 3x3 或 4x4 矩阵和具有 3 个值的向量)执行一些线性代数计算,我正在考虑使用为 x86 32 位、x86 64 位、ARMv5 及更高版本设置了一些 CPU 指令,以加快速度并简化我的数学运算设计。
令人惊讶的是,我还没有找到真正的线性代数集,其中大多数是用于浮点数学的,可以根据需要进行缓存,优化,但是对于矩阵和线性代数来说,没有什么真正的,是只有我还是没有线性代数?
AMD 的新 FMA3 开始看起来很有趣,但在现代 CPU 中仍然很难找到,我想坚持像 x86 上的 SSE 或 ARM 上的 ARMv5 这样流行的东西。
那么有一个流行的指令集用于小而快速的线性代数计算吗?如果速度足够好,我什至可以接受大量错误。
编辑:
我还应该注意,实际上我的编译器是:
- 海合会
- 明威
- 视觉工作室
所以我想在 x86 和 ARM 上都有一个开源产品和一个可移植库。
编辑 2: Eigen 不支持多线程执行,这对我来说是个大问题。