1

我继承了一些高度优化(SSE4)但未注释的 c 代码。是否有任何工具或实用程序可以将 SSE 内在函数转换为更易读的代码或伪代码?这主要是为了提高可读性,以便在深入研究和进行更改之前更好地理解代码。

4

1 回答 1

2

我不知道有任何这样的工具。

但无论如何,它很可能不会有太大帮助。如果 SSE 代码优化得很好,困难的部分可能不是解码内在函数。困难的部分是遵循所有技巧来提高局部性和消除迭代内数据依赖性(剥离、多面体循环转换等)

不过,我可以给你一个建议:始终以最简单的方式编写相同例程的注释良好的标量版本。这个“参考代码”应该只关心可读性和正确性,而不是速度......所以它应该有很多断言。还有一个可以运行标量版本和优化变体的测试套件。

无论是第一次实现例程,还是更新现有例程,始终从参考代码和测试套件开始。不一定按这个顺序。

这种方法前期成本更高,但从长远来看要便宜得多。

于 2013-07-17T22:51:51.603 回答