【新智元導讀】快了31倍——一家公司沒去卷大模型,而是干了件不性感卻繞不過去的事:讓每一種有價值的計算,都高效地跑起來。
海洋科學是建設海洋強國的重要基石。
全球氣候變化的趨勢研判、沿海城市防災減災的決策支撐、藍色經濟可持續發展的科學依據,每一項國家戰略需求的背后,都離不開對海洋的系統認知與精準模擬。
ROMS(區域海洋建模系統),是全球海洋研究領域的標準工具之一,用來模擬洋流、氣候、生態系統,為沿海城市災害預警與長期海洋資源管理提供科學決策依據。
但有一個尷尬的現實——隨著對模擬分辨率和精度的要求的提高,跑一次典型模擬,少則數月,多則一年。
研究人員的大量時間不是花在分析結果,而是盯著進度條。
為此,香港某科研團隊與是石科技合作,ROMS的計算進行利用GPU提速優化。
是石科技干了件聽起來不太時髦的事:把一套大量代碼還保留著上世紀Fortran風格的老程序,搬上了GPU。
結果是:同樣的算例下,16張GPU卡計算耗時518.59毫秒,16顆CPU需要16373.97毫秒——31.57倍。換成40張GPU卡,算力等效1536顆CPU核心,加速38.4倍。
![]()
「跑一天出一天結果」變成了「跑半小時出一天結果」——這不是換個顯卡那么簡單,背后是一整套科學計算異構并行優化的硬功夫。
![]()
Fortran老代碼
怎么登上現代GPU?
理解這件事的難度,要先理解兩件事:ROMS是什么,Fortran又是什么。
ROMS是美國Rutgers大學開發的區域海洋模型。
它不是一兩個文件,而是一個龐大的Fortran代碼庫——而Fortran這門語言,誕生于1957年,世界上第一批科學計算程序就是用Fortran寫的。
直到今天,全球大量氣象、海洋、流體力學領域的核心代碼,仍然是Fortran。幾十年的模型積累和驗證數據,不能輕易推倒重來。
但Fortran有一個尷尬的現實:主流的GPU并行計算平臺對C/C++有原生支持,對Fortran也提供了編譯器和擴展支持,但在工程實踐中,直接通過OpenACC指令注解或專屬擴展語法進行大規模移植,性能和可維護性往往不盡如人意。
你不能簡單地把Fortran程序「扔」到GPU上跑——支持雖有,但科學計算對極致效率的要求,讓這條路遠未到開箱即用的程度。
打個比方:Fortran是一本用文言文寫的物理學巨著,GPU是一臺主要支持白話文的計算機。你大致能看懂內容,但要準確無誤地把整本書搬到新系統上運行,還是需要一個精密的翻譯——而且翻譯過程中不能曲解任何一個公式,因為科學計算里,小數點后十位的精度都有意義。
是石科技的方案是一條三段式移植路徑:Fortran → C → GPU并行計算。
第一步:診斷——找到真正的「時間殺手」。
ROMS代碼有幾萬行,分布在數十個源文件中。
工程師先用性能分析工具和函數調用關系圖梳理整個代碼框架,定位熱點函數的分布、分析函數間的數據依賴——這不僅是為了找到「哪里慢」,更是為了確定整個移植工作的優先級和先后順序,確保后續的每一行GPU化修改都有清晰的路線圖。
第二步:翻譯——跨語言移植,每一步都是坑。
把需要加速的Fortran函數用C語言重寫。這一步有兩個極其脆弱的技術難點:
難點一,內存布局的「水土不服」。
Fortran的數組是列優先存儲——同一列的元素在內存里緊挨著;C語言是行優先——同一行的元素緊挨著。
這就好比一張Excel表格,Fortran按列讀(先從上到下讀完第一列,再讀第二列),C按行讀(先從左到右讀完第一行,再讀第二行)。
如果你把Fortran的數據直接當C的數據用,讀到的就是完全亂序的數值,整個模擬全廢。
難點二,數組下標的「代際差異」。
Fortran的數組下標默認從1開始(數學家的習慣),C從0開始(計算機科學家的習慣)。更麻煩的是,Fortran允許數組下標從任意整數起始,比如可以定義從-5到10。
如果你把Fortran里a(-5)的值,直接映射到C的a[-5],程序當場崩潰。工程師必須給每個數組手動加上下標偏移量,確保物理內存地址一一對應。
打個比方:Fortran用「樓層編號」(地下5層),C用「絕對編號」(從入口算第0間)。翻譯官必須記住,Fortran的「地下5層」在第-5間,不能直接當門牌號用。
第三步:GPU化——讓計算跑在數千個核心上。
對每個熱點函數,工程師將其邏輯從C改寫為CUDA內核(kernel),把原本串行執行的多層循環分配到GPU的數千個流處理器上并行運行。
一個典型的ROMS計算函數包含i、j、k三重嵌套循環——對應海洋網格的東西、南北、垂直三個維度。
在GPU上,這些循環被展開為線程網格:每個線程負責一個或多個網格點的獨立計算,數千個線程同時執行,將原本需要順序跑完的循環壓縮到一次并行調用中。
每個內核的線程塊大小、共享內存分配、寄存器使用量等參數,都需要針對函數特性反復調優,才能達到最優的計算效率。
完成內核開發后,工程師還對分散在多處的數組進行了跨函數合并,將多次小批量數據搬運歸并為一次大批量傳遞,大幅減少了主機內存與GPU顯存之間的數據傳輸開銷,提升了整體效率。
把耗時函數GPU化之后,還需要解決多張GPU之間的數據傳輸效率問題。
原來在CPU集群上,節點之間通過一種叫MPI的協議通信。但GPU之間用MPI效率很低——數據要先從顯存搬回內存,通過MPI發送,再搬回另一張GPU的顯存,繞了一大圈。
是石科技的方案是改用NCCL(GPU直連通信協議),讓數據直接在顯存間傳遞,無需CPU中轉。
此外,還把原本分散的多次小批量數據搬運合并為一次大批量傳遞,大幅減少了「裝車卸車」的開銷。
最終,整個項目的驗收有一個關鍵指標,甚至比速度更重要:GPU版本和CPU版本,計算結果完全一致。三個不同算例各跑2880步,輸出精度全部驗證通過。
在科學計算領域,精度不對等于白算。快但結果錯,等于沒用。
不止海洋模擬:高端制造行業實現數十倍至數百倍提速
ROMS不是孤例。是石科技的并行優化能力覆蓋了多個科學計算和工業仿真場景。
CAE工業仿真軟件。
![]()
仿真散熱圖(圖示)
國內CAE領域領軍企業的通用仿真平臺,經過CPU+GPU聯合深度優化后,CPU側性能提升2.2倍,GPU側提升28倍。
技術手段覆蓋了AVX2向量化加速、統一GPU內存管理、數組索引映射優化等。
這些項目的共同點是:不是重寫代碼,而是在最小改動下釋放最大性能。
科學代碼和工業仿真軟件是數十年學術積累與工程經驗的結晶——你不能為了加速就把它們推倒重來。
總結起來,是石科技的并行優化方法論可概括為四個詞:深度診斷 → 架構定制 → 漸進遷移 → 持續交付。
![]()
被忽視的「工程化通道」
2026年的AI基礎設施敘事幾乎被兩件事壟斷:一是誰做出了更強的大模型,二是誰囤了更多算力。
但一個更基本的問題一直被低估:芯片和應用之間的「工程化通道」。
芯片廠商(華為昇騰、昆侖芯、摩爾線程等)的核心能力在芯片設計;大模型廠商的核心能力在模型訓練和算法。
但把芯片的算力真正轉化為應用可用的生產力——無論是大模型推理的Token,還是科學模擬的計算結果——中間夾著大量系統工程工作:異構算力資源池化、并行算法重構、跨架構代碼移植、大規模集群穩定運維。
這些工作沒有榜單,不夠「性感」,不會出現在融資新聞的標題里。
但它們是AI基礎設施真正落地繞不過去的一層。
是石科技目前服務了200余家客戶。左手是互聯網大廠的大模型推理需求——也就是他們此前提出的「Token工廠」概念;右手是國家氣象局、香港某科研團隊院的科學計算任務。
這家公司的本質,就是在這條「工程化通道」上卡了一個關鍵生態位。
從ROMS的Fortran老代碼在現代GPU上跑出31倍加速,到CAE領域通用仿真GPU側提升28倍,這些案例指向同一個結論:當算力成為基礎設施,真正有價值的不只是誰制造芯片、誰訓練模型——還有誰能讓每一種有價值的計算,都高效地跑起來。
而這件事,路還很長,所幸有人已然先行。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.