SIMD C ++库[关闭]


14

过去,我将Visual Studio与DirectX XNA数学库一起使用。现在,我正在使用GNU编译器集合。任何人都可以通过良好的文档建议SIMD数学库?

Answers:


15

您也可以使用SSE(Streaming SIMD扩展名)指令和编译器/ proc 的内在函数(* mmintrin.h文件)“自行”完成此操作。


讲解

这是如何在汇编中使用SSE指令的示例:http :
//neilkemp.us/src/sse_tutorial/sse_tutorial.html

以下是有关如何将SSE指令与内部函数一起使用的教程:http :
//www.codeproject.com/KB/recipes/sseintro.aspx

将SSE SIMD与C ++结合使用的实用指南:http :
//sci.tuomastonteri.fi/programming/sse/printable


有用的信息

英特尔C ++内部参考(有用以获取指令列表):http :
//cache-www.intel.com/cd/00/00/34/76/347603_347603.pdf

SSE和SSE2对Intel和AMD处理器支持的增强指令集的内在支持(可用于与SSE和SIMD相关的各种信息):http :
//msdn.microsoft.com/zh-cn/library/y0dh78ez%28v= vs.71%29.aspx

有关SSE,SSE2,SSE3,SSSE3,SSE4、3DNow等的总体说明列表和信息(针对不同proc架构的SSE的不同版本):http :
//softpixel.com/~cwright/programming/simd/sse.php


如果您更喜欢线性代数框架,那么我对Eigen会有所耳闻:
http : //eigen.tuxfamily.org/
http://eigen.tuxfamily.org/index.php?title=FAQ#Vectorization(关于SIMD支持)

最后,如果您需要有关C ++ SIMD框架的更多答案,请访问StackOverflow链接。(C ++ SSE SIMD框架):https :
//stackoverflow.com/questions/4953121/c-sse-simd-framework


谢谢,但我没有时间做那么多例行工作。
itun 2011年

也许下一次,它看起来并不难;)。但是,我在底部添加了一些链接可能会有所帮助。
Valkea

整洁的答案。SIMD数学很有趣。我记得我使用SSE加速射线追踪的日子。但是,如果我们现在拥有GPGPU,为什么还要打个小玩具呢:)
Notabene 2011年


1

通过一点点探索,我认为您可以使用Bullet的数学库,bullet本身是一个开源物理引擎,并且它似乎还有一个强大的数学库。这是下载链接的快捷方式http://sourceforge.net/projects/bullet/files/SIMD%20and%20amp_%20Vector%20Math%20library/simd%20math%201.02%20and%20vector%20math%201.01/simdvectormath.tgz /下载


我看到了,但是我不明白如何编译
-itun

3
不仅仅是转储下载链接,也许到包含文档,Wiki和API参考的实际网站的链接可能更有用。bulletphysics.org
Bob Somers

@Bob我只是想表达该下载链接,因为它需要一些时间才能simdvectormath在项目符号文件中找到特定文件
Ali1S232



0

我发现虽然不完全专注于使用SIMD, glm是一个非常好的通用数学库,涉及游戏。它不支持任意矩阵等,但是它具有可与3D图形配合使用的简化功能,并且具有启用SSE的功能以及一些通用算法的更快实现。

尽管它是专门为与OpenGL一起使用而设计的,但我发现它对于各种任务非常有用。它大量使用运算符重载,这使得使用和维护使用它的代码非常容易。

它基于OpenGL GLSL语言,该语言具有非常可靠的文档,并且所有差异也都得到了很好的文档证明。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.