# 吉姆·凱勒：摩爾定律、微處理器、抽象與第一性原理

> 晶片架構師凱勒談摩爾定律的演變、微處理器設計、抽象層次的取捨，以及用第一性原理思考工程問題。

- 原標題：Jim Keller: Moore’s Law, Microprocessors, Abstractions, and First Principles
- 期數：特別節目
- 釋出日期：2020-02-05
- 嘉賓 / 主題：吉姆·凱勒：晶片與第一性原理
- 網頁版：https://lex.qiaomu.ai/tw/ep/jim-keller/
- 官方頁面：https://lexfridman.com/jim-keller/
- 精讀字數：約 9148 字（閱讀約 20 分鐘）

> 本文為 lex.qiaomu.ai 基於原始訪談的 AI 改寫中文精讀，非官方翻譯；引用請註明出處並連結網頁版。

吉姆·凱勒（Jim Keller）在晶片行業幹了四十年。這幾十年裡，他聽到最多的一句話是：摩爾定律快撐不住了。

三十年前就有人放話，說它還有十到十五年的壽命。十年後，這個數字變成還有十到十五年。再往後，有人說只剩五年了，過一陣又漲回十年。等他加入英特爾，同事告訴他摩爾定律已死。他的第一反應是有點遺憾，畢竟這是一家靠摩爾定律立身的公司。第二反應是：它從誕生那天起，就一直"快要死了"。

凱勒做過 AMD 的 K7、K8、Zen 架構，做過蘋果的 A4、A5 處理器，是 x86-64 指令集和 HyperTransport 互聯規範的共同作者。他在特斯拉負責過 Autopilot 的硬體，現在在英特爾。這期訪談表面上聊的是晶片，繞來繞去講的其實是同一件事：怎麼把一個複雜問題拆到不能再拆，再一層層搭回去。

## 大腦和電腦，現在還比不了

按凱勒的說法，計算機裡只有兩樣東西：記憶體和計算。到今天為止，幾乎所有計算機架構都是全域性記憶體式的。程式把資料從記憶體裡拉出來，做一組相對簡單的運算，再寫回去。取數和運算分開，互相解耦。

人腦不是這樣。它一團亂，儲存和計算揉在一起，沒有清晰的功能分割槽。人觀察到的是一層層神經元，有區域性連線也有全域性連線，資訊以某種分散式的方式存著。人們照著這個思路在計算機裡搭神經網路，也有數學在背後支撐，但凱勒不覺得這套理解已經很深。沒有誰能指著一個神經元說，它完成了這樣一個具體的計算。兩邊都還沒搞明白，所以現在談對比，純屬隔靴搔癢。

## 從原子到資料中心

計算機工程最迷人的地方，是它有一套相當清晰的抽象層級。

最底下是原子。原子拼成矽、金屬這類材料，材料做出電晶體。電晶體往上搭出邏輯閘。邏輯閘再組合成功能單元，比如加法器、減法器、指令解析單元。功能單元放進處理器核心裡，十幾個核再拼成一臺現代計算機，然後才是程式、彙編、C、C++、Java、JavaScript，一路到資料中心。

凱勒說，從原子到資料中心，每一層都能被單獨拿出來討論，這就是計算機行業能容納上千人協作的原因。每一種層級背後都需要不同訓練背景的人，有人懂物理和材料，有人懂電路，有人懂作業系統。

問他自己最喜歡哪一層，他的回答很乾脆：我不在乎。這大概就是他的風格。他不站隊，哪一層都能聊，也都願意去搞明白。

指令集這一層的穩定性讓他印象深刻。ARM 的指令集幾十年了，掰開來數就是載入、儲存、乘法、加法、減法、條件跳轉這些基本操作，真正有意思的指令沒有幾條。一個程式跑起來，90% 的執行時間只落在 25 條指令上。這些東西定義於幾十年前，至今依然有效。

> "指令集相對穩定，是因為最基礎的部分很早就被定義清楚了。真正天天在變的，是它下面的實現。"（吉姆·凱勒）

