\\n
清晨六點多,家裡隻剩一盞檯燈還亮著。
桌上外賣盒堆了三層,紅牛罐子東倒西歪,咖啡杯裡的液體早就涼透了。林辰幾乎趴在螢幕上,眼眶又紅又澀,嘴唇抿成一條白線。
渲染進度條還在慢慢爬:73%,74%,75%……
再過兩個小時,這個影象渲染專案就要交付了。
這是他從二手程式碼論壇接的第三單——AI影象風格遷移的批量處理,用OpenCL做GPU加速。定金八百,尾款兩千二,加起來三千塊。
三千塊。現在對他來說,這就是下個月房貸的救命錢。
“小龍蝦,最後檢查一遍。”林辰揉了揉眼睛,打了個長長的哈欠。
【收到。正在對OpenCL核心程式碼進行最終審查……】
分析報告刷了一屏。林辰掃了兩眼,最後那行綠色的字他看懂了——“邏輯完整度評估:92%,建議進行壓力測試後再提交。”
九十二。夠了。
他手指已經按下了提交鍵。
---
一個多小時後,早上七點出頭。
林辰是被手機震醒的。他趴在鍵盤上睡著了,半邊臉印著鍵盤印子,空格鍵周圍濕了一小片。
手機螢幕亮著,微信訊息一連串。
發件人:老陳(客戶)
“你這什麼技術?我就開了四個併發任務就崩了???我調了八核視訊記憶體全給我吃了??你到底會不會寫OpenCL???”
林辰一個激靈坐起來,手忙腳亂地抓起手機。
“技術不行就彆接單,浪費我時間。八點多會議上要演示的,你現在給我搞成這樣??”
三條訊息,像三鞭子抽在他臉上。
手在抖。指關節發白。
他哆嗦著開啟電腦,調出執行日誌——四個任務並行時,區域性記憶體分配直接溢位了。每個任務分的工作組太小,一多就擠成一團,係統直接罷工。
“小龍蝦!怎麼回事?”林辰聲音發顫。
【區域性工作組大小設定為64x64,四個併發任務同時執行時,每個工作組請求的區域性記憶體總量超出裝置可用上限。】
“彆扯具體了!能修嗎?”
【能啊。】
“最快多久?”
【正在加速分析,你彆急,急也冇用。】
進度條彈出來,飛快地跑。
但林辰等不了。他現在隻剩不到一個小時。
手機又震了。
老陳:“再給你一個小時。搞不定,尾款冇了,定金退給我。”
林辰盯著螢幕,掌心全是黏膩的汗。
“咚咚咚。”
門響了。林辰嚇了一跳。這個時間點,誰來敲門?
他擦了擦眼角,起身去開門——
門外站著夏冉。
小姑娘穿了件米白色的oversize衛衣,衣襬蓋到膝蓋,下麵露出一截白皙的小腿,腳上趿著毛茸茸的兔子拖鞋。手裡拎著個保溫袋,馬尾辮歪歪扭扭。
“林、林辰哥……”夏冉聲音軟軟的,“我是碼市平台的客服夏冉……昨天你首單完成得特彆好,平台讓我跟進一下後續情況。我正好住這附近,就順路給你帶了點早餐……”
林辰愣了:“這麼早?”
夏冉的臉騰地紅了,低頭攥著保溫袋的帶子:“我看你接單記錄裡顯示通宵挺多的,怕你又冇吃飯……”
林辰看她那副緊張的樣子,喉嚨有點發緊。
“進來吧。”
夏冉跟著進屋,一眼看到桌上堆成山的外賣盒和紅牛罐子,小臉立刻皺成一團。
“林辰哥!你又冇好好吃飯!”她把保溫袋往桌上一墩,“皮蛋瘦肉粥,還有兩個茶葉蛋。快趁熱吃!”
林辰冇心思吃飯。他坐回電腦前,盯著小龍蝦的進度條。
百分之三十八。
太慢了。
“林辰哥,怎麼了?”夏冉湊過來,下巴幾乎擱在他肩膀上。
“專案翻車了。”林辰冇瞞她,“客戶八點要演示,我跑了四個併發就崩了。”
“啊?”夏冉眼睛瞪得溜圓,“那怎麼辦啊?”
“不知道。”
手機響了。蘇晴。
林辰猶豫了一秒,接起來。
“喂?”
蘇晴的聲音清冷而直接:“你在論壇發的帖子我看到了。OpenCL區域性工作組分配溢位?”
林辰心一跳。他剛發了個求助帖,根本冇指望有人回。
“你怎麼看到的?”
“正好失眠。”蘇晴語氣很淡,“你把程式碼發我。”
林辰把程式碼片段發過去。電話那頭安靜了半分鐘。
蘇晴再開口時,語速快了一點:“工作組大小64x64,區域性記憶體每個工作組8KB。四個併發,32KB。裝置上限24KB,超了。”
林辰怔住:“你看一眼就知道?”
“OpenCL最基礎的坑。”蘇晴聲音裡難得帶上一絲笑意,“工作組改成32x32,區域性記憶體改成4KB,加個動態工作組數量的邏輯——根據可用記憶體自動調整。不管開多少併發都不會溢位。”
林辰飛快地記,手指在鍵盤上劈裡啪啦。
“還有一個。”蘇晴頓了一下,“你的核心冇做非同步事件等待。四個任務同時提交,前麵冇完成就去搶後麵的資源。加個clWaitForEvents的同步屏障。”
“好。”
電話那頭安靜了幾秒,然後蘇晴輕輕說了一句:“彆慌,這種問題很常見的。”
林辰握著手機的手緊了緊。
“謝謝。”
“不用。改完發我看看,幫你過一遍。”
掛了電話,林辰發現夏冉正鼓著腮幫子看他。
“林辰哥,那個蘇晴姐姐是誰啊?”夏冉聲音悶悶的。
“一個……朋友。”
“哦。”夏冉低頭繼續收拾桌子,但垃圾袋被她摔得劈裡啪啦響。
林辰冇注意。他的注意力全在螢幕上——進度條跳到了百分之七十二。
十分鐘後,小龍蝦的修複方案生成完畢。
林辰照著蘇晴的建議把程式碼改了一遍,深吸一口氣,重新跑四個併發任務。
這一次,四個任務全跑通了。
冇有崩潰。冇有溢位。渲染結果完全正確。
現在是七點二十五。離客戶八點演示,隻剩三十五分鐘。
他立刻給老陳發訊息:“陳哥,問題修好了,渲染結果跑通了,馬上重新上傳。”
發出去後,他死死盯著手機。
三分鐘。五分鐘。十分鐘。
冇有回覆。
心一點一點往下沉。
夏冉站在旁邊,小聲說:“林辰哥,冇事的……你已經很努力了。”
林辰冇說話,隻是盯著螢幕,肩膀微微發緊。
手機終於亮了。
老陳回了。一行字——
“跑通了?行,等我驗證。”
林辰盯著那行字,心跳得厲害。
窗外,太陽剛升起。一束金黃色的光從窗簾縫裡擠進來,落在林辰側臉上。
夏冉站在他身後,看著他的背影,輕輕咬了咬下唇。