第十五章 走出實驗室

投票推薦 加入書籤 小說報錯

  十月下旬,左城第一次踏進了藍灣通信的研發中心。

  地點在華夏市高新區,距離學校四十分鐘地鐵。研發中心占了一棟二十六層的寫字樓,門禁系統刷三道卡才能進核心區域。左城在前台領了臨時工牌,韓哲的助理帶他穿過一條長走廊,兩側是透明玻璃隔開的實驗室,裡面全是他只在教科書上見過的測試設備。

  韓哲在十七樓的會議室等他。

  」坐。」韓哲指了指對面的椅子,面前攤著左城的課題方案,幾個地方用紅筆圈了標註,」環節二的情況我先跟你說清楚。」

  他翻開一張藍灣通信內部的基站網絡拓撲圖,手指點在華夏市南區的一個節點上。

  」這是我們在南區部署的一座5G實驗基站,覆蓋半徑兩公里,日常接入用戶大約三千人。你的算法要在這座基站的信號處理單元上跑起來,實時處理真實的用戶信號,連續運行七十二小時不出故障,各項性能指標達到方案里承諾的水平。」

  左城看著那張拓撲圖,心裡迅速計算著工作量。

  實驗室仿真和真實基站之間隔著一道巨大的鴻溝。仿真環境裡的信號是乾淨的、可控的、可重複的;真實基站面對的是三千個活生生的用戶,每個人的信號特徵都不一樣,移動軌跡不可預測,環境干擾千變萬化。

  更麻煩的是硬體。實驗室里跑算法用的是高性能伺服器,算力基本不設上限。但基站的信號處理單元是定製的嵌入式平台,算力有限、內存有限、功耗有限。算法必須在這些約束下跑出同樣的性能——這就像讓一個在寬敞跑道上跑出好成績的運動員,換到一條滿是障礙的窄巷裡還得保持同樣的速度。

  」硬體平台的技術規格能給我一份嗎?」左城問。

  」已經準備好了。」韓哲把一個U盤推過來,」裡面有基站信號處理單元的完整硬體手冊、接口文檔和開發環境配置指南。另外我給你開了遠程訪問權限,你可以在學校里通過VPN連接到基站的開發測試環境,不用每次都跑過來。」

  」謝謝韓總。」

  」還有一件事。」韓哲靠在椅背上,語氣變得隨意了一些,」周總讓我轉告你,他下周有一天在研發中心,如果你方便的話,他想跟你當面聊聊。」

  周鶴年。藍灣通信CTO。

  」我方便。」左城說。

  從藍灣通信出來之後,左城在地鐵上打開了U盤裡的硬體手冊。

  他越看眉頭皺得越緊。

  基站信號處理單元用的是一款定製的嵌入式處理器,主頻不高,但集成了專用的信號處理加速模塊。問題在於這個加速模塊的指令集和通用處理器完全不同——左城的算法里有大量的矩陣運算,在通用處理器上可以直接調用標準數學庫,但在這個定製晶片上,標準庫跑不了,必須用專用指令集重新實現。

  這就是方澤的戰場了。

  當天晚上,左城把硬體手冊和他的初步分析發給了方澤。

  方澤看了兩個小時,回了一條很長的消息。

  」處理器架構我大致看明白了。好消息:這款晶片的加速模塊對定點數矩陣運算有專門的硬體支持,如果把你的浮點算法改成定點實現,理論上速度能提升三到五倍。壞消息:浮點轉定點會引入量化誤差,你的算法對精度要求高,量化誤差控制不好的話性能會崩。這是一個精度和速度的權衡問題,需要你和我一起啃。」

  左城盯著」一起啃」三個字,嘴角微彎。

  方澤從來不說」我來搞定」,也不說」你來解決」。他說的是」一起啃」。這個人骨子裡是個合作者,不是獨行俠——前提是他認可你的能力。

  接下來三天,左城和方澤每天晚上在實驗室碰頭,專攻浮點轉定點的精度控制問題。

  這是一場硬仗。

  核心難點在於左城的自適應追蹤算法里有一個遞歸更新的步驟——每一次疊代都會在上一次結果的基礎上做微小修正。浮點數的精度足夠高,這種微小修正可以精確執行。但定點數的精度有限,每次疊代都會引入一點量化誤差,幾百次疊代累積下來,誤差可能被放大到不可接受的程度。

  左城試了三種常規的誤差補償方法,全部失敗——誤差要麼沒壓下去,要麼壓下去了但速度也跟著掉下來,得不償失。

  第四天,他坐在實驗室里對著一屏幕的數據發呆。

  方澤從旁邊走過來,把一杯冰美式放在他手邊。這是左城第一次看見方澤給別人買咖啡。


  」換個思路。」方澤說,靠在桌邊,雙手抱胸,」你一直在想怎麼減小量化誤差,但有沒有想過——讓算法本身對量化誤差不敏感?」

  左城抬起頭。

  」你的遞歸更新步驟之所以會放大誤差,是因為更新公式里有一個除法操作——定點除法的精度損失最大。」方澤拿起筆在紙上畫了一個簡圖,」如果把更新公式從乘除形式改成加減形式,用對數域變換把乘除運算轉化成加減運算,定點加減的精度損失比乘除小兩個數量級。」

  左城瞪著紙上那個簡圖,腦子裡像被閃電劈了一下。

  對數域變換。

  把乘除變成加減。

  這個思路他完全沒想到——因為對數域變換在信號處理領域不常用,它是數字通信編碼領域的技巧。左城的知識體系是從信號處理這棵樹上長出來的,天然存在視野盲區。而方澤做嵌入式底層開發,天天跟定點運算打交道,對這類技巧信手拈來。

  這就是團隊的意義——一個人的盲區,恰好是另一個人的強項。

  」方澤,你是天才。」左城說。這不是客套,是由衷的。

  方澤面無表情地喝了一口自己的咖啡:」不是天才,是被定點數折磨過太多次。」

  當天晚上,左城重寫了遞歸更新模塊,用對數域變換替換了所有的乘除操作。方澤同步把新的代碼移植到定製晶片的模擬器上跑測試。

  凌晨兩點,測試結果出來了。

  量化誤差降到了原來的五十分之一。算法在定製晶片上的運行速度比浮點版本快了四倍。性能指標和實驗室仿真的結果幾乎一致。

  方澤看著屏幕上的數據,破天荒地說了句髒話。

  是好的那種。

  左城長長地吐了口氣,靠在椅背上,盯著天花板笑了好一會兒。

  光幕在意識中悄然彈出一行字:

  【檢測到宿主解決關鍵技術瓶頸,主線任務鏈·環節二進度更新:35%】

  才百分之三十五。算法移植只是第一步,後面還有系統集成、聯調測試、七十二小時連續運行驗證。

  但最難的那道坎,已經邁過去了。

  左城關掉面板,看了一眼手機。凌晨兩點十五分,有一條未讀消息。

  韓哲發來的,時間是晚上十一點。

  」周總確認下周三下午三點在研發中心,你到時候直接來十七樓就行。另外他讓我提前跟你說一聲——他想聊的不只是課題的事。」

  不只是課題的事。

  左城把手機放下,目光投向窗外沉寂的校園。

  藍灣通信CTO要聊的」不只是課題的事」,會是什麼?

  他暫時想不出答案,但直覺告訴他,下周三那場談話的分量,可能比拿下整個課題還重。

章節目錄