在半導體設計領域, Jim Keller的名字如雷貫耳,不僅僅是因為他參與或領導的大型成功項目的數量,而且這些項目都為各自的公司創造了數十億美元的收入,
他的職業生涯橫跨 DEC、AMD、SiByte、Broadcom、PA Semi、Apple、AMD(再次)、Tesla、Intel,現在他在 Tenstorrent 擔任首席技術官,開發下一代可擴展的 AI 硬件。吉姆的職業準則(work ethic )經常被描述為“享受挑戰”,
最近,這意味著致力于當今最激動人心的半導體方向,要么是高性能計算,要么自動駕駛和AI。今日, AnandTech發布了他們最近與 Jim 哈拉的記錄,半導體行業觀察摘錄其中一些自認為關鍵資訊,以饗讀者,
CPU 指令集:Arm 與 x86 與 RISC-V
IC:您過去曾談到 CPU 指令集,而我在這次采訪中收到的最大請求之一是請您談一下對 CPU 指令集的看法。具體問題是關于我們應該如何處理對它們的基本限制,我們如何轉向更好的限制,以及在 ARM、x86 和 RISC V 方面,你都是什么觀點。
我想在某一時刻,你說大多數計算發生在幾十個操作碼上,我沒記錯嗎?
JK:[爭論指令集]是一個非常悲傷的故事,它甚至不是幾十個 [操作碼] ,而是80% 的核心執行只有 6 條指令 ,加載((load)、存儲(store)、加(add)、減(subtract)、比較(compare)和分支(branch),有了這些,你幾乎已經涵蓋了它。
如果您使用 Perl 或其他語言編寫代碼,則調用和返回可能比比較和分支更重要,但是指令集只有一點點重要——你可能會因為缺少指令而損失 10% 或 20% [性能]。
有一段時間我們認為可變長度指令(variable-length)真的很難解碼,但我們一直在想辦法做到這一點,您基本上可以預測所有指令在表格中的位置,一旦有了好的預測器,您就可以很好地預測這些內容。
因此,當您構建小型計算機時,固定長度的指令似乎非常好,但是如果您正在構建一臺真正的大型計算機,要預測或找出所有指令的位置,它并不能支配模具。所以沒有那么重要。
RISC 剛出現時,x86 是半微碼。所以如果你看看芯片,一半的芯片是 ROM,或者可能是三分之一或其他東西,RISC 人員可以說 RISC 芯片上沒有 ROM,因此我們獲得了更高的性能。
但是現在ROM這么小,你找不到它,其實加法器這么小,你怎么都找不到?今天限制計算機性能的是可預測性,其中兩大因素是指令/分支可預測性和數據局部性,
現在,新的預測器非常擅長這一點,它們很大 -,兩個預測器比加法器大得多,這就是您進入 CPU 與 GPU(或 AI 引擎)辯論的地方。GPU 人員會說“看,沒有分支預測器,因為我們并行執行所有操作”,所以芯片有更多的加法器和減法器,如果這就是你的問題,那就對了。但是他們在運行 C 程式方面很糟糕,
GPU 是為在像素上運行著色器程式而構建的,因此如果給定 800 萬像素,而大型 GPU 現在有 6000 個線程,則您可以覆蓋所有像素,每個像素每幀運行 1000 個程式。
但這有點像一群攜帶沙粒的螞蟻,而大型人工智能計算機,它們具有非常大的矩陣乘法器。他們喜歡數量少得多的線程來做更多的數學運算,因為問題本身就很大,而著色器的問題是問題本質上很小,因為像素太多。
真正存在三種不同類型的計算機:CPU、GPU 和 AI。英偉達正在做一些“中間人”的事情,他們使用 GPU 來運行人工智能,并試圖增強它,
其中一些顯然工作得很好,而其中一些顯然相當復雜。有趣的是,這種情況經常發生,通用 CPU 在看到 GPU 的矢量性能時,添加了矢量單元,有時這很好,因為你只有一點點矢量計算要做,但如果你有很多,GPU 可能是更好的解決方案,
IC:那么回到 ISA 問題——很多人都在問你對 Arm 與 x86 的看法如何?你是怎么看
JK:我有點在意。這就是發生的事情 。當 x86 首次出現時,它非常簡單和干凈,對吧?當時,有多種 8 位架構:x86、6800、6502。當時我可能對所有這些架構都進行了編程,
然后奇怪的是,x86 是開放版本。他們將其授權給七家不同的公司,這給了人們機會,但英特爾出人意料地授權了它,然后他們去了 16 位和 32 位,然后他們添加了虛擬內存、虛擬化、安全性,然后是 64 位和更多功能,因此,當您添加內容時,架構會發生什么,您保留舊內容以使其兼容,
所以當 Arm 剛出來的時候,它也是一臺干凈的 32 位計算機,與 x86 相比,它看起來更簡單,更容易構建。
然后他們添加了一個 16 位模式和 IT(如果有的話)指令,這很糟糕,然后 [他們添加] 一個奇怪的浮點向量擴展集,在寄存器文件中帶有覆蓋,然后是 64 位,部分清理了它。有一些特殊的東西用于安全和啟動,所以它變得更加復雜。
現在 RISC-V 出現了,它是閃亮的新表親,對吧?因為沒有歷史遺留問題。它實際上是一個開放的指令集架構,人們在大學部里構建它,他們沒有時間或興趣添加太多垃圾,就像某些架構那樣。所以相對而言,僅僅因為它的血統和年齡,它處于復雜性生命周期的早期,這是一個非常好的指令集,他們做得很好,
因此,如果我只是想說我今天是否想要真正快速地構建一臺計算機,并且我希望它運行得更快,那么 RISC-V 是最容易選擇的。這是最簡單的一個,它擁有所有正確的功能,它擁有您實際需要優化的正確的前八條指令,而且它沒有太多的垃圾。
IC:所以現代指令集有太多的膨脹,尤其是舊指令集?
JK:已經迭代和添加的指令有太多的膨脹,這就是經常發生的事情。當您不斷添加東西時,工程師會遇到困難。你可以擁有這個非常好的設計,有 10 個功能,所以你可以給它添加一些功能,這些功能都讓它變得更好,但也讓它變得更加復雜,隨著您的進行,添加的每個新功能都變得更難實現,因為該功能以及其他所有內容的交互都變得很糟糕,
營銷人員和老客戶會說“不要刪除任何東西”,但與此同時,他們都在玩新的新鮮事物,它的作用只有舊事物的 70%,但它做得更好因為它沒有所有這些問題。
我已經談到收益遞減曲線,收益遞減的原因有很多,但其中之一是事物相互作用的復雜性,它們會減慢你的速度,讓更簡單的東西做得更少實際上會更快,這已經發生了很多次,這是復雜性理論的結果,你知道,我認為是人類的邪惡。
IC:所以你有沒有見過 x86 被破壞而某些東西被重新發明的情況?或者它只是保留某種遺產,然后像 RISC-V 這樣的新事物會在需要時出現以填補空白?
JK:x86-64 是一個相當干凈的東西,但顯然它必須承載所有這些舊包袱。他們棄用了許多舊的 16 位模式,有一大堆垃圾消失了,有時如果你小心點,你可以說“我需要支持這個遺產,但它不一定是高性能的,我可以將它與其他東西隔離開來”,你要么效仿它,要么支持它,
我們過去構建的計算機具有前端、獲取、調度、執行、加載存儲和 L2 緩存。如果您查看它們之間的邊界,您會看到 100 條線在做隨機的事情,這些事情完全取決于它是什么周期或時鐘的哪個相位,現在這些接口看起來不像指令邊界——如果我從這里向那里發送指令,現在我就有了一個協議。
所以里面的電腦看起來不像是一堆亂七八糟的東西連接在一起,它看起來就像八臺電腦連接在一起做不同的事情。有一個獲取計算機和一個調度計算機,一個執行計算機和一個浮點計算機,如果您正確地執行此操作,則可以更改浮點數而無需觸及任何其他內容。
這與其說是指令集的問題,不如說是“構建它時你的設計原則是什么”,以及你是如何做到的。問題是,如果您遇到問題,您可以說“如果我可以在這兩個盒子之間使用這五根電線,我就可以解決這個問題”。
但是每次這樣做,每次違反抽象層時,都為未來的吉姆制造了一個問題。我已經這樣做了很多次,而且如果你正確地解決它,它仍然是干凈的,但是在某些時候如果你稍微破解它,那么隨著時間的推移它會殺死你,
關于摩爾定律的思考
IC:您在舞臺上和過去的采訪中都說過,您并不擔心摩爾定律。在工藝節點方面,您不必擔心半導體的發展,它最終會由某個地方的某個人解決。你會說你對摩爾定律的態度是冷漠的嗎?
JK:我非常主動。這根本不是冷漠。就像,我知道很多關于它的細節。人們混淆了一些事情,比如英特爾的 10 納米滑落。人們都說摩爾定律已經死了,但臺積電的路線圖一點也不滑,
部分原因是臺積電的路線圖與 EUV 機器的可用性保持一致。所以當他們從 16nm 到 10nm 再到 7nm 時,他們做了一些臺積電非常擅長的事情——做這半步。
所以他們做了沒有 EUV 的 7nm,有 EUV 的 7nm,然后沒有 EUV 的 5nm,和有 EUV 的 5+nm,他們調整了一些東西,然后使用 EUV 機器,有一段時間人們不確定他們是否會工作,但現在 ASML 的市值是英特爾的兩倍(實際上是現在,6 月21日),
然后還有一件有趣的事情——我意識到在創新的地點,我們傾向于將臺積電、三星和英特爾視為工藝領導者。但其實領導者實際上是像 ASML 這樣的設備制造商和材料方面。如果你看看誰在制造創新的東西,以及 EUV 的全球銷售額,這個數字就像臺積電到 2023 年將購買 150 臺 EUV 機器或類似的東西,這些數字是驚人的,因為即使在幾年前,也沒有多少人確定 EUV 會起作用。
但是現在出現了x-ray光刻機,再說一次,你可以說這是不可能的,但該死的一切都是不可能的!細則,這就是理查德·費曼所說的——他有點聰明。他說“底部有很多空間”,我個人可以數數,如果你看看晶體管中有多少原子,就會發現很多,如果你看看你實際上需要多少個晶體管來形成一個結,沒有太多量子效應,只有 10 個。所以那里有空間。
還有一件有趣的事情——當每個人都相信技術正在以這種速度發展并且整個世界都朝著它發展時,就有了一個信念系統。但技術不是一回事。有些人會弄清楚如何制造晶體管,就像英特爾、臺積電或三星等工藝設計師所做的那樣。他們使用可以制作特征的設備,但隨后這些特征實際上會相互作用,然后在諸如應該如何沉積和蝕刻、應該多高、多寬、在什么空間之間進行非常有趣的權衡。他
們是使用工具的工匠,所以工具必須超級鋒利,工匠必須超級博學。這是一場復雜的比賽,有很多互動,在某種程度上,因為機器本身很復雜,你有一個復雜的組合,機器制造商正在做不同的部分,但他們并不總是完美協調,或者他們通過設計流程的機器集成人員進行協調,這很復雜,它可以減慢速度,但這不是由于物理基礎 – 我們在物理基礎方面取得了良好進展,
IC:在你的大規模機器學習演講中,你在 Comic Sans 中的演講中,你有列印的 X 幻燈片,關于它,你說隨著時間的推移你列印 X 的方式,由于物理定律,在 EUV 中還有幾個步驟要走。此外,High NA EUV 將在幾年內推出,但現在您提到了 X 射線,時間表是什么?它甚至不在我的知識范圍內。
JK:通常,當一項技術出現時,他們會將其用于一件事,首先,當 EUV 首次用于 DRAM 時,它實際上是一步,也許是兩步。
所以我試圖記住——也許是 2023/2024 年?不是那么遠,這意味著它們已經啟動并運行,并且人們正在使用它。那么奇怪的是,當他們從光學光到 EUV 時,波長大約減少了 10 倍?所以他們雖然他們有瘋狂的多圖案和 interference 類型的東西,你看到那些 DUV 的照片,但當談到 EUV 時,他們可以直接列印,
但實際上[隨著你變小]他們可以在 EUV 上使用相同的技巧,所以 EUV 將要進行多圖案化,我認為在 3nm 中,然后你可以用它做很多技巧,
所以是的,物理學真的很有趣,然后還有物理學,光學的東西,然后是材料的純度,這是非常重要的,然后是溫度控制,所以東西不會移動太多。隨處可見有趣的物理問題,因此有很多事情要做,有成千上萬的人在研究它,并且有足夠的創新帶寬,
談如何組建合適的團隊
IC:所以轉向我們曾經遇到的一個流行問題,當你從一家公司走到另一家公司時,我們注意到你所做的一件事是建立團隊的話題,
由于團隊是由其他人建立的,我們已經看到有些人將工程師從他們在以前公司建立的團隊帶到下一家公司。你有沒有對你如何建立你的團隊有任何見解?您在這方面工作的公司是否有任何不同的方法?
JK:你首先要意識到的是,你是在組建團隊,還是在尋找一個團隊,所以威尼斯有一個很棒的博物館,大衛博物館,博物館的前面,有這些巨大的大理石塊。20 乘 20 乘 20,他們如何移動它們,我不知道,那塊大理石坐在那里,米開朗基羅可以在里面看到這座美麗的雕塑,它已經在那里了,對吧?問題是去除多余的大理石,
因此,如果您進入擁有 1000 名員工的公司,我向您保證,那里有一支優秀的團隊,您不必雇用任何人。當我在 AMD 時,我幾乎沒有雇用任何人,我們調動了人員,我們部署人員到[其他地方],但那里有很多優秀的人。當我去特斯拉時,我們不得不從頭開始組建團隊,因為特斯拉沒有人在制造芯片,我雇傭了我認識的人,但后來我們雇傭了一群我在某個時候不認識的人,這是其中一件有趣的事情,
我見過領導者從一家公司轉到另一家公司,他們帶來了 20 名員工,然后他們開始嘗試復制他們以前擁有的東西。
這是一個壞主意,因為盡管 20 人足以重現[你擁有的],但它疏遠了你想要的[在那個新團隊中]。當你組建一個新團隊時,理想情況下,你會得到你真正喜歡的人,要么你剛認識他們,要么和他們一起工作,但你希望在方法和思維上有所不同,因為每個人都進入了局部最低限度,因此,新團隊有機會共同創造新事物,
部分原因是因為如果你有十個非常棒的團隊都工作得很好,然后你組建了一個新團隊,每個團隊都有一個人:那可能會更好,因為他們會重新選擇哪些是最好的想法.
但是每個團隊都有優點和缺點,所以你必須考慮你是在組建團隊還是在尋找一個團隊,然后你試圖創造什么樣的動態,為人們提供新想法的空間。或者,如果有些人堅持一個想法,然后他們與新人合作,他們會開始做這件不可思議的事情,你認為他們很棒,即使他們過去并不那么棒,那發生了什么?
好吧,他們帶著一些不太好的想法,然后他們遇到了挑戰他們或環境強迫他們的人,突然之間他們做得很好,我已經看到這種情況發生了很多次,
Digital (DEC) 的 Ken Olson 說沒有不好的員工,只有不好的員工工作匹配,年輕的時候,我覺得那是愚蠢的。
但隨著我與更多人一起工作,我看到這種情況發生了太多次,我甚至解雇了后來真正成功的人。都是因為他們沒有做好工作,他們在情感上陷入困境,他們覺得自己致力于一些不起作用的事情,將他們轉移到不同地方的行為使他們解放了出來。[不用說]我沒有得到感謝。(笑)
IC:那么其中有多少也歸結為公司文化?我的意思是,當你在為合適的職位尋找合適的人選時,或者你是否正在招聘新職位時,你是否試圖得到一些與公司宗旨背道而馳的東西?還是隨公司走?你在這里有什么策略還是只是在尋找有天賦的人?
JK:如果你正在嘗試做一些真正具有創新性的事情,那可能主要是與[the grain]背道而馳,如果你的項目進展得非常好,那么引入煽動者會讓每個人都慢下來,因為你已經做得很好了。您必須閱讀環境中的組。然后有些人非常優秀,他們在這個項目上非常靈活,他們適應并且只是推動,但是在下一個項目中,你可以看到他們一直在建立他們的網路和團隊,等等下一個項目,他們準備做一個支點,每個人都愿意工作。
信任是一件很有趣的事情,對吧?你知道,如果有人走上前說跳下這座橋但你會沒事的,你可能會說胡說八道——但如果你已經和他們一起經歷了一大堆事情,他們說’看,相信我,然后跳下去——你會沒事的;它會很糟糕,但它會沒事的’,你會做到的,對吧?相互信任的團隊比那些必須處理合同、談判和政治事務的團隊更有效,
所以這可能是一件事——如果你正在建立或尋找一個團隊,并且你開始看到人們參與政治,這意味著為了自己的利益操縱環境,他們必須離開。除非你是老板!然后你必須看看他們是否交付,有些人非常政治化,但他們真的認為他們的政治力量來自于傳遞。但是在一個政治組織中隨意的人只會造成很大的壓力。
IC:您是否建議職業生涯早期或中期的工程師應該定期從一個項目跳到另一個項目,以免陷入困境?聽起來這是很常見的事情。
JK:當你在做新的事情,并為比你更了解的人工作時,你學得最快,因此,如果您的職業生涯相對較早,并且沒有學到很多東西,或者您知道,您為之工作的人沒有激勵您,那么是的,您可能應該改變。
在某些職業中,我看到人們因為獲得經驗而跳了三圈,但最終卻一無所獲。他們會更好地呆在原地,真正深入了解某事,所以你知道,創造性的緊張——這兩個想法之間存在著創造性的緊張。