POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
楼主: Tempestglen
打印 上一主题 下一主题

Arm vs X86的论文

[复制链接]
181#
发表于 2013-3-18 11:15 来自手机 | 只看该作者
本帖最后由 huangpobu 于 2013-3-18 11:52 编辑
largewc 发表于 2013-3-17 14:15
应该不会,x86指令短跟简单指令完全没关系。

具体说一下吧,比如说arm

等等我回去贴一下论文里面的数据吧
回复 支持 反对

使用道具 举报

182#
发表于 2013-3-18 11:38 来自手机 | 只看该作者
PS5 发表于 2013-3-17 15:50
GPU是几发射的?

GPU以前的一个流处理器是一次发射一个线程的指令,但是这个指令是SIMD指令,所以和CPU的单发射还是不同的,何况还有很多流处理器。

Fermi开始引入了能够一次发射两个线程的改进流处理器,全GPU有16个这样的处理器,所以相当于一次发射32线程了
回复 支持 反对

使用道具 举报

183#
发表于 2013-3-18 12:21 | 只看该作者
largewc 发表于 2013-3-17 11:19
我觉得,局部性才能测试出绝对情况的,就是专门测试大量某些特定的指令。

x86做了足够的优化,早期移 ...

我觉得你对x86 ISA很了解,但是却不太懂什么是pipeline什么是ILP,硬件上是如何实现的,有些东西跟想象的是完全不一样的。

另外,64bit编译器编译的程序比32bit快,因为x86-64扩展里面有8个寄存器在IA32下是不可用的
回复 支持 反对

使用道具 举报

184#
发表于 2013-3-18 12:26 | 只看该作者
koppie 发表于 2013-3-18 12:21
我觉得你对x86 ISA很了解,但是却不太懂什么是pipeline什么是ILP,硬件上是如何实现的,有些东西跟想象的 ...

arm isa也算比较熟悉了,mips不熟悉。

我承认对硬件实现确实不熟悉,毕竟不是做这个的。

我只从自己的角度看待这个事情吧,对pipeline和ILP都是自己的角度的理解,有问题一起讨论一下吧。

不战斗了,多讨论才能提升不是吗。
回复 支持 反对

使用道具 举报

185#
发表于 2013-3-18 12:38 | 只看该作者
本帖最后由 koppie 于 2013-3-18 12:40 编辑
largewc 发表于 2013-3-18 12:26
arm isa也算比较熟悉了,mips不熟悉。

我承认对硬件实现确实不熟悉,毕竟不是做这个的。
说实话,你的认识误区不小啊,不是几段话能讲明白的。
那我建议你还是花大力气看看这本书的
David Patterson:
computer organization and design: the hardware/software interface
搞性能优化,或者ISA层面的东西,是绝对要了解底层架构的
我保准你看完这本书就有颠覆性的认识了,绝对值得。另外一本computer architecture: a quantitative approach深一些。不过也可以看,最新版的要先看附录ABC
回复 支持 反对

使用道具 举报

186#
发表于 2013-3-18 12:45 | 只看该作者
huangpobu 发表于 2013-3-17 14:03
很同意性能没有过剩。我刚刚在Mathematica上跑一个最短路径算法都卡的半死,内存都爆了。

另外我介绍一 ...

另外我介绍一下这篇文章的一个结论吧,他们使用跨平台的GCC编译器,编译结果显示x86的平均指令长度的确比ARM短,因此他们认为编译器倾向于使用X86里面的简单指令。
=================================
这个结论我不能完全同意。应该说x86里边使用频度高的指令比较短(短于ARM定长的32bit)。而不是编译器故意去选择短的指令。
回复 支持 反对

使用道具 举报

187#
发表于 2013-3-18 12:56 | 只看该作者
koppie 发表于 2013-3-18 12:38
说实话,你的认识误区不小啊,不是几段话能讲明白的。
那我建议你还是花大力气看看这本书的
David Patter ...

能明确说一下具体的哪些吗,我抽空看吧,你说一下我针对性看看吧。

要是说寄存器数量的问题,我不想争论了,反正我无论怎么测试的结果,就是这玩意对性能的影响不是关键点,他会影响到性能,但是不是性能瓶颈点。

你说64bit这个问题,我回去测试一下,64bit可能更快,我测试一下能快多少吧。
回复 支持 反对

使用道具 举报

188#
发表于 2013-3-18 12:59 | 只看该作者
Prescott 发表于 2013-3-18 12:45
另外我介绍一下这篇文章的一个结论吧,他们使用跨平台的GCC编译器,编译结果显示x86的平均指令长度的确比 ...

编译器肯定选择短指令啊,问题是谁说复杂指令就长啊……

难道rep指令会比一个for循环更长?肯定不可能的,复杂指令只会缩短代码。复杂指令的典型结果就是汇编级别代码量大幅度下降了。
回复 支持 反对

使用道具 举报

189#
发表于 2013-3-18 22:05 | 只看该作者
largewc 发表于 2013-3-18 12:56
能明确说一下具体的哪些吗,我抽空看吧,你说一下我针对性看看吧。

要是说寄存器数量的问题,我不想争 ...

回到寄存器数量,你知道在Sandy Bridge之前的Intel处理器里面,是完完全全没有物理寄存器的么?ISA是硬件和软件的interface,为了长期的兼容性,十年二十年也不会有太大变化。底层的微架构实现却有前差万别,而真正理解性能是必须要了解底层的架构和编译原理的,太想当然了就会得出完全相反的结论。还有寄存器重命名的目的是为了name dependence,跟你理解的是很不一样的

重点看看Interface那本书的第四章和Quantitative的Appendix C和第三章

回复 支持 反对

使用道具 举报

190#
发表于 2013-3-19 01:18 | 只看该作者
话说cortex-A9到底几发射啊。。。

量化上说是2发射,我看ARM的PPT里面是4发射,LZ贴的论文里面也指出A9并不像流行观念认为的那样是2发射,说是4发射。。。。
回复 支持 反对

使用道具 举报

191#
发表于 2013-3-19 11:13 | 只看该作者
koppie 发表于 2013-3-18 22:05
回到寄存器数量,你知道在Sandy Bridge之前的Intel处理器里面,是完完全全没有物理寄存器的么?ISA是硬件 ...

我是普通的程序员,我更喜欢在实地测试中学习,我只关心结果,无论怎么测试,结果就是x86的寄存器并不敏感,无论你用任何理论上的事情,也改变不了结果,除非你能作证明这个的反例,x86并没有因为寄存器少性能大幅度下降,这个不是什么瓶颈问题。

如果理论部分存在问题,我确实同意这一点,我比较赞同huangpobu的代码,基本上说明了问题,我承认在某些情况下,arm的多寄存器对于循环拆解是有好处的,肯定会有性能提升的,我的例子是证明了现在主流的intel cpu对于寄存器数量并不敏感。

编译部分我还是比较清楚的,包含arm的指令编码都比较熟悉,毕竟从486时代开始玩asm的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-1-23 21:30

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表