## 計算機在猜你下一步往哪走

老式計算機取一條指令、執行一條，按順序來。現代計算機完全不是這樣。它一次性取進幾百條指令，找出它們之間的依賴關係，畫成一張圖，再把這張圖拆成小塊丟給不同單元並行執行。

想要並行，前提是能看清依賴。可程式裡到處是分支，平均每六條指令就有一個判斷。要一次取五百條指令、畫出完整的依賴圖，就意味著得把其中大概 100 個分支裡 99 個都猜對，否則你算出來的圖本來就是錯的，白忙一場。

於是現代 CPU 裡有了一臺小型的專用"超算"，唯一的工作就是預測分支往哪走。

猜分支這件事的演化很能說明問題。二十年前的做法簡單粗暴：記住上一次這個分支走了哪邊，這次照猜。準確率大概 85%。接下來有人想，不如加個計數器，走一次加一，走反了減一，用有符號數的高位來判斷方向。準確率漲到 92%。再往後人們發現，同一個分支走哪邊，跟你怎麼走到這裡的有關。如果前文在講鮑勃和簡，判斷是一種走法；如果前文換成鮑勃和吉爾，判斷又不一樣。於是把歷史路徑也吃進來，準確率繼續往上走。

現代分支預測器的做法已經很像一個小型神經網路，同時跑幾套不同的預測演算法，再用一個選擇器挑出最靠譜的那個結果。

代價是什麼？凱勒給了一個對照組：從零基礎做到 85% 準確率，只需要一千個位元。要做到 99%，需要幾十兆位元。從視窗只有 50 條指令到視窗有 500 條指令，算力投入差了三四個數量級。這個賭注下得很重，但沒有它，現代處理器的效能根本無法兌現。

猜錯的代價也沒那麼慘。執行單元會走錯一條路，做了一堆無用功，但有些計算結果依然有效。凱勒打了個比方：讀一本書，你誤解了某一段，你對下一段的理解有時候不受影響，有時候全盤皆錯。處理器也是這樣，它一邊往前衝，一邊記錄資料到底變了沒有。等回頭來做修正時，它會判斷哪些活兒得重做，哪些可以直接採用。

## 自己找到的並行，和被人告訴的並行

凱勒把並行分成兩種。

一種是"自己找出來的並行"。程式本身是一段順著走的故事，我讀了第一句才讀第二句，前後有因果。但仔細拆，某些句子調換順序並不改變意思。"他又高又聰明"，高和聰明誰先誰後無所謂。換成"那個高個子男人穿著紅襯衫，襯衫是什麼顏色"，順序一亂，指代就亂了，依賴關係立刻浮現。現代處理器的核心工作，就是在這種敘事裡挖出隱藏的並行。

另一種是"被告訴的並行"。螢幕上有一百萬個畫素，每個畫素的處理公式一模一樣，先處理哪一個都行。這種情況不需要挖，因為它天生就是並行的，是程式主動告訴你的。今天說的 GPU，處理的就是這類活兒。

## 程式跑一百次，每次路徑都不同，答案卻每次都一樣

有個細節聽起來很神奇。同一段程式跑一百次，執行流每一次都不一樣。哪條指令先執行、哪條後執行、什麼時候猜錯、什麼時候繞路，全都是隨機的。但最終結果保證一致。

原因很清楚。確定性是程式語言的形式定義。語言規範裡就寫死了，同樣的輸入必須給出同樣的輸出。如果做不到，寫程式的人會瘋掉。你得到一個錯誤答案，然後開始排查，到底是邏輯錯了，還是浮點誤差，還是排程順序。所有人都會想要一個開關，按下去就強制走確定路徑。

凱勒覺得這件事有點好笑的地方在於：輸入進現代計算的資料本身噪聲極大，攝像頭的畫面、感測器的讀數、語音訊號，全是模糊的。可人們偏偏要求最後那個答案絕對乾淨。AI 領域有人反其道而行，故意讓計算帶上噪聲，因為網路的收斂過程本來就是從寬到窄，最後那點精確度無關緊要，乾脆提前切到下一輪。這個思路在科研裡能提速，在產品裡就讓人抓狂。

