2008年2月12日 星期二

多核心的體驗(Experience of Multicore)

現在的CPU主流應該是雙核心起跳,有錢一點的人也可以去敗個四核心來用(如果你的軟體有支援四核心),現階段去添購新PC或是NB的人,雙核心已經屬於基本配備之一。

對市井小民來說,雙核心用得上嗎?(有需要?軟體有支援?)

這問題我也經常在問我自己,我先前也寫過《多核心CPU的應用》,還有在TOM'S HARDWARE看過的一篇文章《平行處理,第一部:CPU 核心》都有關於多核心的應用與討論。

我在過年前,想要利用電腦把一些影片轉檔成DVD PLAYER能播放的格式,帶回家度過這個有點長又不算太長的年假,尤其是在沒有網路的家,在進行轉檔的過程中,就深刻地感受到多核心的威力,也就是這篇文章的靈感來源。

筆者手中有三台能夠動用的電腦(兩台PC+一台NB),其中包括了一台P4(單核3.0+1GB RAM)、一台Athlon 64 X2(雙核3800+1GB RAM)、一台NB(雙核T5600+2GB RAM),為了要盡快把想看的影片轉完,我就同時開了這三台主機來進行轉檔的工作。

一比之下,就能感受到雙核心的威力,因為用P4主機轉影片格式,大約是1:1的時間(雖然有超執行緒的技術支援,但是P4時代的HT應該算是偽雙核),用雙核心的Athlon 64 X2或T5600來進行轉檔,大約可以達到2:1的速度(原本1分鐘的影片只需30秒即可完成轉檔)。

為了要實際測試一下這部份的差距,我就拿NB來做個小實驗,在相同的環境之下,比較單核心跟雙核心在轉檔這部份的差別。

測試硬體:CPU:T5600(約1.83GHz)、2GB RAM
測試軟體:TMPGEnc PLUS 2.5
影片格式:原檔的時間長度:1:29=89s
   INPUT:RMVB格式
      Audio: AAC 32000Hz stereo
      Video: RealVideo 4 512x384 25.00fps 479Kbps
   OUTPUT:MPG格式
      Video: MPEG1 Video 352x240 29.97fps 1150Kbps
      Audio: MPEG Audio 44100Hz stereo 224Kbps

在單、雙核心的測試,我是直接透過工作管理員來做到單核或雙核的切換,如下圖:



雙核心轉檔:使用43s完成轉檔。(CPU使用率約為75%



單核心轉檔:使用60s完成轉檔。(CPU使用率約為50%



經過了這樣子的測試之後,為什麼沒有得到2:1的時間差距呢?我自己想了一下,最有可能的因素就是影片長度CPU使用率這兩點。

影片長度:
為了測試的便利性,我沒有採用較長時間的影片檔,只用了89秒的影片,無法跟當初我轉影片檔時,動輒一小時長度的影片來比較。(誤差的部份被放大許多)

CPU使用率:
使用雙核心轉檔時,CPU的使用率僅為75%,並沒有達到100%,如果是直接透過數據來換算效能,多25%的CPU使用率可以減少約17s的轉檔時間,換句話說,如果CPU使用率達到100%時,就能夠逼近2:1的效能差距。

除了上述的因素之外,NB的架構與PC也有所不同,要考慮的因素還有很多,我這篇文章的重點是多核心在影像轉檔上的功效,這應用也是我們比較有機會看出雙核心效能的地方。

可惜我手邊沒有四核心的CPU可以測試,不然我也挺想試看看四核心能否達到更好的效率(單就TOM'S硬體的結論來看應該是可以成倍數成長)。

除此之外,在我測試的過程中,發現記憶體的大小對於影像轉檔的影響極小,只要記憶體能支持系統正常運行即可,1GB還是2GB的RAM,對於轉檔的時間長短並無太大的影響,這一點不像處理靜態影像一樣,完全都給看記憶體的臉色來做事。

雖然這個多核心的體驗的測試過程有點粗糙,重點是讓大家看見多核心CPU對於時間及效能影響在那?讓我們這些小市民們也能夠真實地體會一下CPU革命的好處吧!