從年初開始,筆者以在職狀態修電腦科學(Computer Science,CS)碩士學位。這個學期的必修課是「資料結構與演算法」,主要是以Python為載體,因此,學期初就在問有多年經驗的專業人士:學習這東西用Mac好,還是用Windows好。朋友回覆,如果只是Python的話都可以。
似乎在涉及Java和Python的兩門課起初,我都發現環境搭建是完全可以使用macOS。不過隨著課程深入,未來學機器學習相關的內容,對於平台的選擇則會牽扯到兩個問題,一是生態,二是設備性能,這兩個問題有時是相互關聯的。
前不久有個up主(編按:意指在影片網站、資源網站等地上傳影片、音訊或其他資源的人)發了個評測視訊《i5輕薄本夠寫大作業嗎》。他主要測試的是Python——sklearn和Matlab庫,依賴Intel oneAPI和MKL (Math Kernel Library)數學加速庫。跟朋友聊天時,他也提到了Intel的這個MKL庫很優秀,而且去年Intel還為sklearn弄了個擴展外掛程式sklearnex,據說能夠讓sklearn瞬間就加速幾十到幾百倍。
在CS學習上,單就生態來看,PC選擇上投靠x86好像還是更不錯的選擇——而且這還沒談到Nvidia的生態。
而性能方面,這兩年AMD、Intel、蘋果(Apple)在PC處理器上真的內卷得還蠻厲害。第12代Core為CPU加入E-core效率核心以後,消費產品的處理器核心數飆升。記得2017年輕薄筆電都還在用雙核心處理器。眼見5年後的今天,不少筆電的CPU都有14個核心了。其實多核心對某些應用而言沒有太大意義,但對機器學習、資料分析相關的工作和作業,那就很重要了。
最近拿到一台Dell Inspiron (靈越) 7420( Inspiron14 Plus),處理器是Core i7-12700H,顯卡GeForce RTX 3050。用了幾天又讓我開始在想,基於性能考量,未來幾年的學習停靠在哪個平台為好,所以把手上的M1版MacBook Air做個性能方面的比較。
比較的兩造
展開正題之前說3點。第一是用Inspiron 7420和MacBook Air比,就晶片和系統用料來看,其實是不公平的。前者是個標壓14核心處理器,外加光線追蹤獨顯(雖然是最弱的);後者是個低壓處理器(M1峰值功耗25W CPU + 10W GPU)。
Inspiron 7420左右兩邊都有散熱孔和鰭片,不過後方位置看起來像散熱孔的格閘(右下圖),該位置內側並沒有散熱鰭片,也非出風或進風口,似乎是為了與Dell其他型號的設備保持外觀的一致性而存在。
Inspiron 7420在形態上屬於全能型筆電,而非輕薄筆電——從機身左右兩側的散熱鰭片,也能看出它是看重性能釋放——雖然在體態上,這款筆電更靠近輕薄筆電。我感覺要和Inspiron 7420比,相對科學的對比物件是MacBook Pro 14″。兩者都是14吋筆電,後者也應用了M1 Pro/M1 Max這種規模更大的處理器。
但我手上就只有MacBook Air,而且是M1版。另外要考慮到兩者的價格問題,Inspiron 7420 (Core i7-12700H + GeForce RTX 3050)目前的售價是人民幣8,499元;MacBook Air (M1 7核GPU + 16GB RAM)的價格是人民幣9,499元。從成本角度,也得在意一下兩者的不均衡性,畢竟最低配的MacBook Pro 14″價格也要人民幣14,999元。
以下的部分比較中,我也會加入其他媒體和評測機構已公開的M2和M1 Max跑分成績,作為對比。但請注意,我無法確保與其他機構的跑分環境一致,援引的資料僅供參考。而且事實上,Air的跑分仍有對比價值:包括反映macOS/蘋果生態,及其實際性能。
第二,這次的對比還是涵蓋了比較一般的辦公、內容創作和遊戲等應用。其實針對CS,我原本想測AI Benchmark,因為TensorFlow不是都能支援M1 GPU加速了?但研究了一下,發現一套測試跑下來要好久…
內部的散熱用料看起來還是相當充沛。
第三,Inspiron 7420只作為載體呈現兩個陣營的差異。所以我不打算把注意力過多放在Inspiron 7420的整體體驗上。MacBook Air的主要配置就不列了,手邊這台處理器是7核心GPU版的M1,記憶體選配16GB,SSD 256GB,作業系統macOS 12.4。在M2版MacBook Air出來以後,M1版也沒降價。Inspiron 7420 (Inspiron14 Plus)的主要配置如下:
CPU:Intel Corei7-12700H (6 E-core + 8 P-core,14核心20執行緒;P-core 2.3GHz基頻,4.7GHz睿頻;96EU Iris Xe核顯;24MB L3 cache);
GPU:Nvidia GeForce RTX 3050,4GB VRAM;
記憶體:16GB DDR5-4800 (4 Bank Group);
SSD:KGB50ZNS512G NVMe KIOXIA 512GB;
螢幕:2,240 ×1,400 60Hz 14吋(標稱300nit亮度,sRGB色域,來自京東方);
電池容量:64Wh;
BIOS韌體版本:1.2.0;
作業系統:Windows 11 Pro 21H2 22000.795。
以下所有測試基於Windows系統設置的「最高性能」,以及My Dell應用「Power」選項選擇「Ultra Performance」。
記憶體、無線網卡與快閃記憶體;記憶體為板載8GB DDR5-4800,外加一個可擴展的記憶體插槽,最高支援到40GB。
一段Python程式碼測試
既然是CS學生的選擇,還是得做個測試。測試案例來自一家名叫Benchmarks Game的個人blog,上面有一大堆各種各樣的演算法。這裡選擇一段Python程式碼——這是一段單純針對CPU的壓力測試。
有興趣的讀者可以點選連結自己測試,測試過程也比較簡單,有Python3環境就可以。我的測試方法是在Windows 11以及macOS 的命令列終端裡面敲指令來給這段程式碼的執行過程計時(跑20,000次)。雖然要讓這類測試真正有意義,恐怕還需要更多樣本,但作為未來性能測試的示例——也算是個不錯的開端吧。
這是個過程比較短的測試,所以理論上MacBook Air受被動散熱(即不帶風扇)的影響應該會更小。不過在程式碼跑起來伊始,MacBook Air的CPU封裝溫度就很快達到了100℃,Inspiron 7420的風扇葉也猛吹起來。
值得一提的是,鑒於Linux作業系統(如Ubuntu)通常在這類負載中存在效率優勢。所以在Windows 11作業系統裡,除了直接用Powershell來跑,另外也特別借助Windows Subsystem for Linux (WSL)的Ubuntu來執行該測試,得到以下結果:
這應該是個完全意料之中的結果吧,畢竟M1的CPU架構(Avalanche大核心+ Blizzard小核心)也有2年歷史了;且基於其核心數量和規模(4大核心+4小核心),無論單執行緒還是多執行緒性能,放在今年都已經不太夠。
不過WSL展現出來的效率優勢,還是讓人慨歎:大概用Linux來學CS會比較好。理論上,用原生Ubuntu作業系統來執行這段程式碼,還能獲得更高的效率。這個結果實際上也顯示,「系統測試」真的並不單純看底層硬體運算力,而和平台及中間層的效率和策略也有極大的關係。
但值得一提的是,Inspiron 7420在不插電的時候,電源策略似乎令其產生了較大程度的性能顛簸。不外接電源,在WSL子系統中跑相同的程式碼,耗時1分32秒,雖說還是比MacBook Air要好,但遠慢於插電場景的性能。
單純從CPU-intensive的任務負載來看,有CPU性能需求的CS學生,其實的確不應該考慮MacBook Air這類型的低壓筆電(13吋MacBook Pro同理)。往高年級去,資料分析和機器學習愈發著重多執行緒性能和硬體加速,則更是如此。
今年全能型筆電性能發揮就醬
前菜過後,還是先來看看Inspiron 7420這台筆電的性能釋放水準,以對其整個系統的性能發揮有一個基本的認知。畢竟當大家都用Core i7或i9處理器,還是會因為尺寸、散熱與系統設計、調度策略等的不同,而存在性能發揮方面的巨大差異。比如遊戲筆電的Core i7-12700H,和Inspiron 7420這種偏輕薄向的全能型筆電應用i7-12700H就大不相同。
這台筆電標配了一個130W的電源適配器,至少說明在性能方面是有追求的。從HWiNFO提供的資訊來看,Dell為這台筆電CPU設定的PL1功耗45W,PL2 80W。為瞭解CPU性能釋放水準,我嘗試在這台電腦上跑4輪Cinebench R23 (每兩輪之間間隔3秒左右),並用XTU記錄CPU的封裝功耗與溫度,得到下圖:
從功耗曲線來看,第一輪測試,Inspiron 7420的Core i7-12700H是可以在不到2秒的時間裡觸碰到80W這個功率上限的;隨後會有10幾秒在72W附近震盪;在67W附近又搖擺了6秒左右,一路跌到55W直至這輪測試結束。
第二輪測試能摸到75W,後續在53W附近起伏;第三輪的持續穩定狀態在50W左右;第四輪的穩定狀態就跌到了45W。從單烤測試(AIDA64 FPU壓力測試)來看,這台筆電的CPU穩定狀態就在45W功率水準上。
這種程度的性能釋放在14吋輕薄取向的全能型筆電裡算還不錯了。只不過從溫度曲線來看,Inspiron 7420似乎一直試圖將CPU的封裝溫度控制在80℃附近(測試環境溫度:22℃),所以CPU每次剛碰到100℃溫度牆,就會立刻降到80℃——第四輪測試的穩定態乾脆就是在80℃水平線上,也不去碰100℃了。
這就屬於性能釋放比較保守的策略了,因為無論溫度還是功耗都仍有餘量。而且就使用體驗的角度來說,鍵盤和掌托區域都不會有溫度感知方面的壓力。不過從後面的系統測試來看,性能發揮並不成為Inspiron 7420的問題,所以這種程度的控制也沒什麼問題就是。
除了CPU之外,Inspiron 7420還有個耗電大戶:GeForce RTX 3050 GPU。從單烤GPU測試(FuMark壓力測試)來看,這顆GPU的功耗穩定狀態就在50W左右——全能型筆電中,這種50W的RTX 3050很常見。對CS學生而言,能配個入門光線追蹤顯卡,在通用運算加速和日常遊戲上,都還是相當有價值。
雙烤測試(AIDA64 FPU + FuMark壓力測試),穩定狀態下CPU和GPU的功耗分別為20W和50W,兩者總功耗始終維持在70W的水平線上。雜訊控制也還不錯,雙烤時筆電內的兩個風扇一起高速運轉,在常規坐姿位置,人耳聽到的雜訊大約是46dBA。
不過在測試中也遇到了一個小問題:單烤測試時,CPU的功耗會突然掉到了25W,此時封裝溫度不過65℃,風扇轉速明顯放緩;在1~2秒後又回到45W。這件事也出現在玩《原神》遊戲的過程裡:
以Inspiron 7420的配置,要以高畫質跑《原神》,問題還是不大。但在某些時間點,影格率會驟降到十幾影格。此時觀察CPU和GPU功耗和溫度,雙方都在偷懶:GPU和CPU的功耗都降到了10W附近,兩者封裝功耗都不到60℃。
筆者猜測這是Dell的電源策略問題:似乎在My Dell應用中把電源選項設置為「Optimized」會大幅減少這一情況的發生。因為我始終把電源設定在「Ultra Performance」,所有的測試結果可能都會受到這一問題的不良影響,期望後續BIOS韌體更新能解決這一問題。
生態仍然是蘋果的痛
瞭解完Inspiron 7420的性能發揮水準,對跑分成績其實也就大致有了基本預期。先來談談GPU,GeForce RTX 3050 Laptop是Nvidia Ampere架構光線追蹤卡裡最入門的一款——雖然在數字上只跟3060差了10,但性能水準就差得遠了,而且要注意這是個功耗限定在50W的3050。
之前蘋果一直在說M1 Max的GPU堪比RTX 3080 Laptop,M1 Ultra GPU則媲美RTX 3090。我也一直很想知道,蘋果M1 GPU和最入門的光線追蹤顯卡比起來性能怎麼樣。如果只看圖形理論性能的話,大致是這樣的:
備註:M1 Pro與M1 Max的跑分來自PCMag。
M1 GPU達到這樣的3DMark跑分已經算是很優秀了,畢竟其GPU全力輸出功耗也才10W。基於RTX 3050和M1的圖形理論測試分,後續所有包含GPU加速的測試,都似乎可以預知結果,何況Nvidia還有CUDA生態這種怪物等級的優勢。
如果加入生態差距,則碾壓幅度能夠在Geekbench 5 Compute渲染與Blender渲染測試裡表現得淋漓盡致。而且CS專業的學生,應該也更關注GPU的通用加速性能,而非單純的繪圖運算性能:
備註:M1 Max測試結果來自Linus Tech Tips。
實際上M1 GPU在規模上比Intel Core處理器Iris Xe核顯更大,所以前面的3DMark WildLife Extreme測試,殘血的M1 GPU超過Iris Xe並不奇怪。但一旦考驗生態,蘋果GPU就會被打趴。
不僅是M1 GPU在Geekbench 5的通用運算加速測試裡被Intel核顯趕超(請注意,這是7核心GPU版M1),而且RTX 3050這種入門獨顯在這項測試中的成績都和滿血版M1 Max差距不大——要知道Inspiron 7420和MacBook Pro 16”這兩者在產品定位、價格、GPU晶片面積方面有巨大不同。
與此相關的另一個測試是Blender渲染測試。此前蘋果在建構其Metal生態的過程裡,已經加入了Blender基金會。之前看到報導說Blender 3.1完全適配了Apple Silicon——雖然當時針對M1的Blender 3.1測試,得到的渲染成績仍然慘不忍睹,但據說後續的補丁讓M1跑Blender的效率大幅提升。
於是我下載了最新的Blender Benchmark Launcher,跑了最新的3.2.1版本,得到以下結果:
新版Blender的benchmark和此前2.x版本的差別頗大,測試流程也短了很多。這個結果相當出人意料。不知是否Blender的支援問題,或我的理解有問題。即便Blender如今的benchmark程式已經支援M1 GPU跑測試,最終其得分和用CPU跑並沒有太大差別;而且連Core i7-12700H的CPU都不及。
去Blender官網看了一眼,他們做了個跑分天梯曲線,M1 Max/Ultra的位置都相當匪夷所思。看樣子最佳化還沒跟上?當然了,每次都追著Geekbench和Blender這倆渲染加速測試去做,似乎是有失偏頗。既然蘋果GPU已經在AI生態上有所進展,以後我們的測試也將會把AI Benchmark加進來。
但至少就目前來看,除了視訊短片之類的多媒體創作以外,x86 PC周邊生態在GPU上的顯著優勢仍將長期存在。這應該是在深入CS,乃至更多分支領域學習時需要考慮的問題。
GPU繪圖運算相關的遊戲測試,也做了不少,看圖即可,基本都在預期中。其中部分對比可能有變數控制不佳的問題,比如macOS版的《CS:GO》畫質選擇,以及不同遊戲的解析度選擇在兩個平台下存在少許差異——只能確保是接近1,080p。Inspiron 7420其實也不是遊戲定位的筆電,自然沒有獨顯直連支持。
這其中的《全面戰爭:戰錘3》是前一陣發佈、專為Apple Silicon優化的——在推薦畫質(應該是介於低和中畫質的一種選擇) 1,080p解析度下,能以鎖30fps的影格率來玩,體驗上的確還可以。只不過此處為了比較,都選了較高的畫質和解析度來跑遊戲中的benchmark。前不久的M2版MacBook發佈會上,Capcom也為蘋果站台,蘋果的GPU遊戲生態或許還有可期的餘地。
GeForce RTX 3050雖說被不少數位愛好者罵得很慘,但有tensor core (DLSS)加持,大部分3A遊戲降一降畫質也是可玩。像DLSS這樣的超分技術,對於像RTX 3050這樣定位的顯卡而言的確很不錯。
圖形性能測試還有SPECviewperf 2020,都是一些工業專業應用,基於OpenGL和DirectX去跑的。測試結果呈現,主要期望提供RTX 3050 (50W)在這些應用中的具體性能表現,跟CS關係沒那麼大,不過相關專業的同學可以拿這些分數,去和其他公開的成績對照:
CPU性能與綜合系統性能測試
其餘測試項比較常規,主要包括CPU理論性能測試,和辦公、多媒體創作的系統性能測試。主要讓各位讀者感知下當前兩個陣營的筆電處理器性能發揮情況:
備註:M2與M1 Max測試成績來自CPU-Monkey。
Cinbench與Geekbench的測試結果有差異,畢竟這兩者的測試內容區別還是比較大。不過基於結果來看,Windows筆電的性價比優勢真是相當大啊。仍需強調,蘋果M系列晶片在能效方面仍有優勢,主要是整個系統處於低負載下的功耗可以很低;Intel的這代晶片雖然高負載的效率不錯,但低負載區間的效率表現一般,而且System Agent功耗控制並不好,導致標壓筆電的續航似乎普遍不夠出色。
反映多媒體創作的PugetBench測試對比結果還蠻讓我意外。因為此前看到不少蘋果用戶都在說M1在多媒體創作過程裡的彪悍性能,是足以比肩30系光線追蹤GPU,但從我的測試來看M系列晶片在多媒體創作上也沒有那麼神。
雖說Adobe全家桶對蘋果生態算不上友好,但macOS平台的Adobe用戶應當也不少。而且Premiere Pro的測試結果總讓我感覺PugetBench的測試項是否沒有那麼合理:因為蘋果在視訊短片與後期方面的優勢似乎已經被很多人證實。我還特意拆開看了看PugetBench Premiere Pro測試的幾個分項:
備註:MacBook Pro 16”的測試成績來自PugetBench官網。
從視訊重播、後期特效等多個角度來看,M1這種小塊頭似乎都無法和有光線追蹤獨顯加速的系統相比。不知道蘋果生態內的Final Cut Pro是否能夠顛覆這一結果,畢竟我也不怎麼做視訊。但還要多說一句,Pugetbench當前應該是不支持Apple Silicon原生版本的Adobe全家桶,所以這個測試都經過了Rosetta轉譯——基於前輩們的測試,經過Rosetta轉譯的PS、PR等應用性能也都還行。不過也聽說原生M1支援的Adobe套裝在性能上有較大程度的提升,這一點還是需要注意。
除PugetBench測試以外,本文出現的所有涉及到MacBook Air的測試均為Apple Silicon原生支援。最後提供辦公與綜合系統性能測試,包括PCMark 10現代辦公和CrossMark測試(現在難得有跨平台的反映日常使用的真實場景測試):
其實就CPU與GPU性能、生態角度來看,Mac設備對我們這類人的性價比還是太差了,即便它在續航、發熱,以及設備外觀方面還是有不小的優勢。當然或許我的比較還是太過一般,因為蘋果一直以來似乎都信奉「服務好那10%的人就好」,比如M1 Max/Pro在媒體引擎上的硬體堆料,就是要吸引媒體創作者。
其實在那10%以外,蘋果晶片的性能和效率真的沒有傳說中那麼神。有時候性能也還是其次,比如M1 Max/Ultra上為GPU堆了那麼大的die size,用武之地仍然不大,也表明很多問題遠不只是晶片的問題。
開題說「學CS專業」,未來的關鍵都在生態支援上。可能CS、軟體工程什麼的還是太廣泛,在某些電腦相關的細分領域,生態依賴問題更大,Fortran和CUDA都是其中的例子。不過我們這部分人,大概也不是蘋果預期覆蓋的目標群體。
本文原刊登於EE Times China網站
The post 學CS專業選哪個系統的筆電好? appeared first on 電子工程專輯.