## 把組織當成一塊晶片來設計

凱勒有個觀察，最好的計算機架構師往往對人沒興趣，最好的管理者往往不懂怎麼設計計算機。這兩件事本是同一件事的兩個側面。

幹了多年晶片之後他意識到，人可以當成功能單元來看。組織設計可以當成一次計算機架構設計。人就像計算單元一樣各不相同，有人擅長跳躍性地想出答案，有人擅長把已有方案評估得無比清楚。好團隊的關鍵是有足夠多樣的人，讓兩種能力都能發揮作用。

他說了一句話很扎心：電腦科學裡 99% 是汗水，1% 是靈感。但那個 1% 極其重要。你必須先有 99% 的鋪墊，同時那 1% 不能缺。有人一輩子只願意做那 1%，也有人一輩子只肯做那 99%，兩種人湊在一起才能把事做成。

問題也在這裡。人畢竟跟晶片不同，你說一句話，對方可以給出一百萬種反應，還互相糾纏。什麼時候該介入，什麼時候該放手，這件事在計算上無解。

## 菜譜與理解

凱勒用一個麵包的例子區分了兩種東西。

菜譜說：拿麵粉，加水，加酵母，揉一揉，發酵，放進烤盤，進烤箱。這是菜譜。

理解麵包的意思是：你懂生物學，懂供應鏈，懂磨面機怎麼工作，懂酵母，懂物理和熱力學。同一個麵包背後可以有無窮多層理解。

很多人做設計，實際上是在執行一堆菜譜。菜譜的效率極高，前提是它正好對應你想做的事。一旦情況變了，執行菜譜的人就傻眼了。一本極好的麵包菜譜，不會教你做煎蛋卷。但如果你真懂烹飪，麵包、煎蛋卷、三明治，全都能變出來。

成為某個領域的專家，意思是你希望往更深的層面走，而不是攢一堆菜譜去執行。團隊也一樣。有些團隊菜譜執行得飛快，有些團隊擅長判斷眼前這個問題的性質，知道什麼時候該抄菜譜，什麼時候該老老實實回到第一性原理。

> "如果你時時刻刻都在拆解一切、追到更深的層次，那你什麼也做不成。反過來，在該拆的時候不拆，你就會做錯事。"（吉姆·凱勒）

## 五年就該推倒重來一次

一個成熟產品走到後期會有這樣的現象：有人說要提速 10%，工程師就把某個緩衝區做大一點，多加一個加法單元，把一條指令拆成兩條。每個零件都變得稍微複雜一點。加到最後，無論怎麼加功能，效能都不動了。這時有人說，這是物理極限，到頭了。旁邊另一個工程師過來說，其實是你們把問題切分的方式、讓不同特性互相糾纏的方式，卡住了自己，得推倒重來。

經歷過的團隊都知道，重寫一遍不光更快，複雜度和程式碼量還能砍掉一半。

凱勒給出的節奏是：三到五年會有一次重寫，每五年就該完全從頭做一次。這在整個行業裡算激進，大多數人的節奏是十年。

他不諱言這種選擇很嚇人。所有人都怕。公司看的是季度業績，工程師怕短期指標崩掉。但把時間拉長看，短期災難和長期災難是兩種東西。喬布斯說過，老產品有它自己的上升曲線和邊際遞減，新產品一開始會比老產品的高點低，但它能爬到更高的地方。真正做成長期生意的公司，每次看出必須重做的時候都做了。

尷尬的地方在於，一條新曲線上的第一個點，某些場景下會比老曲線慢。銷售跑過來要你保證新產品在每一項上都更快，架構師只能說平均更快，分佈裡有一些異常點反而更慢。而總有那麼一個客戶，恰恰只在乎那個異常點。

## 一條由無數條下降曲線拼出來的上升曲線

