NVIDIA的超強處理器

NVIDIA輝達為什麼成為AI的王者?

· AI,nvidia

 

最近隨著AI浪潮,推動了NVIDIA處理器的需求,今年5月讓美國上市的輝達股價一飛沖天,從今年初到5月漲幅高達81%,一舉超越了所有的蘋概股,甚至在5/25當日飆漲24%以上,也帶起了所謂的AI概念股,一路狂飆至今。

因為,AI需要高速的運算能力,以及大量的資料處理能力,這個硬體最核心的角色就是處理器,但為什麼是輝達?為什麼不是處理器業界的龍頭Intel或是超微AMD,又或是在手機上稱霸的ARM?讓我們一起來從電腦架構說起。

電腦的架構:我們現在熟知的電腦架構其實在1970年代時就已經定義為,控制器CU、邏輯運算器ALU、記憶體、以及輸出輸入控制器I/O Controller所組成。這個架構是從大型伺服器延用至個人電腦上,當時個人電腦尚未誕生,所有的伺服器主要都是在做資料處理及數字運算,因此專家認為I/O這個部份只是需要少量的文字輸入輸出,加上簡單的圖表就足夠,所以就將控制器CU、邏輯運算器ALU都做在一起,稱為中央處理器CPU,CPU也包含了當時很陽春的圖形處理功能。

由於必須加上程式控制,才能讓處理器運作,因此處理器要加上相對應的指令集,才能對處理器下指令。在那個時代也有兩派的專家對如何控制處理器有不同的看法,一派是採用最直覺的方式,單一指令就執行單一動作,這種指令集稱作RISC,精簡指令集,另一派則認為這樣子會讓實際上的程式碼變得很長且很難讀,既然已經知道預計要做什麼事,例如送出資料存起來,為什麼還要將送出資料和存起來兩件事分開呢?還不如直接組合成一個指令,這樣更方便使用,這種指令集稱之為CISC,複雜指令集,很明顯的後面這種設計方式比較容易在上面進行軟體開發,於是這個架構就被Intel拿來做成x86系列處理器,最後被用在個人電腦上一直延用到今天。但我們回頭看看,RISC其實是更有效率的指令集,也就是說在程式設計上雖然用的指令比較多,但不會有隱藏的程式碼,就不會造成處理能力的浪費,在發生bug時也比較容易debug,這個指令集就被Motorola拿去設計68k系列的處理器,也被應用在當時的Apple II上,當時有人比較兩種個人電腦的效能,Apple II就完勝所有的Intel PC。現在的手機處理器ARM架構,也是採用RISC指令集。

再把時間繼續推進,隨著顯示器的進步及發展,螢幕從單色進步到16色,一直到256, 512色,接著因為遊戲及影音的技術成熟,推動高階顯示器的發展,因此影像處理的能力越來越重要,最後CPU在無法負擔這樣大量的處理負荷下,終於出現了GPU,GPU就是所謂的圖形處理器,主要的功能就是在處理影像。nVidia當時就決定以GPU出發,因為遊戲市場正好起飛,需求量大增,加上CPU市場被Intel寡佔,還不如在GPU上將技術發揚光大。

影像處理的能力其實和螢幕解析度有關,當解析度越高,螢幕上的像素越多,再加上色彩越豐富,每一個像素儲存的資料就越多,因此每一個動畫畫面其實就有數百萬的資料必須更新計算,再加上為了畫面流暢,根據一般影片,每秒至少要有24幀,才會跟得上我們平常影片的速度,更不用說為了做出更好的特效,每秒有可能做到至少30幀以上的圖片。

我們先看看圖片的處理方式:1. 壓縮 2.向量處理

影像壓縮

由於每一張影像畫面數位化後,儲存的資料會包含螢幕上的每一個像素,也就是說解析度越高,儲存的資料越多,再加上每一個像素的資料就是顏色,色彩越豐富,儲存的資料量越大,這時就需要將資料壓縮以節省儲存空間。壓縮方式又分為非破壞性資料壓縮及破壞性資料壓縮。所謂非破壞性資料壓縮,會將資料完全還原為原本的資料,沒有任何流失,也就是我們一般在檔案及硬碟文件上做的如Zip, LzH, 7z等,而破壞性壓縮則會允許一定程度的失真,大多是用在音檔或影像mpeg/jpeg/png上,因為人耳及人眼的分辨能力並沒有非常強大,因此可以在一些細微的變化上改用運算邏輯去彌補。而當使用壓縮效能越高的演算法,在解壓縮時所需使用的處理程序及時間就較多較長。而GPU既然是處理圖像/影像,就包含了基本的解壓縮處理。

向量處理

在動畫處理上,會將物件疊加在背景上,此時就只需要將物件的相對位址儲存起來,就不需要將整張圖片所有的像素儲存,而節省了存儲的空間,但相對上也增加了運算的時間。在大部份的電腦動畫上也會分為背景和移動物件,因為背景大多是不會有大量移動,或者是只有小幅度的規律運動,物件則會根據使用者的操控(遊戲)或是動畫設計,具有大幅動或是快速的移動。因此在影像處理上就會分開同時處理,這時平行運算能力就非常重要了。

由於壓縮及向量處理,再加上平行處理,這都需要利用指令集去完成,所以處理器的指令集對開發人員就非常重要了,這牽涉到開發人員是否能夠將這些並行的程序命令編程後,讓GPU發揮最高處理效能。這就是NVIDIA提供給開發者的平台及CUDA技術所在。

所以GPU其實是需要高度的平行處理能力,再加上有大量的即時資料處理運算能力,就成為今天NVIDIA建立AI處理器王國的基礎了!

歡迎大家在920日到社創中心參加我們的實體讀書會,一起交流討論。