1
3
正如其他人所说,如果您已经在使用浮点SIMD,我怀疑您在固定点方面会有很大的改进。 您说过编译器正在发出SSE指令,但听起来不像您试图编写向量化的SSE代码。我不知道编译器通常在这方面有多好,但这是需要调查的。 其他两个方面是:
正如其他人提到的,配置文件、配置文件、配置文件。然后让我们知道还有什么慢:) PS-在你的另一个帖子上 here 我说服你在矩阵解算器中使用sor而不是gauss-seidel。现在我想起来了,你不使用三对角解算器有什么原因吗? |
2
6
用浮点数固定。只有在8位或16位内工作并使用SIMD(图像处理和音频是这方面的典型用例)时,定点才真正有用。 现代CPU通常有2个FPU,每个时钟周期最多可以发出2个FP指令。然后,您还可以使用4路FP SIMD(SSE)进行优化。 如果您仍在努力获得良好的性能,那么请尝试使用更好的编译器,如Intel的ICC。此外,64位的Intel可执行文件往往比32位的对应文件快一些,这是因为64位模型中寄存器的数量增加了,所以如果可以的话,可以构建64位。 当然,您也应该对代码进行概要分析,以便确定热点在哪里。你不用说你在用什么操作系统,但是 VTune 在Windows上, Zoom 在Linux上 Shark 在Mac OS X上,所有这些都将帮助您快速轻松地找到性能瓶颈。 |
3
0
您的机器已经很好地针对浮点进行了优化,所以通过定点分数可能不会节省太多。 你说没有单一的瓶颈,但可能有多个瓶颈,如果你设法剃掉其中的任何一个,那么其他人将占用更多的剩余时间,吸引你的注意力,所以你也可以剃掉它们。 您可能已经完成了这项工作,但我要确保不仅耗时的函数尽可能快,而且它们被调用的次数也不超过必需的次数。 |
Rik Bloemers · for循环不接受任何浮点变量 2 年前 |
zell · 为什么存储7个浮点数需要34字节? 2 年前 |
Atharva Sunil Sathe · 如何删除任意数的小数点? 2 年前 |
user1658887 · 为什么**2!=a*a一些彩车? 6 年前 |