芯東西:硅谷芯片大神2萬字專訪:自稱“特斯拉最懶的人”(上)_風聞
熊猫儿-2021-06-26 09:44
在芯片界,你很難再找到像Jim Keller(諧音:金坷垃)這樣的傳奇人物,僅僅手握本科學歷,卻在過去20年間攪動了大半個硅谷的芯片風雲。
他是計算機產業的超級巨星,從DEC起步,輾轉於DEC、AMD、博通、蘋果、特斯拉、英特爾等頂尖企業之間,屢屢研發出里程碑式的芯片。如今,這位“硅谷遊俠”正在摸索職業生涯的下一個錨點——作為一家AI芯片創企的CTO兼總裁。
近日,在外媒AnandTech的Ian Cutress(伊恩·庫特雷斯)與Jim Keller的一場深入對話中,你會看到這位技術大牛成長的軌跡,從初出茅廬時的青澀莽撞,到轉型管理崗位時的手忙腳亂,再到如今,在兼顧工作與生活方面遊刃有餘。
褪去從業經歷帶來的光環,他有許多接地氣的一面。他自稱是“特斯拉最懶的人”,拒絕“996”,一天至少要睡夠7小時,會為人際關係感到煩惱,喜歡睡覺、吃飯和看書,吐槽工作佔據的時間比想花在它上面的時間多得多。
他也曾年少輕狂,剛入職第一家公司就與CTO爭辯1小時,還嫌對方的一部分想法是“愚蠢的”;他曾經不知道怎麼合作,認為必須自己親自上手每一件事,“像瘋子一樣工作”。
面對既有的成就,Jim Keller十分坦然地自我稱讚:“就交付具有持久價值的產品而言,我的成功是相當高的。”但他並未自恃天才,認為自己“沒那麼聰明”,是靠毅力與堅韌才走到今天。
他反對被稱作“Zen之父”,説自己只算得上“叔叔之一”。從特斯拉離職至今已有3年,他提到現在與馬斯克聯繫不多,“最近沒有和他説過話”。另外,他也提到喜歡跟英特爾前任CEO司睿博一起工作,並希望英特爾新CEO基辛格一切順利。
當然,在這次長達2萬字的深度專訪中,你還將讀到這位芯片專家如何對曾經在AMD、蘋果、英特爾的從業經歷如數家珍,並奉獻了許多充滿洞察力的、經過深思熟慮的思考與見解。
從工程師轉型到管理者,從帶隊幾十人到領導1萬人,他在經過大量閲讀和實踐經驗積累後,摸索出一套行之有效的團隊組建與職場管理方法論,並將抽象分層的思路應用到生活之中。
除此之外,他暢談了許多關於芯片架構設計本身的想法,包括對RISC-V與Arm、x86競爭的思考,以及對人工智能(AI)芯片未來的預判。
他還在交流過程中做了圖書推薦,如果你想讀管理類的書籍,《從優秀到卓越》(Good to Great)不是個好選擇,倒不如讀卡爾·榮格(Carl Jung)的書。
芯東西在不違背原意的前提下,對此次Jim Keller接受AnandTech深度專訪的內容加以完整編譯。
一、“我是Zen的叔叔之一”
問題1:您曾為AMD的Zen和SkyBridge平台工作,如今AMD的Zen產品線正在獲得更多市場份額,您也將開始做更好的事。不過在那個項目中,關於您在AMD的確切角色眾説紛紜。
有人認為,您在確定Zen以及後面Zen2、Zen3高級微架構的設計方面功不可沒。還有人認為,您把人安排好,在高層簽字,然後專注於Arm版本的SkyBridge、K12。可以告知您在那裏承擔的角色嗎?您對Zen和K12的深入程度如何?或者您參與了像Infinity Fabric這樣的項目嗎?
Jim Keller:是的,這是個複雜的項目。我加入AMD時,他們有Bulldozer(推土機)和Jaguar(美洲豹),它們都有些獨特之處,但在市場上並不成功。其路線圖不激進,落後於英特爾,但落後不是件好事,你最好追趕,而不是落後。
所以我接過這個角色,作為CPU團隊的總裁,我認為當我加入時有500人。在接下來的三年裏,SoC團隊、Fabric團隊和一些IP團隊加入了我的團隊。我想當我離開時,被告知已有2400人。
我是一名有員工的副總裁,有直接向我報告的高級董事和高級研究員,我的員工有15人。因此我幾乎不寫RTL!
也就是説,我們做了很多事情。我是一位計算機架構師,不是真正的經理。我想這是我當時擁有的最大管理角色。在那之前,我一直是一家初創公司的副總裁,但那是50人,我們都相處得很好——對我來説,這是一個完全不同的遊戲。
我知道,我們必須做出的技術改變將包括讓人們與它一致。我不想成為一名設計師,一邊與副總裁爭論為什麼有人能做或不能做這項工作,或者為什麼這是正確或錯誤的決定。
我跟Mark Papermaster(現任AMD首席技術官兼執行副總裁)聊過,告訴他我的理論,他説:“好吧,我們會試試看”,效果很好。
有了這個,我就有了直接的權力。但人們不會真的去做他們被要求的事情,而會做自己受到激勵去做的事情。所以你必須制定一個計劃,其中一部分,是找出合適的人來做不同的事情。
有時有些人真的很優秀,但人們非常投入於他們上次做的事情,或者他們相信事情無法改變,我的觀點是事情很糟,幾乎所有事情都必須改變。
所以我默認了。並不是我們沒有找到很多好用的東西,但你必須證明舊東西是好的,而不是證明新東西是好的,因此我們改變了這種心態。
在架構學上,我非常清楚我想要做什麼以及為什麼。我在公司內部找到了一些人,比如Mike Clark(邁克·克拉克)、Leslie Barnes(萊斯利·巴恩斯)、Jay Fleischman(傑伊·弗萊施曼)等。有相當一部分非常優秀的人,當我們描述自己想做什麼,他們會説“是的,我們想那樣做”。
我在架構上有一些投入,經常有決策和分析,人們有不同的意見,所以我相當親力親為。但我沒有做框圖或寫RTL。我們正在進行多個項目,有Zen,有Arm的表親、後續項目,還有一些新的SoC方法。
不過我們所做的不僅僅是CPU設計,我們做了方法學設計、IP重構、非常大的組織變革。我自上而下地處理了這些東西,這很有意義。
問題2:有些人認為你為“Zen之父”,你認為你接受這個稱謂嗎?還是應該歸給別人?
Jim Keller:也許是其中一個叔叔。Zen團隊中有許多很棒的人,有一個分佈在世界各地的團隊,SoC團隊部分在奧斯汀、部分在印度,浮點緩存在科羅拉多州完成,核心執行前端在奧斯汀,Arm前端在森尼維爾,我們有很好的技術領導者。
有一段時間,我一直在與Suzanne Plummer(蘇珊娜·普盧默)、Steve Hale(史蒂夫·黑爾)以及科羅拉多(Colorado)團隊進行日常溝通,他們在某種程度上構建了Zen核心的前端。
他們都超棒。Mike Clark(邁克·克拉克)是一位出色的架構師,我們有很多樂趣和成果。成功取決於很多人,失敗取決於一個人。這是個成功。
然後一些團隊開始進步。我們把挖掘機架構移給波士頓團隊,他們接手完成設計和實物工作,Harry Fair(哈里·費爾)和他的團隊在這方面做得很好。
我們做了一些相當緊張的組織變革。我認為這其中有很多的同志情誼。所以我不會自稱是“(Zen的)父親”,我是作為發起者和主要推動者被引入的,但我一部分是架構師,一部分是轉型的領導者。那很有趣。
問題3:您在AMD做的所有事情,現在都完成了嗎?還是仍有些路線圖之類的東西要出來?從你幫助傳播的理念來看,你是怎麼想的?
Jim Keller:當你建造一台新電腦,而Zen是一台新電腦時,工作已經在進行了。你基本上構建了一個路線圖,我在想我們五年來要做什麼,一個接着一個芯片。我們在蘋果打造第一個大核心時也這樣做,(在設計中)構建了大骨架。
當你想讓計算機更快時,有兩種方法可以做到:讓基本結構變大,或者調整功能。Zen有一個大結構。然後,接下來幾代人有明顯的事情要做。他們一直在堅持做這件事。在某個時候,他們將不得不進行另一次大的重寫和改變。我不知道他們是否已經開始這樣做了。
過去幾年,我們為架構性能改進的計劃相當大,他們似乎在執行這項工作方面做得很好。但我已經離開那裏一段時間了——四五年了。
問題4:是的,我想他們説Zen3,上一個剛出來的是改寫的。所以我想有些人會認為,那仍是在您的指導下?
Jim Keller:是的,很難説。即使當我們做Zen時,我們也是從零開始做設計的——在頂部做一個乾淨的設計。但當他們打造它時,有一大堆來自推土機(Bulldozer)和Jaguar(美洲豹)的RTL,它們非常好用,只需被修改並嵌入到新的Zen結構中。所以硬件人員很擅長使用好的代碼。
因此,當他們説他們做了一個大改時,他們可能拿了一些片段,並在頂部進行重構,但當他們構建代碼時,如果20%~80%的代碼是相同的,或者輕微修改,這並不奇怪,很正常。
關鍵是採用正確的結構,然後根據需要重用代碼,而不是採用一些複雜的代碼並試圖調整它以達到某個目的。所以如果他們重寫了,可能會修正了結構。
二、在英特爾管理10000人
問題5:我不確定您是否還在接受保密協議,您在英特爾的工作像是一個全新的開始嗎?可以詳細談談您在那裏做了什麼嗎?
Jim Keller:顯然我不能説太多。我曾擔任(英特爾)硅工程集團高級副總裁,團隊有1萬人。他們做了很多不同的事情,這太神奇了。從設計到原型,從調試和生產,總共大約有60到70個SoC。這是一個相當多樣化的團體,我的員工都是副總裁和高級研究員,這是一個很大的組織。
我原以為我會去那裏,因為那裏有很多新技術要去做。我大部分時間都在與團隊一起研究組織和方法的轉換,比如新的CAD工具、新的方法、構建芯片的新方法。
在我加入之前的幾年,他們開始了所謂的構建芯片的SoC IP想法,而不是0歷史整體視角。老實説,這並不順利,因為他們採用了整體芯片,採用了出色的客户端和服務器部件,然後簡單地將其拆解。你不能只是把它拆解,而必須真正重構這些部分和一些方法論。
我們發現許多內部人員對此感到非常興奮,我還花了很多時間在IP質量、IP密度、庫、特徵描述、製程技術上。你能想到的,我都在。我的日子過得有點瘋狂,有時我一天會有14種不同的意義。只是點擊、點擊、點擊,很多事都在發生。
問題6:這些會議,您是怎麼完成的?
Jim Keller:我什麼都沒做!我被告知是高級副總裁,負責評估、制定方向、做出判斷,或者嘗試一些組織變革或人員變革,過一段時間就能積累起來。要知道,實現目標的關鍵,是知道你要去哪,然後建立一個知道如何做到這一點的組織,這需要做很多工作。所以我沒寫多少代碼,但發了很多短信。
問題7:現在英特爾有了一位專注於工程的新CEO帕特·基辛格(Pat Gelsinger)。如果機會合適,您會考慮回去嗎?
Jim Keller:我不知道。我現在有一份非常有趣的工作,在一個爆炸性增長的市場中。所以我祝他一切順利。我認為這對於帕特來説作為CEO是一個不錯的選擇,我希望這是一個好選擇,我們會拭目以待。他確實非常關心英特爾,他過去也取得了真正的成功,肯定會給公司帶來更多的技術關注點。但我喜歡和司睿博(Bob Swan)一起工作,所以我們拭目以待。
三、跳進跳出特斯拉英特爾,玩得很開心
問題8:您當前在一家名為Tenstorrent的公司,和老朋友Ljubisa Bajic(Tenstorrent首席執行官)一起。縱觀整個職業生涯,您基本上都在從一家公司跳到另一個公司。您總是在尋找另一個項目、另一個機會、另一個角度。恕我直言,Tenstorrent會成為您永遠的家嗎?
Jim Keller:首先,我在Digital(DEC)工作了15年,對吧?!現在是一種不同的工作,我在中檔組,用ECL製造冰箱大小的計算機。我曾是DEC Alpha團隊的一員,我們打造了微處理器,很小的東西,但在當時我們認為它們很大,300平方毫米、50瓦,這令每個人都大吃一驚。
我在那兒待了一段時間,然後在互聯網高峯期去了AMD,我們在幾年內做了很多事情,啓動了Opteron(皓龍處理器)、HyperTransport、2P服務器,這是一個旋風般的地方。但我被互聯網的熱情吸引了,我去了SiByte,它被博通收購了,我在那裏總共待了4年,交付了幾代產品。
當時我在P.A. Semi工作,我們交付了一個很棒的產品,但出於某種原因,他們並不想出售該產品,或者他們想要將其賣給蘋果。隨後蘋果買下了P.A. Semi,我就在那個團隊工作,所以你知道我在P.A. Semi和蘋果之間徘徊,那已經7年了,所以我並不覺得跳得太多。
之後我跳槽到AMD,我想,這是一段很有趣的時間。再後來,我去了特斯拉,在那裏,我們交付了Hardware 3.0 (特斯拉自動駕駛芯片)。這是一種現象。從靜止起步到18個月內駕駛一輛汽車,我認為這是前所未有的,而且那個產品發貨真的很成功。他們去年建了100萬套。特斯拉和英特爾是另一種旋風,所以你可以説我跳進去又跳出來,確實玩得很開心。
是的,我去過一段時間。我喜歡這樣想,我大部分時間,都用在完成我想要完成的事情。就交付具有持久價值的產品而言,我的成功是相當高的。我不是那個在生產中調整事情的人,這要麼是一張乾淨的紙,要麼是一場徹頭徹尾的災難。
這似乎是我最擅長的事情。瞭解自己真好——我不是運營經理。Tenstorrent更像是一張乾淨的紙。AI領域正在爆發。這家公司本身已經成立多年了,但我們正在打造新一代部件,然後推向上市,開始銷售。我是CTO兼總裁,在公司中擁有大量股權,無論是基於財務還是對那裏的朋友的承諾,我都打算在這裏待一段時間。
問題9:您之前説過,超越了矩陣,你最終會得到巨大的圖結構,特別是對於AI和ML,關於Tenstorrent的全部要點,它是一個圖形編譯器和圖計算引擎,而不僅僅是一個簡單的矩陣乘法?
Jim Keller:有少量晶體管時,你可以做標量數學運算,比如A=B+CxD。現在我們有了更多的晶體管,你可以説“我能做一個這些晶體管的向量”,就像一步做一個方程。
得到更多的晶體管後,我們可以做矩陣乘法。當獲得更多晶體管,你想進行這些大運算並分解它們,因為如果你的矩陣乘數太大,僅僅通過單元的能量就是一種能源浪費。
你會發現你想構建這個最優大小的塊,它不會太小,就像GPU中的一個線程,但它也不會太大,就像用一個矩陣乘數覆蓋整個芯片一樣。
從能耗的角度來看,這是一個非常愚蠢的想法。你將獲得這個中型大小處理器陣列,其中中型處理器像是4TOPS。這對我來説仍然很有趣,因為我記得那是個非常大的數字。
一旦你把它分解,現在你必須把大運算映射到處理器陣列,AI看起來像一個非常大運算的圖。它仍然是一個圖,然後將大運算分解成較小的圖。現在你必須將它放在一個有很多處理器的芯片上,並讓數據流繞在它周圍。
這是一種與運行向量或矩陣程序非常不同的計算方式。我們有時稱之為標量向量矩陣。Raja過去稱它為空間計算(spatial compute),這可能是一個更好的詞。
問題10:除了Tensix核心,Tenstorrent還在為下一代的核心中添加向量引擎?這是怎麼一回事?
Jim Keller:還記得通用CPU上有向量引擎嗎?事實證明,當你運行AI程序時,你想有一些通用計算。在圖中,有時你想根據AI操作的結果運行C語言程序,因此將計算緊密耦合是很好的。通過將其保存在同一芯片上,延遲非常低,來回消耗的能量也很合理。
所以,是的,我們正在為此制定一個有趣的路線圖。這是一個很小的計算機架構研究領域,比如,加速計算和通用計算的正確組合是什麼?人們如何使用它?如何以一種程序員可以實際使用的方式來構建它?這就是我們正研究的技巧。
四、處理更復雜的事情,必須藉助工具和組織
問題11:縱觀您的職業生涯,您在高性能計算和低功耗高效計算之間徘徊。現在,您正處於AI加速的世界。有過無聊的時候嗎?
Jim Keller:不,這真的很奇怪!它變了,變了很多,但在某種程度上,它完全沒有改變。底部的計算機,它們只是將1和0加在一起。這很簡單。011011100,沒那麼複雜。
但我曾研究過VAX 8800,用每個芯片有大約200個“或門”的柵極陣列構建它。如今在Tenstorrent,我們的小計算機,我們稱之為Tensix核心,每個核心每秒有4萬億次操作,一個芯片裏有100個這樣的處理器。因此架構模塊已經從200個門轉移到4TOPS。這有點瘋狂。
這些工具比以前好得多。你現在能做的是,除非抽象級別改變,工具改變,否則你無法構建更復雜的事情。這方面發生了很多變化。
當我還是個孩子時,我曾經認為我必須自己做每件事,我像個瘋子一樣工作,一直編碼。現在我知道如何與人合作,如何與組織合作,如何傾聽,諸如此類的人際交往技能。人際交往能力上,我可能會有一個相當不平衡的記分卡!我確實有一些。
問題12:您認為現在的工程師需要更多的人際技能嗎?因為每件事都很複雜,都有單獨的抽象層,如果想兼顧它們,必須有相應的基礎知識。
Jim Keller:現在這是基本的事實,人們沒有變得更聰明。因此,人們不能繼續處理越來越多的事情——這太蠢了。你必須建立工具和組織,來支持人們做複雜事情的能力。
VAX 8800團隊有150人。但在蘋果建造第一個或第二個處理器的團隊,第一個大型定製核心,只有150人。現在CAD工具好到令人難以置信,我們使用1000多個計算機進行模擬,此外,我們還有工具可以佈局佈線200萬個門,而不是200個門。
因此,有些事情發生了根本性變化,但一位工程師一天內可能會交談的人數根本沒有改變。如果你有一個工程師每天和超過五個人交談,他們會失去理智。所以,有些東西是真的恆定的。
五、CPU指令集:Arm/x86 VS RISC-V
問題13:我想了解一下您對CPU指令集的看法。具體的問題是,我們應該如何處理基本的限制?如何轉向更好的?以及在Arm、x86與RISC-V方面,您如何入局?我記得有一次,您説大多數計算發生在幾十個操作代碼上,對嗎?
Jim Keller:(關於指令集的爭論)是一個非常悲傷的故事。它甚至不是幾十個(操作代碼)——80%的核心執行僅僅是6條指令——加載、存儲、加法、減法、比較和分支。這些幾乎就涵蓋了所有。如果你用Perl或其他方式寫作,也許調回和返回,要比比較和分支更重要。但指令集的影響很小,你可能會因為丟失指令而損失10%或20%的(性能)。
有段時間,我們認為可變長指令真的很難解碼,但我們一直在想辦法解決這一點。你基本上預測了表格中所有指令的位置,一旦你有了好的預測器,你就可以很好地預測這些東西。
因此,當你打造小型計算機時,固定長度的指令看起來很不錯,但如果你正在打造一台非常大的計算機,來預測或確定所有指令的位置,它就不佔優勢。所以這沒有那麼重要。
當RISC剛出現時,x86有一半是微代碼。如果你看看die,一半或1/3的芯片是ROM。RISC人員可能會説RISC芯片上沒有ROM,所以我們得到了更高的性能。但現在ROM這麼小,你發現不了。實際上,加法器這麼小,你幾乎找不到它?目前限制計算機性能的是可預測性,其中兩大限制是指令/分支可預測性和數據局部性。
現在新的預測器真的很擅長這個。它們很大,兩個預測器比加法器大得多。這就是你CPU與GPU(或AI引擎)之間爭論的地方。GPU的人會説:“看,沒有分支預測器,因為我們做每件事都是並行的。”芯片有更多的加法器和減法器,如果這是你的問題,這是正確的。但他們在運行C語言程序時很垃圾。
GPU是為在像素上運行着色程序而構建的,如果您有800萬個像素,而大型GPU現在有6000個線程,您可以覆蓋所有像素,每個線程每幀運行1000個程序。
但這有點像一羣螞蟻帶着沙粒,而大型AI計算機有很大的矩陣乘數,它們喜歡用更少的線程來做更多的數學運算,因為問題本身就很大。而着色器問題是,問題本身很小,因為像素太多了。
有三種不同類型的計算機:CPU、GPU和AI。NVIDIA正在做“中間人”的事情,他們用GPU運行AI,並試圖增強它。其中一些顯然效果很好,有些顯然相當複雜。
有趣的是,這種情況經常發生,當通用CPU看到GPU的向量性能時,它添加了向量單元。有時這很好,因為你只有一點向量計算要做,但如果你有很多事,GPU可能是更好的解決方案。
問題14:回到指令集架構(ISA)問題,很多人問您對Arm和x86有什麼看法?哪款有遺留問題,哪款有性能?您在乎嗎?
Jim Keller:我有點在乎。事情是這樣的。當x86剛問世時,它超級簡單純淨,當時有多個8位架構:x86、6800、6502。我可能以前就編程過所有這些程序。奇怪的是,x86是開放版本。他們授權給7家不同的公司,這給了人們機會,而英特爾出人意料地授權了它。然後是16位和32位,後來他們增加了虛擬內存、虛擬化、安全性,繼而是64位和更多功能。當你添加東西時,你還要保留舊的內容,以確保兼容性。
當Arm剛出現時,它是一台純淨的32位計算機。與x86相比,它看起來更簡單、更易構建。然後他們添加了16位模式和IT(如果是的話)指令,這太糟糕了。然後(他們添加了)一個奇怪的浮點向量擴展集,覆蓋寄存器文件,再之後是64位,這部分清理了它。在安全和引導方面有一些特殊的東西,所以它只會變得更加複雜。
現在RISC-V出現了,它是耀眼的Arm新表親。因為沒有“垃圾”。它是一個開放式指令集架構,人們在大學裏打造它,他們沒有時間和興趣去像其他架構那樣添加太多的“垃圾”。所以相對來説,僅僅因為它的血統和年齡,它才處於複雜生命週期的早期。
這是一套相當不錯的指令集,他們做得很好。所以如果我今天想非常快地構建一台計算機,並且希望它運行地更快,那麼RISC-V是最容易選擇的。它是最簡單的一個,擁有所有正確的功能,並且沒有太多的垃圾。
問題15:所以現代指令集太臃腫了,尤其是有舊的遺留問題、歷史包袱?
Jim Keller:已迭代和添加的指令太臃腫了。總是這樣。當你不斷添加內容時,工程師們會遇到困難。你可以有一個非常好的設計,有10個功能,然後你再添加一些功能。這些功能都使它更好,也使它更加複雜。
隨着時間推移,添加的每個新功能都變得更難,因為該功能和其他所有內容的交互都變得很糟。
營銷人員和老客户會説“不要刪除任何東西”,但與此同時,他們都在嘗試新的東西,其功能只有老內容的70%,但它做得更好,因為它沒有所有這些問題。
我談到了收益遞減曲線,收益遞減的原因有很多,其中之一是事物相互作用的複雜性。原本更簡單、做得更少的東西會更快,它們會讓這些速度慢下來。這種情況已經發生過很多次了,這是複雜性理論的結果,我認為是“人類的邪惡”。
問題16:您有沒有見過這樣的情況:x86崩了,而某些東西被重新發明?或者它只是有些遺留問題,像RISC-V這樣的新事物會蹦出來填補空缺?
Jim Keller:x86-64相當乾淨,但顯然它必須揹負所有的舊包袱。他們棄用了許多舊的16位模式。很多東西都消失了,有時如果你很小心,你可以説“我需要支持這個legacy,但它不一定是性能,我可以把它與其他legacy隔離開來”。你要麼模仿它,要麼支持它。
我們曾打造計算機,有前端、獲取、調度、執行、負載存儲、L2緩存。如果你觀察它們之間的界限,你會看到100根線在做一些隨機的事情,這些事情確切地取決於時鐘的哪個週期或階段。
現在,這些接口看起來不像指令邊界,如果我從這裏發送到那裏會有一個協議。裏面的計算機看起來不像一堆東西連在一起,而看起來像8台計算機連在一起做不同的事情。有一台獲取機、一台調度機、一台執行機和一台浮點計算機,如果你這樣,你可以不碰其他任何東西就改變浮點。
這與其説是指令集的東西,更像是“構建它時你的設計原則是什麼”,然後你是怎麼做到的。
如果你遇到問題,你可以説“如果我能在這兩個盒子之間有這五根線,我就可以解決這個問題。”但每次你這樣做,每次你違反抽象層,你都會給未來的Jim Keller製造一個問題。
我這樣做過很多次,如果你能正確地解出來,它仍然是乾淨的,但如果你稍微破壞一下,那麼隨着時間的推移,它會殺死你。
六、抽象分層能解決更復雜的問題
問題17:在很多演講中,您談到抽象分層的概念,不僅涉及工程的很多方面,也涉及到生活。這個概念是指您可以獨立地升級不同的層,而不會影響上下層,並提供新的平台來構建。在您生命中的哪個階段,這種精神發生了變化?您的生活中發生了什麼,讓它成為您個性的普遍元素?
Jim Keller:我個性中的普遍元素?這很有趣!我知道我經常重複它,也許我想説服自己。比如,當我們構建EV6時,德克·邁耶(Dirk Meyer,AMD K7研發主導者)是另一位架構師。我們還有其他幾個很厲害的人。我們把設計分成幾部分,寫了一個非常簡單的性能模型,但當我們構建這個東西時,對於一個壞掉的機器來説,這是一個相對短的通道,因為我們在預測方面還有點弱。事物之間有很多相互作用,這是我們一個困難的設計。
我們還使用Digital當時的定製設計方法構建了它。我們有22種不同的觸發器(flip-flop),人們會roll他們自己的觸發器。我們經常用晶體管建造大型結構。我記得有人問我庫裏有什麼元素,我説,兩者都是!N型和P型,對嗎?然後去了AMD,K7是用一個單元庫構建的。
現在,那裏的工程師非常擅長佈局單元庫,能獲得良好的性能。他們只有兩個flip-flop,1個大的和1個小的,他們有一個純淨的單元庫。他們在晶體管和設計器之間有一個抽象層。那時候還沒有真正好的佈局佈線工具,這是一種更好的方式。
然後,在EV6(後來被稱為S2K總線)上構建的接口上,我們聽取了AMD的意見。我們最初有很多複雜的交易來做snoops、加載、存儲、讀取、寫入等各種事。我的一個朋友在數字研究實驗室工作,有一天我向他解釋了這是如何運作的,他聽了我的話後,只是搖了搖頭。
他説:“Jim,你不該這樣做的。”他解釋了虛擬通道是如何運作的,以及如何擁有獨立的抽象信息通道。在開始對命令編碼之前,你需要正確處理這一點。那場教研會的結果是HyperTransport。它有很多S2K協議,是以更抽象的方式構建的。
因此我想説,從Digital到AMD的轉變,讓我們有了關於如何構建高性能計算的想法,但方法是集成的,所以從晶體管到架構不能是同一個人。
在AMD,有邁克·克拉克(Mike Clark)、架構師、微架構師和RTL人員編寫Verilog,他們字面上被翻譯為gate庫、gate人員,這更像是一種分層方法。
K7是一個相當快的處理器,我們第一次在K8上搖擺,我們有點倒退了。當時我最喜歡的電路合作伙伴,他和我可以談論大型設計,我們把它看作晶體管,但這是一種複雜的計算機制造方式。
從那以後,我更相信抽象分層是正確的。你不會超越人類的能力——這是最大的問題。如果你想構建更大、更復雜的東西,你最好解決抽象分層問題,因為人們沒有變得更聰明。如果你在上面放了100多人,它會減速,而不是加速,所以你必須解決這個問題。
問題18:如果有100多人,需要分成兩個抽象層?
Jim Keller:沒錯。這是有原因的,就像人類很擅長追蹤。你的核心朋友圈就像10-20個人,像一個親密的家庭,然後根據組織方式,有50到100人,你可以記錄。但除此之外,你把100人之外的每個人,都視作半個陌生人。所以你必須有一些不同的合約來説明你如何做到這一點。
就像我們做Zen的時候,有200人,一半團隊在前端,一半團隊在後端。它們之間的接口是已經定義好的,不需要彼此談論合約背後的細節。
這是很重要的。現在他們相處得很好,一起工作,但他們不必經常在邊界上來回走動。
七、關於摩爾定律,以及X射線光刻技術
問題19:您曾説過不擔心摩爾定律,不擔心在工藝節點方面的演變,它最終會被人在某個地方解決。您對摩爾定律的態度是冷漠的嗎?
Jim Keller:我非常積極主動。這根本不是冷漠。我知道很多細節。人們混淆了一些事情,比如英特爾的10nm延期,有人説摩爾定律已經死了,台積電的發展路線圖卻根本沒有動搖。
部分原因是台積電的路線圖與EUV機器的可用性保持一致。所以當他們從16nm到10nm再到7nm時,他們做了台積電非常擅長的事情——做了這半步(half steps)。
因此,他們做了沒用EUV的7nm、用EUV的7nm、不帶EUV的5nm、帶EUV的升級版5nm,他們做了些調整。然後使用EUV機器,有一段時間以來,人們不確定他們是否會工作。但現在阿斯麥(ASML)的市值超過了英特爾。
還有一件有趣的事情,我意識到,在創新的軌跡上,我們傾向於將台積電、三星和英特爾視為製程領導者。但許多領先地位實際上在ASML等設備製造商和材料方面。如果你看看誰在製造創新的東西,以及EUV全球銷售,這個數字就像台積電到2023年將購買150台EUV機器之類的東西。
這些數字是驚人的,因為即使在幾年前,也沒有多少人確定EUV會起作用。現在X射線光刻技術即將出現,你可以説這是不可能的,但該死的,一切都是不可能的!
精細的印刷品,理查德·費曼(Richard Feynman)就是這麼説的,他有點聰明。他説“底部有很多空間”,我個人可以數,如果你看看晶體管上有多少個原子,有很多。如果你看看你實際上需要多少晶體管才能做一個結,沒有太多的量子效應,只有10個。所以還有空間。
還有一件有趣的事情——當每個人都相信技術正在以這種速度發展,而整個世界都朝着這個速度前進時,就有了一個信念體系。
但技術不是一回事。有些人知道如何構建晶體管,比如製程設計師在英特爾、台積電或三星所做的。他們使用可以做特徵的設備,但隨後這些特徵實際上相互作用,然後會有一個很有趣的權衡,比如如何沉積和蝕刻,它應該有多高、多寬,在什麼空間裏。他們是使用工具的工匠,工具必須超級鋒利,工匠必須非常有知識。這是一出很複雜的戲。
在某種程度上,因為機器本身很複雜,你有這個小的複雜組合,機器製造商正在做不同的部件,但他們並不總是完美地協調,或者他們通過設計流程的機器集成人員進行協調,這很複雜,它讓事情慢下來。但這並不是因為物理基礎——我們在物理基礎方面正在取得良好進展。
問題20:您在Scaled ML大會演講中,在幻燈片上印着一個Comic Sans字體的X,説隨着時間推移,由於物理定律,EUV還有幾個步驟要走。high-NA EUV幾年後即將推出,但現在您提到了X射線。有什麼時間表嗎?
Jim Keller:通常當一項技術出現時,他們會用它來做一件事。當EUV首次用於DRAM時,它實際上是一步,也許是兩步。我想起來了,可能2023或2024年?並不是很遠。這意味着他們已經啓動並運行了,人們正在使用它。
更瘋狂的是,當它們從可見光變成極紫外光時,波長大約減少了10倍?因此,當他們有瘋狂的多圖案和干擾之類的東西時,你可以看到那些DUV的圖案,當談到EUV時,他們可以直接印刷。但實際上(當你縮小時)他們可以在EUV上使用相同的技巧。所以EUV將是多圖案的,我想是在3nm。然後你可以用它做很多技巧。
所以,物理真的很有趣。然後是物理、光學等,材料的純度,這非常重要,還有温度控制,這些事不會來回移動太多。你看到的每一個地方都是有趣的物理問題,所以有很多事情要做。有成千上萬的人在研究它,並有足夠的創新空間。
八、把老團隊帶到新東家未必是好事
問題21:我們注意到,當您從一個公司跳槽到另一個公司時,您所做的一件事是組建一個團隊。由於團隊是由其他人組建的,我們看到有些人將他們在前幾家公司組建團隊中的工程師帶到下一家公司。您對組建團隊有什麼見解嗎?在您所在的公司是否有什麼不同的方法?
Jim Keller:你必須意識到的第一件事是,你是在組建團隊,還是在尋找團隊?威尼斯有一個很棒的博物館,大衞博物館,博物館前面有一些巨大的大理石塊。我不知道他們是如何移動的。大理石塊已經放在那裏,米開朗基羅可以看到這個美麗的雕塑,問題在於去除多餘的大理石。
因此,如果你進入擁有1000名員工的公司,我向你保證,那裏有一支好團隊。你不必僱傭任何人。我在AMD時幾乎不僱人。我們四處調動人員,重新部署了人員,那裏有很多優秀的人才。
當我去特斯拉時,我們必須從零開始組建團隊,因為特斯拉沒有人在做芯片。我僱了一些我認識的人,後來又僱了一些我以前不認識的人,這是其中一件有趣的事情。
我見過領導者從一個公司到另一個公司,帶着20個人,然後開始試圖複製他們以前擁有的東西。這是一個壞主意,因為儘管20個人足以複製(你的)現狀,但它會疏遠(在新團隊中的)你想要的東西。
當你組建一個新團隊時,理想情況下,你會得到你真正喜歡的人,或者你剛認識他們,或者你和他們一起工作,但你需要在方法和思維上有所不同,因為每個人都有一個局部的最低要求。所以新團隊有機會一起創造一些新的東西。
其中一些原因是,如果你有10個真正非常好的團隊,然後你從每個團隊中抽出一個人組建一個新團隊,那可能更好,因為他們會重新選擇哪個是最好的想法。
每個團隊都有優點和缺點,因此你必須考慮,你是在建立團隊還是在尋找團隊,你想要創造的動力是什麼,它給人們提供了產生新想法的空間。
或者,如果有些人堅持一個想法,他們會與新人合作,會開始做這件不可思議的事情,你會認為他們很棒,即使他們以前沒那麼好,那麼發生了什麼?他們帶着一些不太好的想法,遇到了一個挑戰他們或環境迫使他們的人,突然間他們就做得很好了。我見過很多次這種情況。
Digital(DEC)的肯·奧爾森(Ken Olson)説,沒有糟糕的員工,只有不合適的員工。
當我年輕的時候,我認為這很蠢。但隨着我與更多人合作,我見過這種情況發生很多次,我甚至解僱過一些後續取得真正成功的人。這一切都是因為他們沒有把工作做好,被情緒困住了,他們覺得自己在做一些沒用的事情。
將他們搬到另一個地方的行為使他們自由了。(不用説)我沒有得到一句感謝。
問題22:這之中有多大程度歸結於公司文化呢?當您為合適的職位尋找人或招聘新員工時,您是否嘗試得到一些與公司利益相悖的東西?您這裏有什麼策略嗎?還是您只是在找一個有火花的人?
Jim Keller:如果你想要創造一些真正具有創新性的內容,那麼你的想法很可能與傳統背道而馳。如果你的項目進展順利,引入激勵者會讓所有人放慢腳步,因為你已經做得很好了。
你必須在環境中觀察。有些人真的很好,他們非常靈活地適應並推動這個項目,但在下一個項目中,你可以看到他們已經建立自己的網絡和團隊,在下一個項目中,他們準備做一個支點,每個人都願意工作。信任是件有趣的事情,不是嗎?
你知道,如果有人走上前來,説跳下這座橋,但你會沒事的,你可能會認為這是説胡話。但如果你已經和他們一起經歷了很多事情,他們説“看,相信我,然後跳下去——你會沒事的;這會很糟糕,但會沒事的”,你會做的,對吧?
相互信任的團隊,比那些必須處理合同、談判和政治的團隊效率高得多。
所以這可能是一回事。如果你正在建立或尋找一個團隊,你開始看到人們從事政治活動,這意味着為了自己的利益操縱環境,他們必須離開。除非你是老闆!那你就必須看看他們能不能做到,有些人非常政治化,但他們真的認為自己的政治力量來自於實現目標。但在一個政治性的組織中,人們會隨意造成很多壓力。
問題23:您是否建議早期或中期的工程師應該定期從一個項目跳到另一個項目,這樣他們就不會陷入困境?這聽起來是一件常見的事情。
Jim Keller:當你做新事情併為那些比你懂得多的人工作時,你學得最快。因此,如果你的職業生涯剛剛開始,而且你學到的東西不多,或者你為之工作的人沒有激勵你,那麼是的,你可能應該改變。
有些職業中,我曾見過一些人因為獲得經驗而換了三次工作,結果卻一無所獲。他們最好還是待在原處,真正深入研究一些事情。所以你知道,這兩種想法之間存在創造性張力。