← 回到天際線 寫程式的人第 2 層 / 31

EP 702020-02-051:34:43

Keller 談晶片與第一原理

Jim Keller

傳奇晶片架構師談分支預測怎麼變準、摩爾定律為何沒死,也跟 Lex 為了自駕與 AI 吵了起來。

Jim Keller: Moore's Law, Microprocessors, and First Principles | Lex Fridman Podcast #70在 YouTube 看 ↗

重點6 條

  1. 分支預測怎麼變準的:早年電腦只靠「跟上次一樣」猜分支方向,準確率 85%;後來換成計數器、再換成類似神經網路的模式辨識,準到 99%,代價是儲存量從一千個位元暴增到幾千萬個位元。
  2. 晶片要定期砍掉重練:逐步加功能、加緩衝區遲早會碰上報酬遞減,這時候整個重寫往往比繼續疊加更快也更簡單;他自己習慣每三到五年重來一次,x86 這一行傾向十年才重寫一次,他認為應該是五年。
  3. 摩爾定律為什麼沒死:不是靠單一條技術曲線撐著,是一堆各自會遇到報酬遞減的技術疊在一起,才湊出整體的指數成長;電晶體目前大約一千乘一千乘一千個原子,理論上還能再縮到十乘十乘十。
  4. 訓練是不是一種搜尋:Lex 主張優化網路權重本質上也是搜尋,Keller 堅持那是不同的東西,比較像一層層的投影,而且網路要優化的高維空間跟棋譜資料庫完全是兩回事;兩人最後以「給定的搜尋空間與找出來的搜尋空間」這個說法收住。
  5. 自駕晶片的兩難取捨:機器學習演算法變化太快,怕硬體規格訂了就跟不上;又要在通用運算跟客製化加速器之間抓平衡。他也跟 Lex 為了「自駕算不算單純的彈道問題」吵了起來——Keller 認為主要是注意力問題,電腦本來就擅長;Lex 認為讀懂場景、揣測其他用路人的意圖遠比聽起來複雜。
  6. 工匠手藝與第一原理:他拿組裝線、做小提琴比喻工程的成就感;也提到 Musk「不管做到哪都只是局部最大值」的信念,以及自己臨時讀了二十本管理書就去當主管的經驗。

時間軸23 段

01 02:09
電腦的抽象層

從大腦與電腦的差異聊起,Keller 把電腦架構拆成原子、電晶體、邏輯閘、功能單元一路疊到資料中心的抽象層,並指出一支程式九成執行時間只用到約 25 個指令。

02 06:49
CPU 跟 GPU 怎麼不同

現代 CPU 一次抓進大量指令再找出彼此的相依關係、平行執行,這叫「找出來的平行」;GPU 則是題目本身給定大量可平行處理的資料(像畫面上的每個像素),是「被給定的平行」。

03 11:27
分支預測進化史

從早年只猜「跟上次一樣」(85% 準)、進步到用計數器記錄歷史(92% 準),再到用類似神經網路的模式辨識抓到 99% 準;代價是儲存量從一千個位元暴增到幾千萬個位元。

04 17:54
跑很多次結果一定一樣嗎

只要程式本身正確,執行結果一定是決定性的,即使執行路徑本身充滿不確定性。早年做 3D 繪圖加速時,同一個場景每次算出來不一樣,有人覺得無妨、有人覺得不行,HPC 圈則堅決反對;現在 AI 反而有人刻意用有雜訊的算法換速度。

05 21:01
最自豪的設計是哪個

Keller 說「傳奇」這個形容很怪,家裡兩個小孩聽了都覺得好笑;他更感興趣的是人怎麼一起把電腦做出來,開始把組織設計當成一種電腦架構問題來想,人就是功能單元。

06 23:07
食譜跟理解的差別

食譜能讓人照著做出麵包,卻教不會做歐姆蛋;只有真正理解背後的原理,才能把技能用到新的地方。他說人在設計東西時常常只是在照著一疊食譜做,不是真的理解。

07 26:03
晶片要定期砍掉重練

逐步加功能、加緩衝區遲早會碰上報酬遞減,這時候整個重寫往往比繼續疊加更快、也更簡單;他自己習慣每三到五年重來一次,x86 這一行傾向十年才重寫一次,他認為應該是五年。他是 1998 年 x86-64 規格的共同作者。

08 30:32
摩爾定律為何沒死

摩爾定律原本說電晶體數量每兩年翻倍,現在比較接近每兩年縮小到 0.6 倍;他說摩爾定律一直被預言再過十到十五年就會死,有一度說五年,卻始終沒有發生。

09 33:56
背後是幾千項創新疊起來

摩爾定律撐得住,不是靠單一條技術曲線,而是幾千項各自會遇到報酬遞減的創新疊在一起;電晶體目前大約是一千乘一千乘一千個原子,量子效應在二到十個原子就會出現,理論上還能再縮到十乘十乘十。

10 36:34
電晶體變多,設計思維要跟著變

