Gcc 当优化armv8a与armv7a的霓虹灯代码时,我应该知道什么?
我有使用SSE的经验,并且研究ARM平台是否有优化技巧,或者它是否最终正确地利用了指令延迟和吞吐量 我试着比较armv8a和armv7a,但到目前为止,我的搜索结果告诉我,这两个单位非常相似,我错了吗 我能找到的几件事是:Gcc 当优化armv8a与armv7a的霓虹灯代码时,我应该知道什么?,gcc,optimization,arm,neon,Gcc,Optimization,Arm,Neon,我有使用SSE的经验,并且研究ARM平台是否有优化技巧,或者它是否最终正确地利用了指令延迟和吞吐量 我试着比较armv8a和armv7a,但到目前为止,我的搜索结果告诉我,这两个单位非常相似,我错了吗 我能找到的几件事是: armv8a具有标量霓虹灯操作 armv8a霓虹灯与CPU共享状态标志 armv8a具有更宽的寄存器和新指令 可以使用具有快速路径的单周期MAC链 问题的一些细节: 哪种类型的armv8a执行速度快 什么样的armv8a结构执行缓慢,应该避免 armv8a NEON提供了什么
我使用gcc arm linux gnueabihf编译器。中的v7和v8之间有一个很好的比较,这里有一些有用的信息,我收集到的是ARMv8与ARMv7之间的变化:1)在arm和NEON寄存器之间移动数据没有额外的延迟。2) 32“Q”和32“R”寄存器允许更具创造性的优化。3) 不再需要手动预取。4) 32位和64位代码在SD810上的性能似乎相似,5)NVidia K1 Denver使用定制Cortex-A57内核,在相同的时钟速度下,其性能比SD810快约50%(更好的无序执行和流水线AFAIK)。