回到摩爾定律。最原始的定義是戈登·摩爾提的，電晶體數量每兩年翻一倍。凱勒自己在實操層面的定義是：計算機效能每兩到三年翻一倍。這個節奏在歷史上抖動得很厲害，效能怎麼交付也在變。

他有個說法很有意思。摩爾定律看著是一條指數曲線，實際上它是由幾千條各自的邊際遞減曲線拼出來的。每一條曲線都有它自己的壽命，漲到頂就平了。一個專家守著自己那條曲線，看到它平了，就會到處宣稱摩爾定律已死。與此同時另一批人正在別的曲線上推進。

這就是"摩爾定律將死"這句話被喊了五十年、卻一直沒兌現的原因。喊的人看到的是自己的那條曲線，喊得沒錯，但別人沒停。

他從物理角度算了一筆賬。一個現代電晶體大概一千乘一千乘一千個原子那麼大。量子效應要在大約兩到十個原子的尺度才明顯出現。也就是說，電晶體的尺寸理論上還能小一百萬倍。現在最先進的鰭式電晶體，鰭寬大約一百二十個原子，還能更薄。柵極包在四周，中間還有各種間距，整個幾何結構還有收縮空間。半導體廠商已經在推進奈米線電晶體，把鰭做成一根細線，控制更好，尺寸更小。往下的收縮路徑是清楚的。

真正難的地方在別處：能不能便宜、穩定、可重複地量產。這背後是裝置、光學、化學、物理、材料科學、冶金，幾千項技術的接力。

凱勒做過一個演講，問團隊要一張未來 100 倍的路線圖。兩週後團隊回來說，只能給出 50 到 100 倍裡的一半。他說，那就再花兩週。

50 倍是什麼概念？搞晶片設計的人會明白，這意味著未來十年二十年的設計思路必須完全不同。他打了個比方：如果磚頭每兩年縮小一半，你還用同樣的方式砌牆，每人每天的砌磚數量不變，那蓋一棟樓的時間會指數級增長。真正聰明的做法是提前預判，現在就去設計搬磚更快的機器，讓更小的磚產生更多價值，比如牆更結實、材料更省。有了一張清晰的技術路線圖，你會圍繞它設計一整套配套工具，既利用它，也扛住它。要是沒人相信摩爾定律，電晶體照樣按路線圖出現，沒有準備的團隊全都會被淹死。

## 數學在往上爬，硬體還在原地

越來越多的電晶體湧進來，最難的地方在哪？

凱勒說的是兩個常量。第一，人並沒有變得更聰明。營養和健康確實帶來了一些提升，但這個提升很小，而且不清楚是否還在持續。第二，團隊規模沒法無限擴張。人這種生物，十個人一隊很舒服，一百個人一隊還能彼此認識，再往上就必須畫組織邊界。這兩條是硬約束。

於是面對越來越大的設計，唯一的出路是分治。抽象層的價值就體現在這裡。早年計算機是用電晶體搭的，現在有團隊專門做電晶體到邏輯單元，有團隊把邏輯單元做成功能單元，有團隊再把功能單元組裝成整機。每一層的介面都相對穩定，各自演化。

還有一個細節容易被忽略：我們用更快的計算機去設計更快的計算機，但很多演算法的複雜度是 N 平方。計算機電晶體翻倍，這類演算法的耗時會翻四倍。所以不能指望"計算機快了，設計自然就快了"，軟體必須跟著重新設計。

硬體層面其實沒怎麼變。往晶片裡一看，還是加法器、減法器、乘法器、儲存器。資料型別的演化倒是催生了一整套最佳化空間，比如張量運算天然要對一批資料做乘加。但落到底層，那些基本單元跟幾十年前沒本質區別。

凱勒順著這個思路梳理了數學的層級：從標量運算，到向量運算，到矩陣方程，再往上到今天的卷積神經網路。資料集大到一定程度，人們開始把資料當成拓撲問題，把它想象成某種巨大的形狀，計算就是從這個形狀裡取資料、做運算。每上一個臺階，需要的算力會跳好幾個數量級。

