我只是想知道是否有任何有用的工具,让我在一些算法中利用指令级并行性.更具体地说,我有一个子集
多媒体领域的算法,我想知道什么是利用ILP的最佳方式
在这个算法中.所有这些算法都是在C中实现的,所以理想情况下,我将这些算法作为一些工具的输入,并告诉我可以并行执行哪些指令.
多媒体领域的算法,我想知道什么是利用ILP的最佳方式
在这个算法中.所有这些算法都是在C中实现的,所以理想情况下,我将这些算法作为一些工具的输入,并告诉我可以并行执行哪些指令.
非常感谢任何一点!
罗伯特
解决方法
问题在于,考虑到有多少不同的处理器类型,决定是否并行执行指令是非常困难的.了解您所针对的cpu架构将为您做出这样的工作提供良好的起点.没有软件会以正确的知识打败人心.
总的来说,尽管编译器和无序执行引擎等操作尽可能多的抽象化,即使您完全理解这一点,您也将发现不太可能会超过几个百分点的速度提升.
如果您想要看到严重的速度改进,您可以重新编写算法来利用多个处理器和可用的SIMD操作.您可以使用SIMD单独看到严重的速度改进,对于可以同时处理数据的多个元素的许多“多媒体算法”尤其如此.