第325章 天權4號片上系統集成驗證
驗證中心在芯谷的地下二層。
不是刻意要把晶片驗證藏在地下,而是這片區域的地質結構最適合建超低振動實驗室。地面上三層是晶片設計中心和軟體開發區,地下一層是高性能計算集群,地下二層才是真正的驗證核心——四間恆溫恆濕的潔淨室,中間圍著一個兩百平方米的系統集成驗證大廳。大廳的天花板上鋪滿了減震模塊,走在上面幾乎感覺不到任何振動,連腳步聲都被吸音材料吞掉了大半。
章宸站在大廳中央的調度台前,面前是六塊八十寸的顯示牆,每塊牆上都滾動著天權4號片上系統集成驗證的實時數據流。六組驗證工程師分布在四間潔淨室里,每組負責一個子系統——CPU複合體、GPU集群、NPU引擎、內存控制器、IO子系統、電源管理單元。六條數據流在顯示牆上匯聚成一張巨大的「驗證覆蓋圖」,綠色代表通過、黃色代表邊界、紅色代表失敗。
現在是天權4號集成驗證的第七十三天。
按照原計劃,集成驗證應該在本周內完成全部測試項,然後進入最終簽核、送交流片。但章宸在三天前的晨會上做了一個讓所有人意外的決定——暫停驗證,回退兩個版本,重新跑一組跨子系統的協同用例。
做出這個決定的原因是:驗證團隊發現了一個極其隱蔽的問題。在單獨測試CPU複合體和NPU引擎時,兩個子系統都表現完美,性能達到設計指標的百分之一百零二。但當CPU和NPU同時高負載運行時,系統總線的延遲會出現間歇性的抖動,抖動幅度雖然只有不到百分之一,但頻率分布不均勻——在某些特定的訪問模式下,延遲會在幾個微秒內突然跳變,然後又恢復。
這不是一個「功能錯誤」,因為系統規範允許的延遲抖動範圍比這個大得多。但章宸在看到那組數據後,說了一句話:「這不是功能問題,是性格問題。天權4號如果在用戶手裡跑某些特定應用時出現這種不可預測的延遲抖動,用戶不會知道是總線的鍋,他們只會覺得『天權晶片有時候會卡一下』。我們不能讓『有時候會卡一下』這種印象和天權晶片綁定在一起。」
於是回退。
於是重跑。
今天是重跑的第三天。
調度台的屏幕右上角有一個倒計時,顯示距離原定流片窗口還有十九天。十九天後,晶圓廠的產能窗口就會關閉,下一輪窗口要再等六周。六周意味著天衡5的量產可能會延遲,意味著天權5的疊代節奏會被打亂,意味著對面全面制裁落地時天權晶片的庫存可能不夠。
但章宸沒有壓縮驗證時間的打算。他在回退那天對團隊說了一句話:「流片晚了六周,我們可以用庫存和排產來補。晶片出了問題,沒有任何東西能補。」
此刻,顯示牆上的驗證覆蓋圖正在緩慢地由黃轉綠。經過兩天的調試,總線延遲抖動的問題已經被定位到CPU和NPU共享的最後一級緩存仲裁邏輯上——仲裁器在某種極端訪問模式下會出現「飢餓」現象,某個數據流會因為優先級設置不當而被連續推遲服務。修複方案是在仲裁器中增加一個「老化計數器」,確保任何數據流等待超過一定時間後優先級自動提升。
這個修復已經在仿真環境中驗證通過,今天上午被集成到完整的驗證用例中重新跑。
章宸沒有盯著顯示牆看,而是坐在調度台旁邊的椅子上,面前是一台只顯示原始數據日誌的終端。他的眼睛在那些十六進位的地址和數據之間來回掃,速度比旁邊專門負責日誌分析的工程師還快。這不是天賦,是過去二十年裡看了幾百萬行日誌練出來的本能。
趙靜從電梯裡走出來,手裡端著一杯已經涼透的咖啡。她是被章宸叫來的——總線延遲抖動問題的根因雖然找到了,但修複方案涉及NPU引擎的數據預取策略調整,需要小芯團隊確認這個調整會不會影響AI模型的推理精度。
「跑了三組基準模型,」趙靜把一份對比報告放在章宸面前,「精度差異在萬分之二以內,統計上不顯著。小芯的判斷是——可以接受。」
章宸沒有看報告,而是問了趙靜一個問題:「萬分之二的精度差異,在百萬級用戶規模下,會有多少人感覺到『好像不如以前准了』?」
趙靜愣了一下。她沒想到章宸會問這個問題,因為這已經超出了技術範疇,進入了用戶感知的模糊地帶。但她只用了不到一秒就給出了答案:「不會有人感覺到。萬分之二的差異,連專業評測機構的標準化測試都測不出來,更別說普通用戶了。」
章宸點了點頭,把報告收下,放在調度台的文件夾里。
「還有一個問題,」趙靜說,「小芯在天權4號的NPU引擎上跑一組新模型的適配測試時,發現了一個奇怪的現象——某些卷積層的計算效率比預期低了大概百分之七。不是所有層,只是某些特定的 kernel size 和 stride 組合。小芯的分析結論是,NPU引擎的硬體調度器在這些特定參數下沒有完全流水線化,有氣泡。」
章宸的表情變了。不是緊張,而是專注——那種發現了獵物痕跡時的專注。
「哪些 kernel size?」
趙靜把一組參數寫在便簽上,遞給章宸。3x3 stride 2、5x5 stride 2、7x7 stride 3,以及一組擴張卷積的參數。
章宸看完,在便簽背面畫了一個簡單的示意圖。NPU引擎的硬體調度器在處理卷積運算時,會將輸入特徵圖和權重加載到片上緩存,然後由計算陣列執行乘加運算。在某些 kernel size 和 stride 組合下,計算陣列的利用率會下降,因為數據加載的速度跟不上計算的速度,或者計算結果寫回的帶寬成為瓶頸。
「這個問題能修嗎?」趙靜問。
「能修,但要看代價。」章宸站起來,走到顯示牆前,調出NPU引擎的微架構圖。「調度器的流水線控制邏輯是硬連線,不是微碼。如果要改,需要修改RTL,重新跑綜合、時序、物理設計。代價是流片至少推遲四周。」
趙靜沉默了。四周,加上已經回退的兩天,天權4號的流片窗口可能會徹底錯過,下一輪窗口要等六周後,總計延遲可能達到十周。
「但如果不修,」章宸說,「這個百分之七的效率損失就會永遠留在天權4號的NPU引擎里。天權4號的生命周期至少三年,出貨量可能超過一億顆。每一顆晶片在跑某些模型時都會慢百分之七。這個代價,比流片晚十周更大。」
章宸在顯示牆上畫了一條紅線,把NPU調度器的問題列為「P0級」——最高優先級,必須在流片前解決。
趙靜沒有異議。她知道章宸是對的。在晶片驗證中,最痛苦的不是發現問題,而是發現了問題卻選擇視而不見,因為怕影響進度。而每一次視而不見,都會變成一顆晶片整個生命周期里無法抹去的瑕疵。
下午兩點,驗證大廳里多了一組人——NPU微架構設計團隊的核心成員。他們從設計中心趕過來,帶著RTL代碼、仿真腳本和時序報告。調度台旁邊的白板上開始出現各種電路圖和時間波形,討論聲越來越大,偶爾夾雜著爭論。
爭論的焦點不是「修不修」,而是「怎麼修」。
方案A:修改調度器的流水線控制邏輯,增加一組專門處理這些特定參數的旁路路徑。優點是徹底解決問題,副作用小。缺點是RTL改動較大,需要重新驗證的範圍也大,至少需要四周。
方案B:不改硬體,改軟體——在NPU驅動中增加一個「參數重映射表」,當應用提交這些低效率的卷積參數時,驅動自動將其轉換為等效但效率更高的參數組合。優點是無需改硬體,不影響流片時間。缺點是這個「等效轉換」不是對所有模型都成立,某些模型的精度可能會受影響。
方案C:部分修改硬體——只改調度器中與這些特定參數相關的比較器邏輯,不改流水線結構。優點是RTL改動小,驗證範圍可控,大約需要兩周。缺點是不能完全解決所有低效率場景,只解決了最嚴重的那幾個。
章宸聽完三個方案,在白板上寫下了一組判斷標準。
第一,天權4號的生命周期內,這些低效率卷積參數出現的頻率有多高?
NPU架構師調出了過去六個月小芯平台上所有模型的卷積參數統計。3x3 stride 2 出現在超過百分之六十的模型中,5x5 stride 2 出現在百分之三十左右,擴張卷積出現在約百分之十五的模型中。這些不是邊緣場景,而是主流場景。
第二,不改硬體只改軟體,對模型精度的影響有多大?
趙靜讓團隊跑了十組代表性模型的對比測試。方案B的等效轉換在八組模型上精度無損,在一組模型上精度下降百分之零點三,在最後一組模型上精度下降百分之一點一。百分之一點一的下降對於某些應用來說可能不可接受。
第三,部分修改硬體能覆蓋多少場景?
方案C的覆蓋範圍是:3x3 stride 2 和 5x5 stride 2 可以完全解決,擴張卷積只能解決一部分。總體覆蓋率大約百分之八十五。
章宸把三個方案的優缺點在白板上列完後,在方案A上畫了一個圈。
「改完整。不改部分,不workaround。天權4號不能帶著一個『某些模型會慢百分之七』的標籤出廠。用戶不會理解『這是為了趕進度做的妥協』,他們只會覺得天權晶片不行。」
NPU架構師點了點頭,把方案A的任務拆解成具體的RTL修改點,分配給團隊的三個工程師。每個修改點都標註了完成時間和驗證負責人。
章宸補充了一個要求:「RTL修改完成後,不僅要重跑所有已有的驗證用例,還要增加一組專門的壓力測試,把調度器的所有可能狀態都覆蓋到。我不希望流片後發現還有別的參數組合有類似問題。」
調度台上的倒計時被章宸親手改掉了。原來的「19天」變成了「33天」——四周的RTL修改和驗證,加上一周的緩衝。
這個改變意味著天權4號的流片將錯過原定的窗口,下一輪窗口在六周後,實際流片時間比原計劃延遲了五周。五周的延遲會影響天衡5的量產排期、天權5的疊代節奏、以及天權晶片的整體庫存策略。
章宸在改完倒計時後,給陳醒發了一條消息:「天權4號集成驗證發現NPU調度器問題,需要改RTL,流片延遲五周。理由:不改的話,某些AI模型效率會低百分之七,且無法通過軟體完全補償。」
陳醒的回覆在三分鐘後到了,不是文字,是一張截圖。截圖里是一份文檔,標題是《天權晶片設計哲學·第一條》。文檔內容只有一行字:「晶片是承諾,不是妥協。」
章宸看著那行字,把終端收起來,繼續調度驗證工作。
夜裡,驗證大廳的燈還亮著。
NPU設計團隊的三名工程師坐在潔淨室里,面前是RTL代碼的編輯界面。他們要改的調度器邏輯分布在七個模塊里,最核心的那個模塊有超過兩千行代碼。改動雖然不大,但每一行都要小心——在晶片設計里,修改一個比較器的邏輯可能會影響幾百條相關路徑的時序。
章宸沒有走。他搬了一把椅子,坐在調度台旁邊,不是在盯著誰幹活,而是在等——等任何一個團隊需要他做決策的時候,他能第一時間出現。
晚上九點,NPU團隊完成了第一個模塊的修改,開始跑局部仿真。仿真需要大約四十分鐘,這四十分鐘裡,三個工程師靠在椅子上,閉了一會兒眼。他們從上午九點一直干到現在,中間只吃了一頓盒飯。
章宸讓助理從食堂帶了熱湯麵上來,每人一碗。面有些坨了,但湯還是熱的。三個人端著碗,蹲在潔淨室的地上吃,沒有人說話。吃完後,他們把碗放在門口,洗手,戴好靜電手環,回到屏幕前。
仿真結果出來了——第一個模塊的修改通過了局部驗證,時序收斂,功能正確。
章宸在那項任務後面打了一個勾,然後說了一句讓所有人鬆了一口氣的話:「今晚就到這裡。明天上午繼續。回去睡覺,別在代碼里留 bug。」
三個人收拾東西離開潔淨室,走過調度台的時候,都看了那面顯示牆一眼。驗證覆蓋圖上,NPU調度器那一欄還是黃色——代表「修改中,驗證未完成」。但他們知道,明天或者後天,它會變成綠色。
章宸最後一個離開驗證大廳。他關掉調度台上的大部分屏幕,只留下一面顯示實時日誌的終端。大廳暗了下來,只有那面終端的螢光映在減震地板上,像一汪安靜的水。
他站在大廳中央,最後看了一眼那面顯示牆。倒計時顯示「33天」,NPU調度器那欄是黃色的,總線仲裁器那欄已經變成了綠色——修複方案通過了全部驗證。
章宸在心裡過了一遍天權4號集成驗證的所有關鍵節點。CPU複合體已經跑了超過兩萬個測試用例,通過率百分之九十九點九七,剩下的百分之零點零三是邊緣情況,不影響流片。GPU集群的圖形和計算測試全部通過,性能達標。內存控制器通過了全部壓力測試,帶寬和延遲都在設計範圍內。IO子系統的PCIe、USB、顯示接口全部驗證完成。電源管理單元的低功耗模式切換經過了超過一萬次循環測試,沒有發現異常。
唯一卡住的,就是NPU調度器。
而這唯一卡住的地方,也是最不能妥協的地方。
章宸走出驗證大廳,關上門。門上的綠燈亮了,表示裡面的人員已經全部離開,環境參數開始切換到待機模式。
他沿著走廊往電梯走去,經過地下一層的高性能計算集群機房時,透過玻璃窗看見裡面一排排機櫃的指示燈在閃爍。那些機器里正在跑著天權4號成千上萬個仿真任務,有的已經跑完,有的還在繼續。它們不休息,不需要吃飯,不需要睡覺,只需要電和冷卻水。
但設計晶片的人需要休息。
章宸走進電梯,按了一樓。電梯門關上之前,他最後看了一眼地下二層走廊盡頭那扇緊閉的門。門的另一面,是那個倒計時、那面顯示牆、那個黃色的標記,和三個還在等待驗證結果的修改模塊。
電梯門關上了。
芯谷的地面上,夜風比地下涼得多。章宸走出主樓,抬頭看了一眼天空。雲層散了一些,露出幾顆星星。他認不出那些星星的名字,也不在乎。他在乎的是頭頂那顆不存在的「天權星」——中國古代星官里,天權是北斗七星里最暗的一顆,但它是北斗的一部分,缺了它,北斗就不完整。
天權4號也是這樣。它不是未來科技晶片產品線里最亮的那顆星,但沒有它,天權系列就不完整,天衡5的供應鏈就不安全,天樞生態的終端覆蓋就有缺口。
章宸收回目光,往停車場走去。
明天還要繼續改 RTL,繼續跑仿真,繼續盯驗證。
他走了幾步,終端震動了。是NPU團隊的工程師發來的消息,不是文字,是一張截圖。截圖里是某個模塊修改後的時序報告,最差負餘量從原來的負零點零三納秒變成了正零點零二納秒。
時序收斂了。
章宸在那條消息下面回復了一個字:「好。」
然後他繼續往停車場走,腳步比剛才輕了一點。不是因為他放鬆了,而是因為他知道,在那間地下二層的驗證大廳里,即使所有人都走了,那些仿真任務還在跑,那些數據還在積累,那個黃色的標記正在一點一點地變成綠色。
明天早上,當他再次走進那扇門的時候,驗證覆蓋圖上可能會多幾塊綠色。
不是刻意要把晶片驗證藏在地下,而是這片區域的地質結構最適合建超低振動實驗室。地面上三層是晶片設計中心和軟體開發區,地下一層是高性能計算集群,地下二層才是真正的驗證核心——四間恆溫恆濕的潔淨室,中間圍著一個兩百平方米的系統集成驗證大廳。大廳的天花板上鋪滿了減震模塊,走在上面幾乎感覺不到任何振動,連腳步聲都被吸音材料吞掉了大半。
章宸站在大廳中央的調度台前,面前是六塊八十寸的顯示牆,每塊牆上都滾動著天權4號片上系統集成驗證的實時數據流。六組驗證工程師分布在四間潔淨室里,每組負責一個子系統——CPU複合體、GPU集群、NPU引擎、內存控制器、IO子系統、電源管理單元。六條數據流在顯示牆上匯聚成一張巨大的「驗證覆蓋圖」,綠色代表通過、黃色代表邊界、紅色代表失敗。
現在是天權4號集成驗證的第七十三天。
按照原計劃,集成驗證應該在本周內完成全部測試項,然後進入最終簽核、送交流片。但章宸在三天前的晨會上做了一個讓所有人意外的決定——暫停驗證,回退兩個版本,重新跑一組跨子系統的協同用例。
做出這個決定的原因是:驗證團隊發現了一個極其隱蔽的問題。在單獨測試CPU複合體和NPU引擎時,兩個子系統都表現完美,性能達到設計指標的百分之一百零二。但當CPU和NPU同時高負載運行時,系統總線的延遲會出現間歇性的抖動,抖動幅度雖然只有不到百分之一,但頻率分布不均勻——在某些特定的訪問模式下,延遲會在幾個微秒內突然跳變,然後又恢復。
這不是一個「功能錯誤」,因為系統規範允許的延遲抖動範圍比這個大得多。但章宸在看到那組數據後,說了一句話:「這不是功能問題,是性格問題。天權4號如果在用戶手裡跑某些特定應用時出現這種不可預測的延遲抖動,用戶不會知道是總線的鍋,他們只會覺得『天權晶片有時候會卡一下』。我們不能讓『有時候會卡一下』這種印象和天權晶片綁定在一起。」
於是回退。
於是重跑。
今天是重跑的第三天。
調度台的屏幕右上角有一個倒計時,顯示距離原定流片窗口還有十九天。十九天後,晶圓廠的產能窗口就會關閉,下一輪窗口要再等六周。六周意味著天衡5的量產可能會延遲,意味著天權5的疊代節奏會被打亂,意味著對面全面制裁落地時天權晶片的庫存可能不夠。
但章宸沒有壓縮驗證時間的打算。他在回退那天對團隊說了一句話:「流片晚了六周,我們可以用庫存和排產來補。晶片出了問題,沒有任何東西能補。」
此刻,顯示牆上的驗證覆蓋圖正在緩慢地由黃轉綠。經過兩天的調試,總線延遲抖動的問題已經被定位到CPU和NPU共享的最後一級緩存仲裁邏輯上——仲裁器在某種極端訪問模式下會出現「飢餓」現象,某個數據流會因為優先級設置不當而被連續推遲服務。修複方案是在仲裁器中增加一個「老化計數器」,確保任何數據流等待超過一定時間後優先級自動提升。
這個修復已經在仿真環境中驗證通過,今天上午被集成到完整的驗證用例中重新跑。
章宸沒有盯著顯示牆看,而是坐在調度台旁邊的椅子上,面前是一台只顯示原始數據日誌的終端。他的眼睛在那些十六進位的地址和數據之間來回掃,速度比旁邊專門負責日誌分析的工程師還快。這不是天賦,是過去二十年裡看了幾百萬行日誌練出來的本能。
趙靜從電梯裡走出來,手裡端著一杯已經涼透的咖啡。她是被章宸叫來的——總線延遲抖動問題的根因雖然找到了,但修複方案涉及NPU引擎的數據預取策略調整,需要小芯團隊確認這個調整會不會影響AI模型的推理精度。
「跑了三組基準模型,」趙靜把一份對比報告放在章宸面前,「精度差異在萬分之二以內,統計上不顯著。小芯的判斷是——可以接受。」
章宸沒有看報告,而是問了趙靜一個問題:「萬分之二的精度差異,在百萬級用戶規模下,會有多少人感覺到『好像不如以前准了』?」
趙靜愣了一下。她沒想到章宸會問這個問題,因為這已經超出了技術範疇,進入了用戶感知的模糊地帶。但她只用了不到一秒就給出了答案:「不會有人感覺到。萬分之二的差異,連專業評測機構的標準化測試都測不出來,更別說普通用戶了。」
章宸點了點頭,把報告收下,放在調度台的文件夾里。
「還有一個問題,」趙靜說,「小芯在天權4號的NPU引擎上跑一組新模型的適配測試時,發現了一個奇怪的現象——某些卷積層的計算效率比預期低了大概百分之七。不是所有層,只是某些特定的 kernel size 和 stride 組合。小芯的分析結論是,NPU引擎的硬體調度器在這些特定參數下沒有完全流水線化,有氣泡。」
章宸的表情變了。不是緊張,而是專注——那種發現了獵物痕跡時的專注。
「哪些 kernel size?」
趙靜把一組參數寫在便簽上,遞給章宸。3x3 stride 2、5x5 stride 2、7x7 stride 3,以及一組擴張卷積的參數。
章宸看完,在便簽背面畫了一個簡單的示意圖。NPU引擎的硬體調度器在處理卷積運算時,會將輸入特徵圖和權重加載到片上緩存,然後由計算陣列執行乘加運算。在某些 kernel size 和 stride 組合下,計算陣列的利用率會下降,因為數據加載的速度跟不上計算的速度,或者計算結果寫回的帶寬成為瓶頸。
「這個問題能修嗎?」趙靜問。
「能修,但要看代價。」章宸站起來,走到顯示牆前,調出NPU引擎的微架構圖。「調度器的流水線控制邏輯是硬連線,不是微碼。如果要改,需要修改RTL,重新跑綜合、時序、物理設計。代價是流片至少推遲四周。」
趙靜沉默了。四周,加上已經回退的兩天,天權4號的流片窗口可能會徹底錯過,下一輪窗口要等六周後,總計延遲可能達到十周。
「但如果不修,」章宸說,「這個百分之七的效率損失就會永遠留在天權4號的NPU引擎里。天權4號的生命周期至少三年,出貨量可能超過一億顆。每一顆晶片在跑某些模型時都會慢百分之七。這個代價,比流片晚十周更大。」
章宸在顯示牆上畫了一條紅線,把NPU調度器的問題列為「P0級」——最高優先級,必須在流片前解決。
趙靜沒有異議。她知道章宸是對的。在晶片驗證中,最痛苦的不是發現問題,而是發現了問題卻選擇視而不見,因為怕影響進度。而每一次視而不見,都會變成一顆晶片整個生命周期里無法抹去的瑕疵。
下午兩點,驗證大廳里多了一組人——NPU微架構設計團隊的核心成員。他們從設計中心趕過來,帶著RTL代碼、仿真腳本和時序報告。調度台旁邊的白板上開始出現各種電路圖和時間波形,討論聲越來越大,偶爾夾雜著爭論。
爭論的焦點不是「修不修」,而是「怎麼修」。
方案A:修改調度器的流水線控制邏輯,增加一組專門處理這些特定參數的旁路路徑。優點是徹底解決問題,副作用小。缺點是RTL改動較大,需要重新驗證的範圍也大,至少需要四周。
方案B:不改硬體,改軟體——在NPU驅動中增加一個「參數重映射表」,當應用提交這些低效率的卷積參數時,驅動自動將其轉換為等效但效率更高的參數組合。優點是無需改硬體,不影響流片時間。缺點是這個「等效轉換」不是對所有模型都成立,某些模型的精度可能會受影響。
方案C:部分修改硬體——只改調度器中與這些特定參數相關的比較器邏輯,不改流水線結構。優點是RTL改動小,驗證範圍可控,大約需要兩周。缺點是不能完全解決所有低效率場景,只解決了最嚴重的那幾個。
章宸聽完三個方案,在白板上寫下了一組判斷標準。
第一,天權4號的生命周期內,這些低效率卷積參數出現的頻率有多高?
NPU架構師調出了過去六個月小芯平台上所有模型的卷積參數統計。3x3 stride 2 出現在超過百分之六十的模型中,5x5 stride 2 出現在百分之三十左右,擴張卷積出現在約百分之十五的模型中。這些不是邊緣場景,而是主流場景。
第二,不改硬體只改軟體,對模型精度的影響有多大?
趙靜讓團隊跑了十組代表性模型的對比測試。方案B的等效轉換在八組模型上精度無損,在一組模型上精度下降百分之零點三,在最後一組模型上精度下降百分之一點一。百分之一點一的下降對於某些應用來說可能不可接受。
第三,部分修改硬體能覆蓋多少場景?
方案C的覆蓋範圍是:3x3 stride 2 和 5x5 stride 2 可以完全解決,擴張卷積只能解決一部分。總體覆蓋率大約百分之八十五。
章宸把三個方案的優缺點在白板上列完後,在方案A上畫了一個圈。
「改完整。不改部分,不workaround。天權4號不能帶著一個『某些模型會慢百分之七』的標籤出廠。用戶不會理解『這是為了趕進度做的妥協』,他們只會覺得天權晶片不行。」
NPU架構師點了點頭,把方案A的任務拆解成具體的RTL修改點,分配給團隊的三個工程師。每個修改點都標註了完成時間和驗證負責人。
章宸補充了一個要求:「RTL修改完成後,不僅要重跑所有已有的驗證用例,還要增加一組專門的壓力測試,把調度器的所有可能狀態都覆蓋到。我不希望流片後發現還有別的參數組合有類似問題。」
調度台上的倒計時被章宸親手改掉了。原來的「19天」變成了「33天」——四周的RTL修改和驗證,加上一周的緩衝。
這個改變意味著天權4號的流片將錯過原定的窗口,下一輪窗口在六周後,實際流片時間比原計劃延遲了五周。五周的延遲會影響天衡5的量產排期、天權5的疊代節奏、以及天權晶片的整體庫存策略。
章宸在改完倒計時後,給陳醒發了一條消息:「天權4號集成驗證發現NPU調度器問題,需要改RTL,流片延遲五周。理由:不改的話,某些AI模型效率會低百分之七,且無法通過軟體完全補償。」
陳醒的回覆在三分鐘後到了,不是文字,是一張截圖。截圖里是一份文檔,標題是《天權晶片設計哲學·第一條》。文檔內容只有一行字:「晶片是承諾,不是妥協。」
章宸看著那行字,把終端收起來,繼續調度驗證工作。
夜裡,驗證大廳的燈還亮著。
NPU設計團隊的三名工程師坐在潔淨室里,面前是RTL代碼的編輯界面。他們要改的調度器邏輯分布在七個模塊里,最核心的那個模塊有超過兩千行代碼。改動雖然不大,但每一行都要小心——在晶片設計里,修改一個比較器的邏輯可能會影響幾百條相關路徑的時序。
章宸沒有走。他搬了一把椅子,坐在調度台旁邊,不是在盯著誰幹活,而是在等——等任何一個團隊需要他做決策的時候,他能第一時間出現。
晚上九點,NPU團隊完成了第一個模塊的修改,開始跑局部仿真。仿真需要大約四十分鐘,這四十分鐘裡,三個工程師靠在椅子上,閉了一會兒眼。他們從上午九點一直干到現在,中間只吃了一頓盒飯。
章宸讓助理從食堂帶了熱湯麵上來,每人一碗。面有些坨了,但湯還是熱的。三個人端著碗,蹲在潔淨室的地上吃,沒有人說話。吃完後,他們把碗放在門口,洗手,戴好靜電手環,回到屏幕前。
仿真結果出來了——第一個模塊的修改通過了局部驗證,時序收斂,功能正確。
章宸在那項任務後面打了一個勾,然後說了一句讓所有人鬆了一口氣的話:「今晚就到這裡。明天上午繼續。回去睡覺,別在代碼里留 bug。」
三個人收拾東西離開潔淨室,走過調度台的時候,都看了那面顯示牆一眼。驗證覆蓋圖上,NPU調度器那一欄還是黃色——代表「修改中,驗證未完成」。但他們知道,明天或者後天,它會變成綠色。
章宸最後一個離開驗證大廳。他關掉調度台上的大部分屏幕,只留下一面顯示實時日誌的終端。大廳暗了下來,只有那面終端的螢光映在減震地板上,像一汪安靜的水。
他站在大廳中央,最後看了一眼那面顯示牆。倒計時顯示「33天」,NPU調度器那欄是黃色的,總線仲裁器那欄已經變成了綠色——修複方案通過了全部驗證。
章宸在心裡過了一遍天權4號集成驗證的所有關鍵節點。CPU複合體已經跑了超過兩萬個測試用例,通過率百分之九十九點九七,剩下的百分之零點零三是邊緣情況,不影響流片。GPU集群的圖形和計算測試全部通過,性能達標。內存控制器通過了全部壓力測試,帶寬和延遲都在設計範圍內。IO子系統的PCIe、USB、顯示接口全部驗證完成。電源管理單元的低功耗模式切換經過了超過一萬次循環測試,沒有發現異常。
唯一卡住的,就是NPU調度器。
而這唯一卡住的地方,也是最不能妥協的地方。
章宸走出驗證大廳,關上門。門上的綠燈亮了,表示裡面的人員已經全部離開,環境參數開始切換到待機模式。
他沿著走廊往電梯走去,經過地下一層的高性能計算集群機房時,透過玻璃窗看見裡面一排排機櫃的指示燈在閃爍。那些機器里正在跑著天權4號成千上萬個仿真任務,有的已經跑完,有的還在繼續。它們不休息,不需要吃飯,不需要睡覺,只需要電和冷卻水。
但設計晶片的人需要休息。
章宸走進電梯,按了一樓。電梯門關上之前,他最後看了一眼地下二層走廊盡頭那扇緊閉的門。門的另一面,是那個倒計時、那面顯示牆、那個黃色的標記,和三個還在等待驗證結果的修改模塊。
電梯門關上了。
芯谷的地面上,夜風比地下涼得多。章宸走出主樓,抬頭看了一眼天空。雲層散了一些,露出幾顆星星。他認不出那些星星的名字,也不在乎。他在乎的是頭頂那顆不存在的「天權星」——中國古代星官里,天權是北斗七星里最暗的一顆,但它是北斗的一部分,缺了它,北斗就不完整。
天權4號也是這樣。它不是未來科技晶片產品線里最亮的那顆星,但沒有它,天權系列就不完整,天衡5的供應鏈就不安全,天樞生態的終端覆蓋就有缺口。
章宸收回目光,往停車場走去。
明天還要繼續改 RTL,繼續跑仿真,繼續盯驗證。
他走了幾步,終端震動了。是NPU團隊的工程師發來的消息,不是文字,是一張截圖。截圖里是某個模塊修改後的時序報告,最差負餘量從原來的負零點零三納秒變成了正零點零二納秒。
時序收斂了。
章宸在那條消息下面回復了一個字:「好。」
然後他繼續往停車場走,腳步比剛才輕了一點。不是因為他放鬆了,而是因為他知道,在那間地下二層的驗證大廳里,即使所有人都走了,那些仿真任務還在跑,那些數據還在積累,那個黃色的標記正在一點一點地變成綠色。
明天早上,當他再次走進那扇門的時候,驗證覆蓋圖上可能會多幾塊綠色。