有没有把显存作为系统内存使用的技术?
看着题主这个问题下面写了长长那么一大段文字,真的是隔着屏幕都能感受到题主激动的心,颤抖的手,仿佛发现了某个发财的蓝海。
我猜很多答主猜错了题主意图了(不然就是我猜错了),题主估计想说的是海鲜市场那么多淘汰下来的老牌卡皇周围围了一圈显存,拆下来改造一下拿来当PC内存卖,然后成为当内存市场的"卡诺基二代",之后必能日进斗金,迎娶白富美,走向人生巅峰.

可惜我这人不太懂人情世故,比较喜欢扰人清梦,对不起,我来了,梦又双叒叕要碎了,现在我们进入正题:
我们先来难度低一点的。虽然可能有点离题,但我怕有些人误会(估计也很多人误会了),这个,叫GDDR,不是HBM

这个,才叫HBM

看到没有,HBM是和芯片焊死在一块的,我们先不说神奇的华强北能不能改造成功,首先你拆不下来,你可能一拍大腿,嗨呀老黄怎么那么坏啊,为什么要把显存焊死在芯片上,就是怕我们拆下来改装卖了么。

诶,这你真误会老黄了,不是因为那些肮脏的商业py交易要焊死在上面的,而是HBM想要实现那种低功耗,低延迟,高带宽的访存特性,就必须焊死在芯片上,在集成电路的底层有一条物理定律锁死的铁律,按我们中国人的古话叫“近水楼台先得月”,也就是离得越近,路程越短,延迟越低,所以就焊在GPU芯片旁边无疑是延迟最低的一种做法。

比如在上图你看到的2.5D结构就是我们现在普遍看到的,在未来还会有3D的结构(延迟更低,更拆不下来),所以想拆内存芯片改装一下拿来卖的想法,到这里基本已经不现实了.
那你可能又问了,那不拆就不拆呗,我连GPU+HBM显存一起改造,打包起来卖行不行?
当然可以,通过IOMMU我们的CPU(在明面上看上去)也能访问显存,自然可以把显存当成内存用,但是啊但是,IOMMU并不能缩短你访问显存的路径,也就是说哪怕在上层软件上看上去和用普通的内存并没有什么区别,但实际上访存的路径是
CPU--->PCIe Root Complex--->PCIe 链路---->GPU PCIe Endpoint--->GPU IOMMU / GMMU / MMU--->GPU Memory Controller--->HBM
你先别问别的,你就说这个访存路径够不够长,还记得我上面强调的那个"近水楼台先得月"么,离得越近,路程越短,延迟越低,那么长的路径,延迟那不得直接爆炸啊.来,看下表,1us以上延迟,怕是连几十年前的DDR1内存条都打不过,所以这玩意哪怕你改造成功了,也没人买

我知道你会说了,那我不打HBM的主意了,你看现在这个GDDR芯片,长相和DDR芯片差不多,哇靠现在一个8G 12G显存的女骑士矿渣魔改卡都才卖两三百,我能不能拆下来转手废物利用一下,改造成PC能用的内存条,转手再卖出去?

现在我们上点难度,经常搓FPGA的同学都知道,想要访问DDR内存,最关键的在于DDRC(DDR控制器,也是整个内存IP中技术含量最高的部分之一),但是,GDDR和PC用的DDR内存,在架构和访存方面可以说是天壤之别.
CPU的DDR,讲的是小粒度,随机访问,延迟比带宽敏感,并对cache miss极度敏感
GPU的GDDR,讲的是大批量,顺序访问,高吞吐.
啥意思呢,CPU就像你家楼下的食杂店,GPU就像粮食批发商,大部分CPU上运行的任务,就像你想炒一个番茄炒蛋,拿几个鸡蛋就够了,食杂店就能买,而你去批发商那边拿货,你不一次性进货个几十箱鸡蛋,别人都不想鸟你.
如果你是办酒楼办宴会几百人得吃饭的,那你你一次拿几十箱鸡蛋,那叫高吞吐,但是你只想吃一盘炒鸡蛋,你拿几十箱鸡蛋对你有啥帮助么?
显然不是带宽越高吞吐越高平均延迟越高就是算的越快的,打个比方就像某个公司说我司平均工资月薪5w,那你得小心了,凭啥人家要加平均两个字而不是说给你开5w呢?
不是说带宽越高就越快的!
所以,GDDR的内存控制器和协议和PC的内存控制器协议完全就不是一回事,甚至电气接口都完全不一样,GDDR动不动跑20+Gbps,PCB走线等长极其严苛,直接跑包炸,除非你重新设计CPU从一开始就以GDDR的架构去设计芯片,那你当我没说(而且还真有,有些游戏机还真是这种架构),但你都自己流片CPU了,你还不如多操心怎么把芯片先卖出去,或者直接转行造内存。
所以靠拆开芯片发财的这条路也堵死了。
好吧,眼看也十二点多了,我们还是务实一点参考下图洗洗睡吧