> "你的朋友理查德·薩頓說過，計算量每提升一個數量級，計算在做的事情本身就會發生根本改變。量的差異就是質的差異。"（吉姆·凱勒）

凱勒補了一句：量變引起質變這件事，在數學史上反覆出現過，他判斷還會繼續。

他對"AI 是不是搜尋"這個問題的態度有點意思。有人說神經網路的訓練本質上就是一種搜尋，凱勒不認同。在他看來，訓練更像一連串的投影。你去看中間層，某一層可能正好描述了尖耳朵，另一層描述圓潤度，另一層描述毛茸茸的質感。把這些層拿掉，網路就不工作了，但訓練過程本身不是在一個離散空間裡找答案。它在一個十萬維的空間裡做最佳化，跟國際象棋資料庫那種搜尋是兩碼事。

他還提到一個現實問題：過早最佳化。一個大型軟體棧，你剛寫下第一行程式碼就開始最佳化，後來會發現你猜的效能瓶頸根本不是瓶頸。等你把整件事跑通，回過頭針對真正的瓶頸最佳化，也許能讓它快一倍。可要是在最開始就換一套設計，也許本來能快十倍。這兩種選擇之間存在持續的拉扯。

而拉扯的標尺，又回到摩爾定律。如果未來十年硬體還會變快，AI 研究就應該把這一點算進去，做出稍微不同的選擇。如果認定硬體到頂了，那就只剩下演算法重寫這一條路。凱勒的判斷是，過去三十年裡，賭硬體到頂、專心改演算法的策略一直是失敗的。

## 特斯拉的車裡塞了什麼

自動駕駛晶片這類活，凱勒認為有兩條戰線。

一條是軟體和機器學習團隊。演算法變得很快，你在設計加速器的時候，心裡一直在打鼓：萬一演算法變得太多，這塊加速器就白做了。

另一條是硬體通用性。一個通用計算機的效能記作 1，GPU 因為面對的是"被告訴的並行"，同樣的矽面積能跑到 5。再往上，專門為 AI 設計的加速器又能在 GPU 基礎上再翻二到五倍，因為它知道運算永遠是一組整數做特定方式的乘加累加，是數學可能性的一個子集。風險在於，演算法變化太快，你把加速器做得太專用，下一個演算法直接在 GPU 上跑得更好，你前面幾年的投入就全廢了。

凱勒提到特斯拉的成本約束。其他公司的自動駕駛樣機，後備箱裡塞著伺服器，成本預算給到一兩萬美元，因為目標是替代司機。馬斯克的約束完全不同：無論車主買不買自動駕駛，這塊計算機都要裝進每一輛車。成本預算必須壓到極低。要擠出這個成本，只能從系統設計上動腦筋。這件事很折騰，也很有意思。

## 開車這件事到底有多難

凱勒和弗裡德曼在這個問題上有點分歧，而且分歧很有意思。

凱勒認為開車不算超難的問題。車是彈道物體，軌跡可預測。道路是固定的，今天在這裡明天還在。世界可以被非常詳盡地測繪，每個物體可以被非常精確地定位，軌跡可以被非常準確地計算。人不需要特別聰明就能開車，安全駕駛的核心是注意力，而注意力恰恰是計算機最擅長的東西。

弗裡德曼反擊說，你把人的視覺系統想得太簡單了。它除了識別物體，還要理解整個場景，還得在資訊缺失時合理補全。前面有一輛被遮擋的車，你得推斷它的存在。眼睛看到的東西是二維的投影，大腦卻給出了帶深度、帶物理規律的三維世界。

凱勒承認這部分確實是資料問題，但他強調資料問題的規模在快速膨脹，算力在上漲，演算法理解在加深，歷史上語音識別就是這樣從頻率分析一路走到深度學習的。他甚至打了個"被告訴的並行"之外的比方：車在路上被別人加塞，人腦會自動編一套解釋，對方是個壞人，對方走神了，對方是個笨蛋。如果這套心理模型對駕駛真的必要，那現在的自動駕駛系統確實做不到，因為車沒有理論，它對加塞這件事沒有任何解釋。但凱勒懷疑這套模型並沒這麼必要。車可以在被加塞的時候做一個非常簡單的計算，往前挪一點，讓一下，或者壓住位置。這跟開車本身是兩回事。

