Re: [請益] Shader 是抽象層?
※ 引述《lovesnake (LoyalDog)》之銘言:
: 標題: [請益] Shader 是抽象層?
: 時間: Wed Mar 4 23:35:35 2015
:
: 看了一堆文章頭昏腦脹決定直接問了!
:
: 看Nvidia的CUDA架構……
: 每顆SP都是一樣的東西,哪來分什麼shader
: 但之前的Unified Shader又強調硬體上將
: Shader整合
: 然後看著Graphics Pipeline……
:
: 那些究竟是抽象的東西,還是硬體上真的這樣做呢?
看年代
基本上GPU硬體的發展過程,就是一個特化結構朝向通用結構發展的過程
最早最早的顯示卡(當時叫3D加速卡)
就是把整套rasterize-based graphics pipeline
用硬體整個實作出來
今天我們把這種完全固定功能,只能由API作一些參數改動的稱為fixed-pipeline
但是fixed-pipeline的功能太受限,無法應付日新月異的演算法
就把fixed-pipeline中特別需要靈活性的兩個stage->Vertex Pixel拆出來
在裡面加入類似於CPU的設計,有一組相對簡單的指令集,可以作有限編程
進入programmable pipeline的年代,開始有vertex shader和pixel shader
而這些指令集需要一種程式語言來描述,這就是所謂的shader language
早期的vertex shader和pixel shader是兩種不同的硬體
發展到後期發現同樣的運算單元在兩個地方都出現是很不經濟的
開始有硬體商思考要讓vertex shader和pixel shader共用硬體
最早是ATI用在遊戲主機上,這就是stream processer的開始
從這個年代硬體就朝向General-purpose GPU (GPGPU)的方向發展
所以也有了CUDA之類的東西出現
簡單的說 fixed -> programmable -> general purpose這是一個歷史進程
但是回到硬體層設計說,有些東西是沒辦法programmable的
越靈活的運算單位,所需要的電晶體就越高
一顆CPU核心和一顆SP核心,die size可能差個幾十倍
因為CPU裡面有很深的pipeline(不是graphics pipeline的那個pipiline)
有branch-prediction,有很大塊的register和cache
相對的來說就是編程靈活度和異核協調性是完全不同的
總而言之GPU設計就是一個在靈活和效率中間找尋新的平衡點的過程
: 呃…
: 換個問法…… 像是resterizer,他是硬體直接做還是透過GPU General 的 IS拼出來的呢
: ?
目前的resterizer都是硬體實作
類似的情況還有texel unit / blending unit
這些都是作成fixed比作成programmable有更小的die size
靈活度某種程度上是必要犧牲
當然隨著年代推進,programmable blending也越來越重要
所以下一代的硬體也都有這功能了
: 我的抽象層是指這個……
:
: 其他像是VS FS GS TS 等等,是有專門的硬體實作他們個別的功能。 還是也是都相同的
: 硬體,透過不同的IS去拼出來的呢?
programmable pipeline的年代,VS / PS是不同硬體
GPGPU的年代 VS / PS=FS / GS=TS是同一個硬體
:
: 謝謝
:
: 話說計組人腦也很好理解啊XDD
: ※ 編輯: lovesnake (140.121.221.204), 03/05/2015 00:38:12
: 推 cowbaying: 這個問題首先要看driver寫到哪邊 03/05 08:39
: → cowbaying: 記得是04還是05年開始 顯卡硬體改為stream processor 03/05 08:41
: → cowbaying: 這個部份要細看一下CHIP的diagram 03/05 08:46
: 推 cowbaying: 記得沒錯 除了繪圖卡有硬體著色器外 一般的卡都是由 03/05 08:47
: 推 cowbaying: 驅動程是轉譯成SP能辨識的資料 03/05 08:48
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.32.97
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1425531225.A.23D.html
推
03/05 12:59, , 1F
03/05 12:59, 1F
推
03/05 13:11, , 2F
03/05 13:11, 2F
→
03/05 13:19, , 3F
03/05 13:19, 3F
→
03/05 13:20, , 4F
03/05 13:20, 4F
推
03/05 13:31, , 5F
03/05 13:31, 5F
→
03/05 13:33, , 6F
03/05 13:33, 6F
→
03/05 13:33, , 7F
03/05 13:33, 7F
→
03/05 13:33, , 8F
03/05 13:33, 8F
→
03/05 13:35, , 9F
03/05 13:35, 9F
推
03/05 13:36, , 10F
03/05 13:36, 10F
→
03/05 13:37, , 11F
03/05 13:37, 11F
推
03/05 13:57, , 12F
03/05 13:57, 12F
→
03/05 14:09, , 13F
03/05 14:09, 13F
→
03/05 14:15, , 14F
03/05 14:15, 14F
推
03/07 15:36, , 15F
03/07 15:36, 15F
推
04/10 08:50, , 16F
04/10 08:50, 16F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章