第37章 里程碑
五月二十號,距離第一個里程碑驗收還有五天。
陳浩的信號接收與解調模塊已經在嵌入式平台上跑通了,但方澤在做系統級聯調的時候發現了一個問題——解調模塊和左城的信道估計模塊同時運行時,CPU占用率會飆到百分之九十二,留給波束管理接口和系統進程的算力幾乎為零。
」不是代碼寫得不好,是兩個模塊搶資源。」方澤凌晨兩點在工作群里發了一條長消息,附了一張CPU占用率的實時曲線圖,」解調模塊的FFT運算和信道估計模塊的矩陣運算都是計算密集型任務,它們的峰值負載恰好在同一個時間窗口內疊加。單獨跑都沒問題,一聯調就炸。」
左城看到消息的時候是凌晨兩點十分。他剛從辦公室回到宿舍,準備洗漱睡覺。
看完方澤的分析,他的困意瞬間消失了。
這個問題在PC端不存在——PC端的CPU性能有足夠的餘量同時承載兩個模塊的峰值。但嵌入式平台的ARM處理器性能有限,算力是硬約束,不可能靠升級硬體解決。
」明天早上八點碰頭。」左城在群里回了一句,」陳浩、方澤,你們倆今晚先各自想想方案,明天一起討論。」
陳浩秒回了一個」好」。方澤回了句」我已經在想了」。
第二天早上,三個人在辦公室白板前站了兩個小時。
陳浩的方案是降低解調模塊的FFT精度——用更短的FFT長度來減少計算量。但這樣做會犧牲解調性能,藍灣通信的驗收指標里對誤碼率有明確要求,降精度可能過不了。
方澤的方案是做任務調度——讓兩個模塊的峰值負載錯開,用一個時分復用的調度器交替分配CPU資源。思路可行,但調度器本身的開銷和時延引入需要精確控制,實現難度不小。
左城站在白板前,盯著方澤畫的調度示意圖,腦子裡那枚融合葉片的」手感」又開始發熱了。
」方澤的思路對,但不需要通用調度器。」他拿起筆,在白板上畫了一條時間軸,」解調模塊的FFT運算有固定的周期性——每個符號周期執行一次,執行時間可預測。信道估計模塊的矩陣運算也是周期性的,但周期更長。兩個周期之間存在一個天然的'空隙'——FFT結束之後、下一個符號周期開始之前,有大約零點三毫秒的空閒窗口。」
他在時間軸上標出了那個空隙。
」把信道估計的矩陣運算拆成小塊,每塊的計算量控制在零點三毫秒以內,塞進FFT的間隙里執行。不需要調度器,靠的是兩個模塊自身的時序配合——解調模塊執行完一個FFT就發一個信號量,信道估計模塊收到信號量就開始執行一個小塊,執行完就釋放CPU。」
方澤盯著白板看了十秒鐘。
」流水線插空。」他說出了這個設計的本質,」把兩個模塊的計算流水線咬合在一起,像齒輪一樣交替轉動。」
」對。」左城點頭,」這樣做CPU的峰值占用率不會超過百分之七十五,而且不需要額外引入調度器的開銷和時延。」
」但矩陣運算拆塊有講究。」陳浩皺著眉想了想,」拆得太細會增加上下文切換的次數,拆得太粗會超出零點三毫秒的窗口。你怎麼確定最優的塊大小?」
」不需要手動確定。」左城寫下一個公式,」信道估計矩陣的維度是已知的,FFT的符號周期也是已知的,最優塊大小可以直接算出來——是矩陣維度和符號周期的函數。我昨晚推過了,公式在這。」
他把公式寫完,退後一步。
陳浩和方澤對視了一眼。
」城哥,你昨晚幾點睡的?」陳浩問。
」三點半。」
」難怪。」方澤推了推眼鏡,」行,這個方案我來實現。給我兩天。」
方澤用了一天半。
五月二十二號下午,聯調測試重新跑了一遍。CPU峰值占用率:百分之七十一。解調性能和信道估計精度都沒有損失。兩個模塊的計算流水線像兩組咬合的齒輪,精確地交替轉動,沒有任何衝突。
方澤看著監控屏幕上平穩的CPU曲線,難得地笑了一下。
」漂亮。」
五月二十四號,第一個里程碑的全部交付物準備完畢——可運行的軟體版本、測試報告、技術文檔,打包成一個加密壓縮包,上傳到藍灣通信的項目管理平台。
韓露同步提交了里程碑驗收申請和對應的商務文檔。
」驗收流程一般需要三到五個工作日。」她在群里說,」預計五月底之前會有結果。」
左城回了一個」收到」,然後關掉了工作群。
手機震了一下。張磊發來的消息,不是工作群,是402四個室友的私人群。
」你們聽說了嗎?馬昊走了。」
左城點開消息。
」什麼意思?」陳浩問。
」今天去實驗室碰到林老師的另一個研究生,他說馬昊上個月就辦了離校手續,提前畢業了。」
」去哪了?」
」不知道。但我聽說他拿了一個深城那邊的offer,好像是做晶片相關的。具體哪家公司沒打聽到。」
左城看著這條消息,沒有說話。
馬昊走了。提前畢業,離開了華夏市。
上一世的馬昊留在了學術圈,後來去了一家二線高校當講師,不上不下地混了十幾年。這一世被左城當面揭穿之後,他的學術路基本堵死了——林志遠不可能再給他好的推薦信,學院裡知道這件事的人也不少。選擇去企業,是他能走的最好的路。
深城做晶片。左城在腦子裡過了一遍深城的晶片公司名單,沒有想到特別相關的。
算了,不重要。馬昊的路是馬昊自己的事。
他關掉私人群,重新打開了信道估計模塊的代碼編輯器。
第一個里程碑交了,但第二個里程碑更重的活還在後面——信道估計與波束管理模塊的完整版本,需要在第七十五天之前交付。算起來還有四十天,但左城清楚,真正的難點不是寫代碼,而是在嵌入式平台上實現毫秒級響應的同時保證預測精度不打折。
這正是融合葉片給他帶來的」手感」最能發揮作用的地方。
晚上九點,他從辦公室出來,在校園裡走了一段。
五月底的華夏市已經有了夏天的味道,晚風溫熱,路燈下飛著細小的蟲子。梧桐道上行人稀疏,偶爾有一兩對情侶手牽手走過。
左城的手機響了。
藍灣通信項目管理平台的自動通知郵件。
他點開一看——
」天穹項目第二階段·里程碑一·驗收結果:通過。驗收評分:93/100。驗收意見:信號接收與解調模塊功能完整,性能指標滿足合同要求,代碼質量優良,文檔規範。建議在後續開發中關注多模式切換場景下的魯棒性。」
通過了。
比預計的快——韓露說三到五個工作日,實際只用了兩天。九十三分,不算驚艷但很紮實。驗收意見里提到的」多模式切換魯棒性」確實是他們下一步要重點關注的方向。
左城把郵件截圖發到402工作群。
」第一個里程碑,過了。」
群里又炸了一輪。
張磊的第一條消息是:」城哥說過里程碑過了請吃飯!」
劉偉跟了一句:」我要吃烤全羊。」
方澤發了句:」先把第二個里程碑的計劃排了吧,吃飯的事不急。」
陳浩:」同意方澤。但也同意吃飯。」
左城笑著搖了搖頭,在群里打了一句:」周六晚上,我請。吃什麼你們定。」
然後他關閉工作群,站在梧桐道上,仰頭看了看天。
五月的夜空不夠清澈,星星被城市的燈光沖淡了,只看得見幾顆最亮的。
但他知道,在那些看不見的高度上,天穹星座的第一顆試驗衛星正在沿著軌道無聲地飛行。
他正在為那顆衛星寫代碼。
這個念頭讓他的胸口湧起一股熱流。
左城收回目光,拿出手機,給於穎發了一條消息。
」里程碑過了。」
於穎的回覆來得很快。
」恭喜。那你欠我的那件事,是不是快了?」
左城看著這行字,嘴角的弧度壓都壓不住。
」快了。六月四號。」
」好。」
就一個字。
但左城覺得,這是他今天收到的所有消息里,分量最重的一個。
陳浩的信號接收與解調模塊已經在嵌入式平台上跑通了,但方澤在做系統級聯調的時候發現了一個問題——解調模塊和左城的信道估計模塊同時運行時,CPU占用率會飆到百分之九十二,留給波束管理接口和系統進程的算力幾乎為零。
」不是代碼寫得不好,是兩個模塊搶資源。」方澤凌晨兩點在工作群里發了一條長消息,附了一張CPU占用率的實時曲線圖,」解調模塊的FFT運算和信道估計模塊的矩陣運算都是計算密集型任務,它們的峰值負載恰好在同一個時間窗口內疊加。單獨跑都沒問題,一聯調就炸。」
左城看到消息的時候是凌晨兩點十分。他剛從辦公室回到宿舍,準備洗漱睡覺。
看完方澤的分析,他的困意瞬間消失了。
這個問題在PC端不存在——PC端的CPU性能有足夠的餘量同時承載兩個模塊的峰值。但嵌入式平台的ARM處理器性能有限,算力是硬約束,不可能靠升級硬體解決。
」明天早上八點碰頭。」左城在群里回了一句,」陳浩、方澤,你們倆今晚先各自想想方案,明天一起討論。」
陳浩秒回了一個」好」。方澤回了句」我已經在想了」。
第二天早上,三個人在辦公室白板前站了兩個小時。
陳浩的方案是降低解調模塊的FFT精度——用更短的FFT長度來減少計算量。但這樣做會犧牲解調性能,藍灣通信的驗收指標里對誤碼率有明確要求,降精度可能過不了。
方澤的方案是做任務調度——讓兩個模塊的峰值負載錯開,用一個時分復用的調度器交替分配CPU資源。思路可行,但調度器本身的開銷和時延引入需要精確控制,實現難度不小。
左城站在白板前,盯著方澤畫的調度示意圖,腦子裡那枚融合葉片的」手感」又開始發熱了。
」方澤的思路對,但不需要通用調度器。」他拿起筆,在白板上畫了一條時間軸,」解調模塊的FFT運算有固定的周期性——每個符號周期執行一次,執行時間可預測。信道估計模塊的矩陣運算也是周期性的,但周期更長。兩個周期之間存在一個天然的'空隙'——FFT結束之後、下一個符號周期開始之前,有大約零點三毫秒的空閒窗口。」
他在時間軸上標出了那個空隙。
」把信道估計的矩陣運算拆成小塊,每塊的計算量控制在零點三毫秒以內,塞進FFT的間隙里執行。不需要調度器,靠的是兩個模塊自身的時序配合——解調模塊執行完一個FFT就發一個信號量,信道估計模塊收到信號量就開始執行一個小塊,執行完就釋放CPU。」
方澤盯著白板看了十秒鐘。
」流水線插空。」他說出了這個設計的本質,」把兩個模塊的計算流水線咬合在一起,像齒輪一樣交替轉動。」
」對。」左城點頭,」這樣做CPU的峰值占用率不會超過百分之七十五,而且不需要額外引入調度器的開銷和時延。」
」但矩陣運算拆塊有講究。」陳浩皺著眉想了想,」拆得太細會增加上下文切換的次數,拆得太粗會超出零點三毫秒的窗口。你怎麼確定最優的塊大小?」
」不需要手動確定。」左城寫下一個公式,」信道估計矩陣的維度是已知的,FFT的符號周期也是已知的,最優塊大小可以直接算出來——是矩陣維度和符號周期的函數。我昨晚推過了,公式在這。」
他把公式寫完,退後一步。
陳浩和方澤對視了一眼。
」城哥,你昨晚幾點睡的?」陳浩問。
」三點半。」
」難怪。」方澤推了推眼鏡,」行,這個方案我來實現。給我兩天。」
方澤用了一天半。
五月二十二號下午,聯調測試重新跑了一遍。CPU峰值占用率:百分之七十一。解調性能和信道估計精度都沒有損失。兩個模塊的計算流水線像兩組咬合的齒輪,精確地交替轉動,沒有任何衝突。
方澤看著監控屏幕上平穩的CPU曲線,難得地笑了一下。
」漂亮。」
五月二十四號,第一個里程碑的全部交付物準備完畢——可運行的軟體版本、測試報告、技術文檔,打包成一個加密壓縮包,上傳到藍灣通信的項目管理平台。
韓露同步提交了里程碑驗收申請和對應的商務文檔。
」驗收流程一般需要三到五個工作日。」她在群里說,」預計五月底之前會有結果。」
左城回了一個」收到」,然後關掉了工作群。
手機震了一下。張磊發來的消息,不是工作群,是402四個室友的私人群。
」你們聽說了嗎?馬昊走了。」
左城點開消息。
」什麼意思?」陳浩問。
」今天去實驗室碰到林老師的另一個研究生,他說馬昊上個月就辦了離校手續,提前畢業了。」
」去哪了?」
」不知道。但我聽說他拿了一個深城那邊的offer,好像是做晶片相關的。具體哪家公司沒打聽到。」
左城看著這條消息,沒有說話。
馬昊走了。提前畢業,離開了華夏市。
上一世的馬昊留在了學術圈,後來去了一家二線高校當講師,不上不下地混了十幾年。這一世被左城當面揭穿之後,他的學術路基本堵死了——林志遠不可能再給他好的推薦信,學院裡知道這件事的人也不少。選擇去企業,是他能走的最好的路。
深城做晶片。左城在腦子裡過了一遍深城的晶片公司名單,沒有想到特別相關的。
算了,不重要。馬昊的路是馬昊自己的事。
他關掉私人群,重新打開了信道估計模塊的代碼編輯器。
第一個里程碑交了,但第二個里程碑更重的活還在後面——信道估計與波束管理模塊的完整版本,需要在第七十五天之前交付。算起來還有四十天,但左城清楚,真正的難點不是寫代碼,而是在嵌入式平台上實現毫秒級響應的同時保證預測精度不打折。
這正是融合葉片給他帶來的」手感」最能發揮作用的地方。
晚上九點,他從辦公室出來,在校園裡走了一段。
五月底的華夏市已經有了夏天的味道,晚風溫熱,路燈下飛著細小的蟲子。梧桐道上行人稀疏,偶爾有一兩對情侶手牽手走過。
左城的手機響了。
藍灣通信項目管理平台的自動通知郵件。
他點開一看——
」天穹項目第二階段·里程碑一·驗收結果:通過。驗收評分:93/100。驗收意見:信號接收與解調模塊功能完整,性能指標滿足合同要求,代碼質量優良,文檔規範。建議在後續開發中關注多模式切換場景下的魯棒性。」
通過了。
比預計的快——韓露說三到五個工作日,實際只用了兩天。九十三分,不算驚艷但很紮實。驗收意見里提到的」多模式切換魯棒性」確實是他們下一步要重點關注的方向。
左城把郵件截圖發到402工作群。
」第一個里程碑,過了。」
群里又炸了一輪。
張磊的第一條消息是:」城哥說過里程碑過了請吃飯!」
劉偉跟了一句:」我要吃烤全羊。」
方澤發了句:」先把第二個里程碑的計劃排了吧,吃飯的事不急。」
陳浩:」同意方澤。但也同意吃飯。」
左城笑著搖了搖頭,在群里打了一句:」周六晚上,我請。吃什麼你們定。」
然後他關閉工作群,站在梧桐道上,仰頭看了看天。
五月的夜空不夠清澈,星星被城市的燈光沖淡了,只看得見幾顆最亮的。
但他知道,在那些看不見的高度上,天穹星座的第一顆試驗衛星正在沿著軌道無聲地飛行。
他正在為那顆衛星寫代碼。
這個念頭讓他的胸口湧起一股熱流。
左城收回目光,拿出手機,給於穎發了一條消息。
」里程碑過了。」
於穎的回覆來得很快。
」恭喜。那你欠我的那件事,是不是快了?」
左城看著這行字,嘴角的弧度壓都壓不住。
」快了。六月四號。」
」好。」
就一個字。
但左城覺得,這是他今天收到的所有消息里,分量最重的一個。