他相信這件事會在十年內被解決，然後被所有人當成理所當然，就像今天的 GPS。你不再關心衛星在哪、怎麼定位，你只知道手機知道你在哪。

關於監管，凱勒的態度罕見地正面。他和美國和歐洲的監管者都聊過。他一開始擔心規則會被技術細節綁死，比如剎車規範裡充滿了液壓系統的痕跡，你要是照著字面執行，那就只能用液壓剎車。結果發現監管者關心的是場景，迎面碰撞、偏置碰撞、不撞行人、不衝紅燈，他們手裡有全部的事故資料，知道哪些場景造成的傷亡最多。凱勒說，這些討論基本都是在問"下一步怎麼做才是對的"。

他還表達了另一層意思：自動駕駛的門檻比人類司機高，這件事在哲學上是合理的。既然目標是比人更安全，那就該受到比人更嚴格的審視。他接受這一點。

## 手藝人

凱勒用一個說法形容大多數工程工作：複雜技能行為。

學一樣新東西是好玩的，因為你在學。做一件已經熟練掌握的簡單事，反而沒什麼滿足感。但如果一件事的步驟足夠複雜，而你又擅長它，這種熟練本身就會帶來愉悅。這就是手藝人的快樂。

他提到大學時挖過溝，還說自己在流水線上待過。他見過裝配線上的工人，一群大塊頭，某天因為裝置故障停線，幾個人悶悶不樂，因為他們當天本來要破一個產量紀錄。裝車這件事比大多數人想的難得多。給一輛移動中的車裝亮條飾件，一分鐘半里要在二十五個位置扣上，這個難度不亞於開車。

特斯拉的自動駕駛硬體設計在他看來就是這麼一類活兒。你已經定了架構，接下來是無數個細節的取捨：十個 CAN 口還是八個，這一代車怎麼做，下一代車怎麼做，安全模組怎麼放。他打了個比方，這就像做小提琴。斯特拉迪瓦里做琴厲害，但本質是他挑木料、打磨、切削、粘合，還要等合適的天氣上漆，免得做傻事。你可能是個天才工匠，因為你掌握最好的手藝，甚至發明了新工藝，但大多數工程本質上就是工匠活兒。人天生喜歡幹這個。

## 第一性原理是件很累的事

談到和馬斯克共事的經歷，凱勒說他很喜歡那種思維方式。

你自認為已經理解某件事的第一性原理，然後跟他聊，你會發現你連皮毛都沒碰到。那種剝離所有假設、追問最底層約束的能力，凱勒形容為"超級狂野"。

他講了個小故事。一個朋友發明了更好的電機，效能比在用的那款好很多，朋友拿給他看，他反應平平。朋友有點失望，說這可是很厲害的東西。凱勒回他一句：如果有超級智慧的外星人來了，他們會滿宇宙找那個造電機的人嗎？大機率不會。

凱勒說這話，重點放在別的地方。要做到既創新、又是手藝活兒，那種狀態最讓人滿足。造火箭、造車，用同一套第一性原理去拆解，很好玩。當年 SpaceX 第一次回收火箭，特斯拉大房間裡架起投影儀，五百號人跑過來看直播，落地那一刻全場歡呼，有人哭了。

但代價是什麼？凱勒說得很實在：讓你剝離全部假設，這個過程不可能不痛苦。他估了個比例，你日常思考裡大概 99% 的精力都花在保護自己已有的觀念上，而這 99% 裡又有 98% 是錯的。真正有用的那部分觀念，可能只佔百分之幾。意識到這一點，並且願意推倒它，才有機會換一種做法。

