中国可以走出自己的路,把今天我们诟病的问题一一解决,还怕不能成为世界一极?_风闻
Opennovo-业余时政爱好者17分钟前
【本文来自《孙凝晖:拼算法还是拼新型基础设施?中国如何选择智能计算发展道路》评论区,标题为小编添加】
随着Windows On ARM的活跃,未来个人或工业算力不一定需要x86/x64体系,RISC-V和ARM独当一面是完全可期的。美国的芯片业和个人电脑随着高通X Lite的问世,已经纷纷开始布局ARM笔记本,且是高性能低功耗的笔记本,基本是向苹果M芯片看齐的。这样的发展脉络,中国完全可以不绕道X86/X64体系。从Windows On ARM开始,英伟达也会大举进入CPU,在CPU上集成GPGPU,灵活功能调用是一个趋势。
这个趋势对于中国选择发展道路是很友善的,一方面我们可以避开贵而难攀的复杂指令集,另一方面,我们只要在一个指令集上占的权重足够重,今天可以有Windows On ARM,明天就可以有Windows On RISC-V或Windows on 中国独有指令集。因为这一切,本质上是指令集脱敏的,指令集在未来可能就是一种驱动,在各种指令集的CPU上换各种指令集来使用;而相对更难的是“生态建设”。就像今天工业品和资源品不是随意就能制造的,所以俄罗斯可以用卢布绑定资源品,中国可以用工业品绑定人民币,这些都不是轻易能构建的,生态也是如此。
CUDA仍旧有很多不足,虽然托管内存让一些基础工作变得容易,但还是有很多与.net傻瓜式不同的基础工作需要考虑。像DirectX12的工作图“让GPU自主工作,绕过CPU瓶颈”。这功能是我长期希望的,过去分CPU部分和GPU部分,但我完全认同今天ARM CPU融合GPU、NPU到CPU中。中国网民长期昵称英特尔是牙膏厂,这足够可以品出我们对于性能的不满。在我的理想中,我最好CPU像GPU计算单元那样豪横的给计算单元数,4060给了3072个计算单元,我最好普通CPU也可以给3072个核,有的人说“核心调度很难实现”,我咋觉得这应该不难呢~~。在C#没有出现Parallel.For的时候,我做超线程的方法就是建一个n倍的任务列表,然后交给n个线程去执行,每当线程处理完时,就从任务列表里再取个任务来运算。如果你们说多核难以管理,处理器频率不能再增加,那我的理念和理解就是:频率快是单个计算单元的交付速度,核心多是这几个腾不开手时任由空余单元可以给我分担工作。从这个角度,底层硬件随便用什么指令集,只要能帮上层任务解决和交付就行了,上层没必要管下层怎么做的,下层也没必要管上层下一步要做什么,反正你有任务过来,我就依次往不忙的单元分配任务。或许有人会说“总线带宽不够”,那完全可以用电话线的容量思路,以这些计算单元面对的最大瞬时容量去布置。
总之:
1)中国网民不喜欢美国牙膏厂,原来英特尔是牙膏厂,现在AMD领先后也是牙膏德行,看着不爽。
2)AMD始终比英特尔送得起缓存,就好像L3不要钱似的,等我们搞定先进制程,除了频率提升外,从L1-L3的缓存最好都这样多送点。
3)别说调度问题,别说CUDA垄断,别以为只有硬件厂商在那里琢磨性能调度,写软件的也关心这事,如果硬件设计能让软件调度更省心些,这肯定是好事。
4)如果生怕一些硬件握手协议占用算力,那完全可以像Intel Ultra处理器上的LPE(低功耗能效核 (LPE-Core),就是在原来的E核基础上继续低功耗),用来处理一些硬件握手或执行存储等。即:要像.net那样,把一些底层跟硬件打交道的事,与普通程序员脱离,这些是基础驱动的事,别让普通程序员既操心应用算法,又操心底层问题(比如:分页内存,我为什么不能当它是连续的?)你分页或其它我意想不到的底层特色就会倒逼我必须去额外了解更多的底层秘密,这些是不必要的花费。或许这些时间花费可以通过购买英伟达的技术支持,但对于国内更广大的开发者,这并不是友好的。微软的.net语言能发展起来,除了CSDN外,微软自己的MSDN也有专门用来解答的中文网站,有中文的函数说明,但这些英伟达是没有的。
所以中国有充足的空间可以走出自己的路,把今天我们网上诟病的问题一一解决,你们还怕不能成为世界一极?