关于c ++:关于ARM的预取指令

关于c ++:关于ARM的预取指令

Prefetch instructions on ARM

较新的ARM处理器包括PLD和PLI指令。

我正在编写紧密的内部循环(在C ++中),它具有非顺序的内存访问模式,但是我的代码完全理解的模式。 如果我可以在处理当前内存位置的同时预取下一个位置,我预计会有大幅加速,我希望这很快就足以尝试值得实验!

我正在使用来自ARM的新的昂贵的编译器,它似乎没有在任何地方包含PLD指令,更不用说在我关心的这个特定循环中了。

如何在C ++代码中包含显式预取指令?


应该有一些编译器特有的功能。 C / C ++没有标准的方法。看看编译器编译器参考指南。对于RealView编译器,请参阅此或此。


如果您试图从这些循环中提取真正的最大性能,那么我建议在汇编程序中编写整个循环结构。您应该能够使用内联汇编,具体取决于循环中涉及的数据结构。如果你可以展开任何一个循环(比如使访问非顺序访问所涉及的部分),那就更好了。


软件流水线和循环展开之类的其他优化可能会达到与预取想法相同的效果(通过将负载与有用计算重叠来隐藏负载的延迟),但不会产生额外的指令缓存压力。通过额外的指示。我甚至会说这种情况经常发生,因为紧密的内环往往只有很少的指令和很少的控制流。您的编译器是否正在执行这些类型的传统优化。如果是这样,可能值得查看管道图,以开发更详细的成本模型,了解处理器的工作方式,并更加定量地评估预取是否有用。


冒着明显的问题:你有没有验证过编译器的目标架构?例如(幽默我),如果默认编译器是针对ARM7的,那么你永远不会看到PLD指令。


推荐阅读

    linux清理内存命令行?

    linux清理内存命令行?,策略,数据,系统,名称,不了,管理,情况,工作,一致,时间,l

    linux分析内存命令?

    linux分析内存命令?,情况,系统,信息,分析,命令,地址,内存,工具,下来,数据,lin

    linux的内存查看命令?

    linux的内存查看命令?,系统,情况,信息,数据,工具,命令,内存,第一,环境,电脑,

    linux命令行模式网络?

    linux命令行模式网络?,网络,基础,系统,服务,管理,工作,命令,信息,中级,设备,l

    linux下查看命令指令?

    linux下查看命令指令?,系统,信息,情况,工作,地址,命令,软件,网络,工具,服务,l

    linux命令行查内存?

    linux命令行查内存?,系统,情况,信息,状态,工具,内存,电脑,分析,数据,命令,怎

    linux看剩余内存命令?

    linux看剩余内存命令?,系统,情况,工具,信息,分析,状态,实时,命令,内存,总量,L

    linux命令行模式登录?

    linux命令行模式登录?,系统,密码,信息,状态,情况,终端,环境,管理,电脑,位置,l

    查询linux内存命令?

    查询linux内存命令?,系统,情况,信息,工具,电脑,状态,命令,内存,发行,总量,查

    linux退出命令模式?

    linux退出命令模式?,状态,档案,命令,环境,密码,终端,文件,模式,编辑,端口,lin

    linux查内存命令6?

    linux查内存命令6?,情况,系统,信息,工具,数据,内存,命令,单位,环境,方法,查看

    linux命令模式加行?

    linux命令模式加行?,工作,地址,系统,命令,工具,正规,信息,时间,第一,模式,Lin

    linux命令行模式使用?

    linux命令行模式使用?,工作,地址,目录,信息,名称,系统,管理,命令,文件,标准,l

    linux命令循环导入?

    linux命令循环导入?,服务,系统,密码,数据,增长,名字,数字,官网,地址,文件,mys

    linux编辑循环命令?

    linux编辑循环命令?,代码,增长,工具,基础,灵活,状态,连续,系统,数字,数据,lin

    linux修改内存命令?

    linux修改内存命令?,系统,信息,标准,工具,数据,在线,内存,命令,分区,大小,Lin

    linux切换成命令模式?

    linux切换成命令模式?,密码,系统,工具,模式,命令,首页,状态,图形界面,终端,

    linux历史命令内存?

    linux历史命令内存?,系统,情况,信息,数据,命令,内存,文件,磁盘,历史,内容,Lin

    linux命令行模式清页?

    linux命令行模式清页?,工作,系统,命令,信息,地址,目录,内容,文件,操作,功能,l

    linux怎么看内存命令?

    linux怎么看内存命令?,系统,情况,信息,命令,内存,工具,发行,数据,表示,内容,l