Re: [情报] Intel 暗示著Xe将采用全新开放式互联技术

楼主: hizuki (ayaka)   2019-04-10 15:08:11
※ 引述《comipa (绫崎若菜家御用)》之铭言:
: https://www.servethehome.com/new-intel-cxl-details-
: at-intel-interconnect-day-2019/
:
: 只讲最简单的部分, 因为细节我也不懂
:
: 再来就是CXL Protocol
: 跟PCIE很大的不同就是 CXL允许CPU跟CXL卡上的加速器(Accelerator)互相直接存取对方
: 的资源, 包括Memory, Cache, IO.
: 举例来说目前的GPU运算 你可能要先从CPU塞资料给GPU,GPU再搬到自己的内存
: 接着叫GPU算 算完再走PCIE DMA传回系统内存. 可是用CXL Protocol的话对CPU来说
: 就像是直接搬资料进GPU的内存, 或是反过来GPU可以直接从CPU的系统内存搬资料过
: 去过程简化很多, 延迟应该也会降低.
:
: 这个跟AMD当年想做的HSA我觉得其实就是很像的东西,只是异质核心(Accelerator)改外接
: 重要的是CPU跟这些核心之间可以直接存取对方的资源. 而且理论上这也CXL spec是公开
: 的, AMD的GPU/CPU要支援也是允许的才对
CXL.memory 看起来是这样的东西,因为我还没有看SPEC,其实有SPEC也没有什么用,
多数的时候都是直接买IP来看RTL比较快
假设目前都有IOMMU的情况,先不考虑memory synchronization(内容一致性)问题
在PCI-E 协定下,device去access main memory要如何做?
将Main memory page全部mapping进IOMMU,device即可通过bus去
access这部分memory,当然中介实际上可能是IOMMU去访问,把资料
丢回来
如果有NUMA协助,还不太用考虑cache的问题,或者几个devices
在抢Memory controller的问题
反过来,如果CPU要访问PCI-E bus上的device的内部memory是否可能?
完全可以,如果不考虑memory address的问题,完全可以把device的
internal memory全部映射出来
但是device必须有个而外的module去应付PCI-E host这边的请求,
很有可能必须要打断device内部的工作
device之间能不能互相访问对方的memory?
完全不行,PCI-E协定没有处理这样的问题
如果考虑一致性的问题,那真是噩梦了
如何保证device在访问同一块memory的时候别的device没有在ᄚ妘o边?
就算不考虑software上的一致性,光是抢bus的控制权就打死人
: 推 kira925 : 有可能 共享快取/内存位址本身就很容易包 04/10 11:22
: → kuma660224 : 这只是个传输协定,大概没啥大用 04/10 14:03
: → kuma660224 : 因为传输频宽还是卡在PCIE 04/10 14:03
: → kuma660224 : 除非根本不做插卡式独显 04/10 14:04
: → kuma660224 : 搞超级APU或立体堆叠高频宽串连共用内存 04/10 14:05
: → kuma660224 : 然后主流GPGPU软件生态系是一次搬运完 04/10 14:06
: → kuma660224 : 之后全部在数百GB/s高速VRAM来回运作 04/10 14:06
: → kuma660224 : 全部算完再从PCIE丢回结果 04/10 14:07
: → kuma660224 : PCIE的线路无论用什么传输协定,频宽都小 04/10 14:08
: → kuma660224 : 那只是减少第一笔资料取得的延迟程度 04/10 14:08
: → kuma660224 : GPGPU串流处理需要超大频宽 04/10 14:09
: → kuma660224 : 与其CPU/GPU传来传去的效率提升 04/10 14:10
: → kuma660224 : 多数用途应该全资料先送进VRAM,比较快 04/10 14:10
我对GPU研究不多,只简单讲一下
很少有类似GPU这样自己内部有大量memory,然后资料主要是依赖自己内部运算的
很多的设备都是仰赖外部输入,将资料直接递交给main memory,或者访问
main memory自己内部都只有cache
OpenGL ES我是有一点点认知的,DirectX和vulkan我不熟悉,麻烦别人补充
绘图资料从Main memory搬运到GPU的memory中去,GPU其实基本不用回写
什么东西到main memory当中去
你物件移动,是汇入新的shader去让画面上的物体移动,至于移动的结果
GPU是不会告诉你的,直接在内部memory运算好就行了
所以你不会知道物体是否穿模了,或者环境光设定的过分了,太亮这样的问题
因为shader的结果你其实不会知道的
所以其实对GPU这样的应用来讲,这个新的协定完全没有什么作用
至少对使用OpenGL ES的程式毫无用处
这个协定真的可能对加速卡什么做科学运算的比较有用,只有他们才需要
频繁的和CPU做资料交互

Links booklink

Contact Us: admin [ a t ] ucptt.com