PTT推薦

Re: [新聞] Nvidia覇主地位危矣?這些挑戰者做出便

看板Stock標題Re: [新聞] Nvidia覇主地位危矣?這些挑戰者做出便作者
pponywong
(pony)
時間推噓30 推:31 噓:1 →:21

※ 引述《breathair (拆了?簡單了)》之銘言:
: 小弟請教各位大佬
: NV最大的優勢,應該是CUDA
: CUDA讓各AI專家可以編程NV GPU
: 讓GPU跑你想跑的東西,而不侷限在圖形運算
: AMD正是落後在這裡
: 當大家都用CUDA編程AI晶片
: AMD不能用CUDA等於不能相容
: 於是AI晶片就被NV佔據極大優勢
: 以上不知對不對
: 如果對
: 小弟的疑問是
: 如果NV護城河是CUDA這種編程語言
: 而AI最大優勢又是編程
: 難道以後不會因為隨著AI的強大
: 各路AI晶片可以把CUDA編程
: 轉譯成自家AI晶片可以接受的語言
: 這樣護城河還會在嗎?

講一下圖學歷史好了

其實programmable GPU不是啥新概念
狹義的 GPU 把它定義成 3D 繪圖硬體開始
規格是 OpenGL 1.1 跟 DirectX 7.0

硬體設計是 fixed-function pipeline
繪圖主要分兩個步驟

1. Tessellation
三角形畫 - 由硬體 Vertex processor (VP) 處理

2. Rasterization
著色(填充) - 由 Pixel processor (PP) 處理

步驟1比較簡單,就是把3D model變成一連串的三維空間中的三角形資料
餵到步驟2 步驟2會依據光源設定/貼圖 去把三角形用pixel填充在螢幕上




離題一下:

那時繪圖規格還很簡單 沒有所謂的材質特性 反光阿 折射 漫散射都沒有
也沒有啥陰影的

光源只有背景光 (ambient light)
點光源 (spot light)
方向光 (directional light)

這樣功能 看起來很陽春 有辦法做出畫面好的遊戲嗎? 有的
遊戲引擎開發神人 John Carmark (id soft)
在1999年推出 Quake3 (雷神之錘3)
並寫出了 Quake3 Engine 到現在依然是封閉式場景的設計標準
quake3 engine 放棄了OpenGL提供的光源計算
利用場景分割 預先計算靜態光源生成lightmap
把 lightmap 結合 貼圖 (texture) 讓遊戲的關卡畫面擬真大幅提升

多年以後 當Valve利用quake3引擎 開發出source engine (Half-Life 2)
肯定會回想起把lightmap 大幅翻新的遙遠的午後

五年後的2004年 Valve公司推出半條命2
這遊戲依然是FPS+帶入劇情的頂級遊戲
Valve把lightmap改掉 改用物理光學公式radiosity
去計算新的光學貼圖 有興趣的可以看一下他們的pdf

https://advances.realtimerendering.com/s2006/
Mitchell-ShadingInValvesSourceEngine.pdf


回正題:
由於步驟1 太簡單
所有的bottleneck 都卡在 PP 像素填充速度
所以大部分時間 VP 都是閒置的
下一代的設計把 VP/PP 結合 從 fixed shader改成 unified shader
也是現在GPGPU的雛形
第一個這麼做的還是 ATI (所以AMD現在落後不要怪人阿)

unified shader只要tessellation工作做完了
就會被分配rasterization的工作
所以不會有硬體閒置的問題

shader的加強 加上OpenGL 2.0/DirectX 9.0的更新
讓開發者可以寫 shader program 去控制每個stage
shader的工作
這時已經有programmable GPU了

這邊是 OpenGL 的 GLSL(GL Shading Language) 範例
https://learnopengl.com/Getting-started/Shaders

微軟是推 HLSL (High Level Shading Language)
然後 NV 很找死的 又研發自己的語言叫做 cg (C for Graphics)
大家說老黃是因為CUDA才成為AI霸主
其實他在更早推出的cg才是

黃仁勳:沒有CG,輝達早就死了!挺過倒閉危機,他這一豪賭反轉壯大AI帝國

那時大學修電腦圖學 期末作業剛好是要搞 shader programming
結果助教也不教 GLSL 跑去用 CG 搞得資料更少更難寫
而且寫到一半才發現 我的爛顯卡根本不支援 cg這功能
還花了快六千多塊買一張NV顯卡才搞定

那時NV就開始大力推動電腦圖學
他有推出 GPU GEMS系列
GPU GEMS 還主打 cg
到了 GPU GEMS2/GPU GEMS3 就開始推 cuda 主打GPGPU了
算一算 也是十幾年前的事了

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.176.50 (臺灣)
PTT 網址

voyager520 08/28 14:36優文

GOOGLEISGOD 08/28 14:39推,但可以給個結論嗎