他用磚塊變小的比喻:磚塊變小就該換一套蓋房子的方法。晶片設計有兩個相當硬的限制——人大致上沒有變聰明、團隊也沒辦法無限變大,所以要靠抽象層分工;而且更快的電腦不會自動做出更快的電腦,因為有些演算法是平方成長。

11 39:46
數學複雜度的階梯,跟一場關於搜尋的爭論

運算從純量、向量、矩陣一路疊到 AI 處理的「拓撲」問題;Lex 主張訓練神經網路本質上也是一種搜尋,Keller 不同意,認為那更像是一層層的投影,頂多推論那一段算搜尋;兩人最後以「給定的搜尋空間與找出來的搜尋空間」這個說法收住。

12 44:31
硬體底層還是加減乘除

不管演算法多先進,晶片裡做的還是加、減、乘、比較這些基本運算。Lex 提到 Sutton 的論點:這幾十年 AI 的進展多半來自運算力增加;Keller 用軟體圈「過早優化」的說法接話:寫軟體的同時,底下的硬體一直在變快,摩爾定律如果延續,AI 研究就該把這點算進去。

13 50:39
每躍升十倍就長出新的運算方式

他估計電晶體在十到十五年內還能再縮小約一百倍。Bell's Law 講的是大型主機、迷你電腦、工作站、個人電腦、手機一路交替,他說推動這條序列的是摩爾定律;Raja Koduri 則說運算力每躍升十倍就會長出新的運算方式(純量、向量、矩陣、拓撲)。被問到身為這個未來的硬體推手有什麼感覺,他說覺得幸運,但就算不是他也會有別人做。

14 55:10
我們是演化的下一步嗎

話題轉向物理與哲學:現在的機器學習算出來的答案,沒人知道是怎麼得到的;被問到大腦是不是有什麼特別之處、意識能不能被複製,Keller 說從物理證據來看大腦似乎沒什麼神奇之處,但從自己的主觀經驗來說,他也說不準。

15 1:00:11
宇宙是電腦嗎

他認為宇宙如果真是一台電腦,也是一台很奇怪的電腦——光是算出量子效應要花的運算量就多到接近無限;也順勢調侃物理與哲學這兩門「GRE 分數最高的學科」纏鬥了兩千年,還沒有答案。

16 1:03:19
指數成長的未來,跟 Musk 的思維方式

聊到 Kurzweil 式的技術指數成長會不會一直持續;矽本身幾乎不用錢,真正的成本在把原子排好的設備,而設備的成本會一路往下降。他也提到 Musk 的做法是先想清楚要什麼樣的原子排列,再回頭想辦法做到;多數人是從手上既有的東西去微調,幾乎沒人有這種思維。

17 1:05:26
自駕算不算單純的彈道問題

Keller 主張自駕主要是注意力問題,電腦本來就擅長;從影像判斷距離與形狀,訓練神經網路就做得到,是單純的資料問題。Lex 強烈反對,認為讀懂場景、推斷被遮住的物體、揣測其他用路人的意圖,遠比聽起來複雜,兩人吵了起來但沒有談攏。

18 1:12:13
監管單位在意的是情境,不是技術規格

他談到跟美國與歐洲監管單位開會的經驗:對方在意的是正面撞擊、閃避行人這類具體情境,而不是規定煞車一定要用液壓系統;打造車用晶片的兩難是機器學習演算法變化太快,又要在通用運算與客製化加速器之間抓平衡。

19 1:16:10
工程是一種工匠手藝

他拿做小提琴、組裝線工作來比喻工程的成就感——複雜但熟練之後會有滿足感,這種「複雜熟練行為」不是工程獨有;他也認為組裝線的工作比外界想像的複雜得多。

20 1:20:53
跟 Musk 共事學到的事

他形容 Musk 的第一原理思考「不管做到哪都只是局部最大值」,拆掉假設的過程有時很痛苦;也提到自己讀書的習慣——一本書往往是別人用二十年熱情濃縮成的兩百頁,他曾為了轉任管理職臨時讀了二十本管理書。

21 1:26:17
自駕幾年內能解決嗎

Lex 問自駕能不能在幾年內解決,Keller 說一定可以:搞懂彈道、規則與地形,看起來相當可解,並拿語音辨識從頻率分析改用深度學習之後突飛猛進來比。Lex 再次反對,認為只要把人放進來就不再只是彈道問題;Keller 回說車子的轉向與加速比電腦慢得多,人本身也大約落後現實半秒。Lex 最後承認自己可能會被證明是錯的。

22 1:28:55
AI 奇點,他不太擔心

被問到超級智慧是否構成存在威脅,Keller 說不太擔心,理由是人類社會本來就是分層的,就像動物界裡各有各的生態位;他不覺得比人類聰明很多的東西會在乎人類在乎的那些小事。

23 1:32:39
結尾:最快樂的時刻與人生的意義

他說不想重溫過去任何一個快樂時刻,比較喜歡「有點樂觀又帶點對未知的焦慮」這種狀態;被問到人生的意義,他說宇宙不知道為什麼就生出了原子,原子構成了我們,我們做事、想通事情、探索世界,就是這樣而已。