我有一个C编程任务,它涉及尽可能多地优化代码。我已经在互联网上读过一些这方面的内容,比如在if上使用if,传递指针而不是值等等。
我想问的是,为什么知道有哪些处理器扩展可以帮助我优化代码呢?我知道这台机器上有SSE和AVX,但作为一个程序员,这到底意味着什么呢?
关于我上面的问题,我找到了英特尔内在指南,我认为它与处理器扩展有关。与其他C函数相比,使用这些函数在性能上有什么优势吗?从xmmintrin.h使用sqrt比从math.h使用sqrt更快吗?
发布于 2015-05-09 04:13:49
其思想是让每个CPU优化库(SSE、AVX等),并调用类似_may_i_use_cpu_feature()之类的东西来动态确定运行时可用的特性,并为CPU加载“最佳”实现。
对于可移植的代码,您需要使用sqrt() --而且一些运行时库具有足够好的优化实现。如果您想要在特定平台上完全控制并最大化性能,而不关心可移植性,则可以编写手动优化的程序集(或使用本机)。
大多数性能都是通过更好的算法获得的.
https://stackoverflow.com/questions/30135677
复制相似问题