dragonjj 08/28 14:39幹 我都看不懂!什麼大學有搞電腦圖學?

lyxiang 08/28 14:40這一串討論的知識含量好高

cation234 08/28 14:40成大機械系就有啊 計算機圖學

cation234 08/28 14:42這二十年來一直有電腦DIY、一直玩電動的人

cation234 08/28 14:42都可以了解nVidia真的很厲害

關注過遊戲開發的都知道 那時遊戲除了畫面品質大幅提升之外 物理引擎的引進 讓整個3D遊戲更為真實 最出名的物理引擎就兩家 PhysX 跟 Havok NV 後來買下 PhysX 這家公司 把它的物理運算跟GPU整合 最新一代 PhysX 5.0 目前沒開源 已經整合進 nv omniverse 繼續發展得很好 開源的最新是 PhysX 4.1 對電腦遊戲怎麼運算物理的 可以去看程式碼

https://github.com/NVIDIAGameWorks/PhysX

Intel 過不久買下 Havok 但是沒發展得很好 後來微軟在 2015年又從Intel那邊買下 Havok 所以 NV真的是靠恆心才成功的

※ 編輯: pponywong (125.227.176.50 臺灣), 08/28/2024 14:51:45

zerro7 08/28 14:46結論就是NV準備了十幾二十年才有這成就

zerro7 08/28 14:46那些半路出家就想直接挑戰NV地位的...?

Lhmstu 08/28 14:55一個歷史

Lhmstu 08/28 14:56推推

roseritter 08/28 14:58推,考古

benny955619108/28 14:59先推假裝我看得懂

strayfrog 08/28 15:00看到Havok真的年代感出來了

wonder007 08/28 15:02以前修cuda重點都在平行加速運算而已

littenVenus 08/28 15:06老黃:窩真的要成佛了^O^

lise1017 08/28 15:10美國佬連造台車都費勁 還想造晶片?

brightest 08/28 15:10推cg 2007的時候在學校用cg寫ray Tracing 跟MEMC

Justapig 08/28 15:11好懷念噢 影像處理

Justapig 08/28 15:12政大叫做電腦圖學,一開始還以為是各種graph的數學

Justapig 08/28 15:12課,去了才知道是影像處理

brightest 08/28 15:13那個年代各種GPGPU都可以出論文 沒想到最後用在AI

Justapig 08/28 15:14以前都是學向量運算,現在顯卡真的是另一個世界

roots5071 08/28 15:15推避免被發現看不懂

Liandh 08/28 15:21我還以為資科都有教圖學..

duncan0319 08/28 15:23厲害唷

faniour 08/28 15:30好多以前沈迷遊戲的時候的回憶

MiniArse 08/28 15:33我以為第一款programmable shader 是 NV GeForce3

MiniArse 08/28 15:33支援DX8

capssan 08/28 15:48現在回頭看老黃真的就是夠堅持 當初電話會議cuda時

capssan 08/28 15:48不時就被質疑

fox1020 08/28 16:24

a154789ar 08/28 16:47恩恩恩,我也有一樣的看法,結論是NV很屌對吧

GooglePixel 08/28 17:00我沒有期待股板能看到專業文 只是來嘴砲的

luten 08/28 17:07推,您可以把前一篇推文整合起來也是一篇優文

sheng612 08/28 17:09本來不懂看那個GOOGLE前CEO演講就懂了 CUDA

sheng612 08/28 17:09其他間只能做相容,沒有一間有這麼多資料累積

la8day 08/28 17:10nv成為遊戲霸主之後還是低迷很久啊 技術好和獲利也

la8day 08/28 17:10是兩回事

nyjytdgjf 08/28 17:13先推

AirLee 08/28 18:11最早雙核的CPU出來不是就有平行運算了?不懂

cation234 08/28 18:31樓上這種問法實在是未夠班 我幫忙改寫提問

cation234 08/28 18:32「早年單核心CPU就有多路CPU平行運算了啊?不懂」

strlen 08/28 19:07JC真神人也 現在也在自己開發AI

soapmactony 08/28 21:05講到Physx很有趣,想當年AEGIA可是有像3dfx推出VOOD

soapmactony 08/28 21:05OO的這種圖形專用卡一樣,推出了一張全球首張物理引

soapmactony 08/28 21:05擎加速卡稱PPU

soapmactony 08/28 21:06後來nv買進去後,開始主打稱作CUDA的GPGPU可以用Phy

soapmactony 08/28 21:06sx程式庫算物理引擎

darkangel11908/28 21:14神人!

guteres 08/28 22:11記得以前還有一堆wavelet分析論文

mdkn35 08/29 06:30那時候GPGPU還只能用C++寫 以為只能算矩陣運算

mdkn35 08/29 06:30結果現在python package一call 跟夢一樣什麼都有