麦克雷 Mavom.cn

标题: 苹果的 Rosetta 2 否定了龙芯的翻译指令技术的未来。 [打印本页]

作者: pwothfwl28    时间: 2020-11-25 18:35
标题: 苹果的 Rosetta 2 否定了龙芯的翻译指令技术的未来。
挺悲催的,龙芯引以为傲的技术,被这么简单技术实现给否定了。


Rosetta 2 用 aot 方式实现了静态翻译模拟运行。而龙芯却还是停留在实时运行状态,可以说连 jit 时代都没有到达。
或许龙芯翻译指令的用途,也就是运行虚拟机跑 windows ,或者在启动的时候初始化显卡了。
使用方向极度变窄,会随着时间逐步被放弃需求。


毕竟运行 windows 会随着国产化替代,必然会改用 Linux 去实现操作系统基础环境,那么运行 x86 ,也是在 Linux 下面的统一环境运行。这种环境 Rosetta 的 aot 方式就是这么实现的。
而初始化显卡,在国产显卡的启用,乃至龙芯自己的显卡设计制作出来后,这个用途也没用了。


哎,龙芯这么多年,为什么总是迟到?
作者: elley    时间: 2020-11-25 18:36
为什么这么说?不能详细解释一下吗?免得到时又有理解上的偏差。
作者: СulumnaOl    时间: 2020-11-25 18:37
市场未必会否定龙芯
作者: xuang    时间: 2020-11-25 18:37
老胡在ppt里说了,loongarch二进制翻译是动态,静态结合的。ppt里有。
作者: pos希蕾旗u6    时间: 2020-11-25 18:37
本身就是为了自建生态过度的,就看到时候自己的生态有没有起来,是不是后期还是要依靠翻译才有生态,自己生态也没有起来。
作者: a1245468899    时间: 2020-11-25 18:37
(, 下载次数: 14)

(, 下载次数: 10)



(, 下载次数: 12)

(, 下载次数: 13)

(, 下载次数: 11)

(, 下载次数: 8)

(, 下载次数: 13)

(, 下载次数: 11)
作者: q40435834    时间: 2020-11-25 18:38
(, 下载次数: 9)

(, 下载次数: 12)
作者: Joshuadubs    时间: 2020-11-25 18:39
江涛大哥,你终于来了,好久不见你上贴吧了,最近在忙些啥呢?
作者: 艾的民    时间: 2020-11-25 18:40
苹果二进制翻译技术的只适合同一个系统,换系统只能虚拟机了
作者: LanMei    时间: 2020-11-25 18:40
架构不是障碍,操作系统才是
作者: 469885687    时间: 2020-11-25 18:41
也还好吧。苹果换芯就是要多挣点,在自己的操作系统自己的生态内迁移,用的是巧劲;龙芯要空手套白狼过渡到自己的指令生态,用的是暴力。大家殊途同归用上了指令翻译,只是龙芯的困难更大,能不能成功不知道。如果做成了,也可能是另一个苹果(严格说是Intel+Google+arm的混合体,有自己的指令集,自己设计销售cpu,带动一大堆下游企业,对外指令或ip授权,做类似Android的基础操作系统,估计不会卖整机)。
作者: 艾的民    时间: 2020-11-25 18:41
这是一个东西? ....
作者: MaximoHando    时间: 2020-11-25 18:42
都二代了,才?
作者: lenley    时间: 2020-11-25 18:42
记得有谁说过要有谁否定龙芯,就表明龙芯的方向是正确的。
作者: audemarspiguet    时间: 2020-11-25 18:43
你懂个屁!
作者: 287896307    时间: 2020-11-25 18:43
建立在苹果这么多年生态基础之上的Rosetta2,楼主居然说是“简单”的实现?为什么不说苹果给龙芯指明了一条明路?
作者: Geraldlaks    时间: 2020-11-25 18:44
能实际使用并且会或者将会广泛使用的技术怎么能说是简单呢?为什么别人走另一条道成功了我走这一条慢了点就一定不能赶上?总不能追着别人的屁股走一辈子吧?
作者: vastwelkin    时间: 2020-11-25 18:45
智商堪忧,谁告诉你指令模拟加速和shadow tlb 模拟支持 就不能jit和aot了?
eflag模拟指令不就是jit?
用户态模拟elf载入指令替换不就是aot?
谁告诉你纯靠 aot就能解决 tlb 问题了?

