cod*_*ave 18 c++ windows optimization
我有一个功能,这是我的程序的瓶颈.它不需要访问内存,只需要计算.它是内循环并被多次调用,所以这个函数的任何小增益都是我程序的大胜利.
我来自PS3优化SPU代码的背景,您可以在其中获取SPU程序并通过管道分析器运行它,您可以将每个汇编语句放在其自己的列中,并最小化函数所需的循环量.然后重叠循环,以便最大限度地减少管道依赖性.使用该程序和每个汇编指令所需的所有循环列表,我可以比编译器更好地优化.
在不同的平台上,它有我可以注册的事件(缓存未命中,循环等),我可以运行该功能并跟踪CPU事件.这也很不错.
现在,我正在使用带有Core i7 Intel处理器的Visual Studio C++ 2010在Windows上做爱好项目.我没有钱来支付VTune的巨额费用.
我的问题:
如何在Windows的英特尔处理器的装配级别分析功能?
我想编译,查看反汇编,获取性能指标,调整我的代码并重复.
Nec*_*lis 11
有一些很棒的免费工具,主要是AMD的CodeAnalyst(根据我在i7和我的Phenom II上的经验,它在英特尔处理器上有点不利,因为它无法访问直接硬件专用计数器,尽管可能是坏配置).
但是,一个知名度较低的工具是英特尔架构代码分析器(它与CodeAnalyst一样免费),它与您描述的spu工具类似,因为它详细说明了延迟,吞吐量和端口压力(基本上是请求发送到ALU,MMU和你的程序汇编一行一行.Stan Melax 在今年的GDC上发表了关于它和x86优化的精彩演讲,标题为"热点,触发器和uops:到金属cpu优化".
英特尔还有一些与IACA相同的工具,在他们的实验/假设代码网站的性能调整部分下的avaibale ,例如PTU,它是(或者是)VTune的实验演变,我可以看,它是免费的.
在深入研究之前阅读英特尔优化手册也是一个好主意.
编辑:正如本指出的那样,旧处理器的时间可能不正确,但可以很容易地使用Agner Fog的优化手册,其中还包含许多其他宝石.
归档时间: |
|
查看次数: |
1660 次 |
最近记录: |