凱勒說自己腦子裡有這個意識，但他也會連著好幾天忘記。因為日子要過，事兒要做，人還有情緒要照顧，有娛樂要享受。過一陣子才想起來：哦對，我可以按第一性原理重新想一遍。然後再精神抖擻地幹一段時間，又累了，又忘。這東西沒法一勞永逸，是一個需要反覆回到的觀察點。

他提到自己讀書的習慣。有人覺得他讀了很多書，他說自己五十五年來每週讀兩本。寫書的人往往是把二十年裡最熱情投入的一件事濃縮成兩百頁，你花幾個小時就能讀完，還能上網查到誰寫得最好，這買賣太划算了。他去一家公司做管理，先讀了二十本管理書，然後發現自己比周圍所有副總多讀了十九本，一大半方法第一次用就奏效。

## 關於超級智慧

聊到 AI 的奇點和超級智慧，凱勒並不焦慮。

他的思路是：人類社會本來就是高度分層的。你看整個動物界，能力、興趣、生態位各不相同。聰明人有聰明人的位置，普通人有普通人的位置，手藝人也有手藝人的位置。真出現一個比人聰明十倍的東西，它為什麼要專門追殺我們？就因為我們喜歡在星巴克喝咖啡？這想法本身就說不通。

至於"活在一個比自己聰明得多的存在旁邊，自尊心怎麼受得了"，他提醒，只有 1% 的人會有這個困擾。剩下 99% 從出生起就活在比自己聰明的人邊上，早就習慣了。人可以活得有意義的區間非常大。

他也不認為超級智慧會繼承人性裡那些陰暗面。人類跟善惡兩種力量處在一種創造性張力裡，哲學家討論了幾千年，他也不明白為什麼超級智慧那裡就會不一樣。競爭的世界裡，某人的善就是另一個人的惡，這種事會一直存在。少數時候它會極端殘酷，但大多數時候它是自我限制的。

有人問他，如果能重活人生中的某個時刻、某段時光，會選哪一段。他的回答是：我不想重活任何一段。他喜歡那種帶著一點樂觀、又帶著未知焦灼的狀態。未知讓人心跳加速。

問他人生的意義是什麼。他說，看起來就是它本來的樣子。宇宙不知為何造出了原子，原子組成了我們，我們做點事，搞明白點東西，探索點東西。就這樣。

弗裡德曼最後用戈登·摩爾的一句話收尾：如果你嘗試的每件事都成功了，說明你試得還不夠狠。

整場對話裡凱勒反覆回到同一個判斷。一個系統執行到某個階段，繼續在原有框架里加碼，收益會越來越薄。真正的突破，往往來自把整套假設攤開重新審視，哪怕這個過程既痛苦又昂貴。晶片是這樣，組織是這樣，人的觀念也是這樣。

## 可以馬上做起來的幾件事

- 給手頭正在最佳化的專案設一個硬性時間視窗。三年之內可以小修小補，超過三年就必須認真考慮推倒重做，別讓團隊陷在一條已經壓平的曲線上。
- 把團隊裡最大的那塊工作拆成能獨立演進的層級，定義清楚每一層之間的介面。介面穩定，上面下面才能各自迭代，不互相拖累。
- 遇到瓶頸時先問一句：是真撞到了物理極限，還是我們切分問題的方式把自己卡住了？第二個情況遠比第一個常見。
- 每週留出一段時間專門做"菜譜與理解"的區分練習。列出你正在做的事裡，哪些是從別人那裡抄來的步驟，哪些是你真的想明白了。只有後者能遷移到新問題上。
- 別指望第一性原理思考能一直線上。把它當成一個週期性動作，狀態好的時候做一輪深度拆解，其餘時間正常推進，接受自己會忘。
- 如果打算進入一個新領域，先花一兩個月把行業內公認最好的幾本書讀完。讀完你很可能比周圍大多數人更懂這件事的底層邏輯，成本卻低得多。
- 評估一個長期專案時，把短期災難和長期災難分開看。前者讓你這季度難看，後者讓你三年後無路可走，兩種恐懼不該被同等對待。