谁告诉你apple m1 没有内置shadow tlb/指令级支持x86模拟了...


就虚空打嘴炮呗...学了俩名词都开始瞎抖了...令人发笑
作者: alexia0907    时间: 2020-11-25 18:45
个人猜测,苹果M1很有可能有加速模拟翻译的SOC的电路。苹果的翻译也有可能是软硬结合。
作者: 艾的民    时间: 2020-11-25 18:46
对自己不熟悉的领域最好不要妄加评论各种预言。M1硬件体系变化大,特别是那个统一内存架构。龙芯运行的硬件体系依旧是传统的。
作者: f89511433    时间: 2020-11-25 18:46
不能这么比,苹果已经没有乔布斯了,老胡可是胡不四,啊不,胡布斯。
(, 下载次数: 10)
作者: jtlutcdmu    时间: 2020-11-25 18:47
统一内存好像很强的样子。
作者: 亮学    时间: 2020-11-25 18:47
龙芯的LAT翻译从体系层面(包括指令集支持)进行全面的翻译设计,从上到下的进行翻译设计支持,难度是很大,但是我觉得是全面彻底的方案,不是虚拟机JIT/AOT这种局部方案能比的。


胡老师提到,指令翻译TLB优化非常重要,CPU速度主要慢在内存访问这里,JIT/AOT这些翻译手段都是基本的,但是TLB优化需要体系指令集支持。龙芯的LAT是体系翻译,是全面彻底的翻译方案。
作者: CharlesFrom    时间: 2020-11-25 18:48
苹果虽然用arm,但实际上他和arm体系架构差异非常大
苹果虽然翻译,但他的翻译也应该很有自己的体系特点,不可用常规想法来讨论
作者: 艾的民    时间: 2020-11-25 18:49
更悲催的是这年头在 ISA 层次上居然都有 AOT 吹……
(, 下载次数: 17)
难怪那么多碰瓷冯诺依曼体系的……骗经费捷径?
作者: 艾的民    时间: 2020-11-25 18:49
苹果的翻译就是纯软的
说软硬结合的思维太狭隘了


苹果能做到这样,你们也不看看操作系统macOS是谁的,开发环境、组件、语言和引擎OC、Swift、Xcode和Metal等是谁的


难道上一次苹果搞Rosetta1的来PPC转X86的时候,Intel专门给苹果增加解码指令集?这不瞎扯淡么


这个操作模式,也就苹果能做得比较好。微软谷歌要做受限也会很多。
作者: PISZLL    时间: 2020-11-25 18:50
……我对二进制翻译无关心,这里的一个都不认识,但是扯出 AOT 比 JIT 先进的实在看不下去。
连扯体系结构的风口里都有这类 zz 论点,看来是有必要+FAQ了。

这 LZ 的问题,根本不只是“对自己不熟悉的领域最好不要妄加评论各种预言”的问题,是缺乏传统 CS 历史和常识。

(按合格的 CS 教育背景)众所周知,历史上 SMC(self-modifying code) 在 pre-ISA / ISA 早期阶段普遍存在。这也是所谓的 von Neumann architecture 统一指令和数据存储的典型应用。随着高级语言的发展,这个功能逐渐被弱化。这主要是流行的语言中,都不支持需要 SMC 才能高效实现的功能(例如,ISO C 和 ISO C++ 都不要求支持运行时生成的程序和源代码经过翻译阶段处理后的代码具有同等的地位),因此体系结构设计弱化到去除 data as code 而纯软件实现也可以接受。
但是,现实是除了极端低成本的机器使用了 Harvard architecture 的设计,主流 ISA 在实现内部都保留了早期的 SMC/CMC(cross-modifiying code) 机能,而在上层才不强调这一点——因为 Lisp machine 式微之后的用户普遍不会使用 code as data 的思路元编程,高级语言中在这方面大多是残废。这表示微架构实现上必须做到这种跨风格的翻译——把底层的 von-Neumann style 翻译成上层显式区分 VM protection 并分别优化的设计。这种现代设计主要集中在缓存子系统(IA-32 方面记得专利实现是 victim cache),但原则上因为 ISA 上需要保留支持,core 内也需要对应调整。
因为接受动态输入的 data as code ,不论是在哪个层次上,SMC/CMC 原则上不可能用 AOT 风格的完全静态代码翻译解决,否则会有不可预料的正确性错误。

