[英]Convert SSE intrinsics to readable C/C++ code?
我继承了一些高度优化的(SSE4),但没有注释的C代码。 是否有任何工具或实用程序会将SSE内在函数转换为可读性更高的代码或伪代码? 这主要是为了提高可读性,以便在深入研究和进行更改之前,我可以更好地理解代码。
我不知道有任何这样的工具。
但无论如何,它很可能无济于事。 如果对SSE代码进行了优化,则最困难的部分可能是无法解码内在函数。 困难的部分是遵循所有技巧来改善局部性并消除迭代内数据依赖性(条纹,多面体循环变换等)。
但是,我可以向您提出建议:始终以最简单的方式编写相同例程的标量版本。 这个“参考代码”应该只关心可读性和正确性,而不是速度。因此,它应该有很多断言。 还有一个测试套件,可以同时执行标量版本和优化的变体。
无论是初次实施例程还是更新现有例程,始终从参考代码和测试套件开始。 不一定按此顺序。
这种方法的前期成本更高,但从长远来看则便宜得多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.