双值存储更高的精度并且是浮点数的两倍,但英特尔CPU是否针对浮点数进行了优化?
也就是说,双重操作与+, - ,*和/的浮点运算一样快或快.
对于64位架构,答案是否会改变?
我正在编写一个应用程序,它读取大型浮点数并使用它们执行一些简单的操作.我正在使用花车,因为我认为它比双打快,但经过一些研究后我发现这个主题有些混乱.任何人都可以详细说明这个吗?
我需要尽可能快的方法来乘法和划分大数据.
我读过这篇文章(Ben Voigt 在这里写的):
从当前版本开始,.NET不使用MMX或SSE或AVX
(......)
现代C++编译器不仅允许SIMD使用,还可以将普通代码自动矢量化为SIMD指令
.
我想我需要:
向量操作的SSE支持(一次乘以4个浮点数)
多线程支持(不会以某种方式与C#线程冲突的解决方案/库)
我可以使用任何库/ dll吗?
编辑:Octave的任何替代品?我只需要2个操作:分割,乘法.如果我正确理解Octave是什么以及它是如何工作的 - 我将需要解析输出...它不能快...
根据"你有什么尝试"和"为什么你不想使用简单for":
我需要这个用于神经网络训练.网络(现在)有超过50个输入,许多神经元(每个50+权重).学习数据包含100.000+行,每行50多个字段.每个神经元输入需要很少(至少5个)乘法运算.
我不知道我需要多少个学习时代,但我试图仅对多次操作进行基准测试,并得到结果:我的英特尔酷睿双核T2500 2.0GHz CPU每个时期大约16秒.
当然我可以买更快的电脑,但新电脑的价值超过我工作的几个小时,所以我希望它看起来合乎逻辑......