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