这方面的一个重要常识:在可预见的未来,主流 ISA 是不可能彻底抛弃这种兼容性的。断言在 ISA 这个层次上纯 AOT 能用,这是迷惑行为其一。

虽然这里的人都担不起,另一个更大的相关迷惑行为让消费者付出 IC 设计和制造的成本却阻碍他们取得功能。这方面的唯一“成功”典型是苹果:在商店审核规则中直接禁止 JIT ,放着符合 POSIX 标准能够合理利用硬件加速的实现不用,迫使开发者选择更低效的软件模拟的解释实现。就是这样的厂商,一边还有脸鼓吹降低碳排放,何等讽刺。另外,允许 Safiri 州官放火不许应用自己点灯这方面,明眼人自己看着办。

而背后更本质的共通迷惑行为是对 AOT 或者砍掉了 data as code 能力的残废编程风格的迷信(不管是使用低级语言还是高级语言)。
因为这类风格中,纯 AOT 才可能满足语言 spec 正确性要求,所以对 AOT 的盲目追捧还影响到了上层语言的功能限制。
这种迷信的来源是复杂的。至少有:
1. 使用个别缺乏 data as code 的语言的习惯性偷懒成自然,具体来讲现在主要是 C 和 C++ 。
不少人因为只会用这类语言,所以认为这类语言就应该具有统治地位,而不管缺乏合理功能时破坏可移植性带来的后果。
结果剩下意识到有必要打破这种限制的各显神通群魔乱舞,还有被州官当借口镇压的。
讽刺的是,打破这种限制的用户需求是普遍的,如 WG21 P1609 。
2. 因为教育背景不健全等原因导致的实现实用计算的普遍范式理解和独立思考能力上的残缺。
例子如 exception path 的假设(p/7102475556)和更普遍的调用机制的理解之类(p/6213333021 18L)。
3. 支持上述语言和范式为主的业界翻译实现的普遍无能——更习惯依赖 SSA-based intraprocedural style 的局部优化设施(而非 CPS/ANF 这类对 intra/interprocedural 更中立的)来提升目标代码质量。
这种决策下,翻译的实现不追求一般 control operator 优化的可实现性,而放松了 AOT 的门槛,反过来加大了可移植 JIT 的困难。
题外话,这种方式倒的确适合分离 backend 搞水平扩展——多 996 tuning 性能看来就就有机会更好。至于极限在哪呢?不知道,还有待继续 work hard 。而一般意义上 polyvariant online partial evaluation 之类的更普遍手段就别想了。
不过,不少搞 translation 的从业人员大概连 translation lemma 都没听过就赶鸭子上架了,这也是理固宜然。

至于所谓的未来,其实也可以无关心。
不过 LZ 的格局也就是笑料。
具体来讲,大部分业内几乎人人都有关的重大事项都还早得很,不过应该还是有些寿命区别的。
因为业界的胡搞,C/C++ 差不多无可救药了(等 BS 和 HS 这些人搞不动了看看谁还敢鸟什么 teachability )。考虑到缺乏靠谱 CS 教育的惯性(体现在吹个 builtin xxroutine 的“新”语言出来就能糊弄不少没能力实现干净对应功能的这些语言的用户),能流行个四五十年就不错了。
SSA-based compiler suite 呢,大概也就是这个命,不过也许会发展过于简单粗暴,快速遇到瓶颈(who-knows)而更加短命一点。
ABI bug-to-bug comat 嘛,这代人退休了以后一不高兴可能就不管背后洪水滔天了吧……
虽然这些都是比商业 ISA 更长命的**历史遗留问题,不管怎么说这些还是有生之年可能看得到变化的。看看 AGI 这种 200 年内都未必八字能有一撇的东西都有人赌,这也算不了啥。

在此之上,区区 M1 算个啥口水?
作者: 积极李丽丽    时间: 2020-11-25 18:51
为什么要翻译?苹果多数代码是bc形式,部署还是原生机器码。除非某些贴别的库
作者: 艾的民    时间: 2020-11-25 18:51
苹果啥时候能出个吊打3950x的U再说
作者: Ronaldmi    时间: 2020-11-25 18:51
龙鑫的所谓兼容也无非是一段时间的过度的权宜之计,不必太当真,他真正要做的是老胡要自己要用自己指令集了。




欢迎光临 麦克雷 Mavom.cn (http://www.mavom.cn/) Powered by Discuz! X3.5