pp039773 wrote:
說真的,那些說htc維修經驗差的人,不都是一些疑似護航htc的人拱成熱門文章嗎?
我想htc客服如果更處理得宜,我想如果三星真的要找工讀生
還特別去買htc的機子來維修,還上來Po文雞蛋裡挑骨頭
那我想觀文的人,也會懂是非
無需一堆人在那邊疑神疑鬼
反之,若是Po文的人真的是htc的消費者
這些護航的人一下挑發文者的註冊時間
(這招自從被Taiwansmasungleaks揭露後,還會這麼白目嗎? )
一下又是挑發文者潛水,一下又說沒圖沒真相,沒錄影沒真相...
身為中立者的我看了,都覺得如果我是htc的消費者,
就算修好了,我以後絕不會再使用該品牌
所謂物極必反...
反之,若是讓發文者Po文,不要有人回應他,他自尋解決
或者htc客服幾日後解決,那也不會在熱門文章出現htc品質不良的文章不是?
你都會說Taiwansmasungleaks揭露後,難道你不知道它們會互推至熱門嗎?怎還會這麼說呢?
你看這篇就可以知道了阿,這麼大的事也只有幾隻小貓回應,其他常出現愛回應的都消失了,
不就是他們一貫的處理方式冷處理嗎

很快的翻譯一下,方便各位朋友理解,英文造詣與文筆不佳請海涵,有錯誤請指正。
(轉貼請附免責聲明:
文章翻譯以口語、容易理解為主,如有錯誤概以原始網站為準,本人恕不負任何責任)
http://www.anandtech.com/show/7187/looking-at-cpugpu-benchmark-optimizations-galaxy-s-4
此事件原為一位外國網友AndreiF所發現,後由Anandtech網站深入追查後所得的結果,
供各位參考,理性討論,賣S4的錢不入我口袋,無所謂筆戰的必要,謝謝!
簡單整理文章內容:
1. Galaxy S4手機(高通版和三星Exynos版)會針對跑分程式做特別設定。
2. 開跑分程式後CPU頻率會拉到最高,核心會被全部打開直到結束,即使idle也是。
3. 只要保持跑分程式開啟,CPU的效能是可以被其他應用程式共享。
4. 只有跑分程式下的GPU能上532MHz的最高頻率,所有其他程式都用不到(最高480MHz)。
Galaxy S4對跑分程式的優化
Anand 網站和我終於都拿到了第一代使用Exynos 5 Octa(5410)晶片,國際版本的Samsung Galaxy S4。Anand買到的是國際版本的GT-I9500;我的更酷,是韓國SK Telecom的手機,型號是SHV-E300S,用的是三星自產的SS222 LTE數據機(modem),在美國能使用17頻段 (AT&T LTE)以及band 2, 5 WCDMA頻段,兩個手機都是透過行動電話進口商Negri Electronics拿到的。
對Exynos 5 Octa不熟的人我先簡短介紹一下:這顆晶片整合四個ARM Cortex A15處理器核心(1.6GHz)以及四個ARM Cortex A7核心(1.2GHz),用big.LITTLE的組態整合。繪圖是由PowerVR SGX 544MP3這顆GPU晶片來負責,最高頻率可達533MHz。
我們打算深入研究這支採用ARM Cortex A15手機的功耗以及效能表現,只是有許多雜事讓我們暫時耽擱了下來。
直到最近,Beyond3D論壇中一篇由@AndreiF發的文章喚醒我們的注意,他用一些老掉牙但仍很管用的跑分(benchmarking)技巧,發現三星的GPU只會在執行跑分程式時上533MHz,執行所有其他的app、遊戲時最多只能跑在480MHz。過去這幾週我們一直被許多人催促要看一下這到底是甚麼鬼,以下是我們的發現:
GPU行為
只要用adb執行以下的指令,不須root,我們就可以取得三星的GPU clock:
adb shell cat /sys/module/pvrsrvkm/parameters/sgx_gpu_clk
這個指令是非常有效直接地可以看見硬體的運作狀況,只要用不斷重複地下這個指令,我們就能即時更新各種應用程式下的GPU頻率。
就像@AndreiF說的,跑所有的遊戲,即使是最吃重的也一樣,GPU的頻率都保持在480MHz。當然三星也從未宣稱他的Exynos 5 Octa GPU會跑到最高的頻率,所以現在還沒有人犯規。
跑Epic Citadel - 480MHz
可是當執行GLBenchmark2.5.1時,卻會觸發532MHz的GPU頻率,這是你找遍全宇宙其他角落都得不到的結果。跑安兔兔以及Quadrant也會有同樣的情況。
跑AnTuTu – 532 MHz SGX Clock
可是GFXBench 2.7.0(先前叫做GLBenchmark 2.7.0)卻不會,這實在太有趣了!我們找上GFXBench 的廠商Kishonti,向他們確認,GFXBench和GLBenchmark兩者的測試核心是完全一樣的,兩者執行的結果卻可以看出頻率設定有所不同:
Total System Power | GPU 頻率 | Run 1 | Run 2 | Run 3 | Run 4 | Run 5 | 平均 |
GFXBench 2.7.0(GLBenchmark 2.7.0) | 480MHz | 37.9M Tris/s | 37.9M Tris/s | 37.7M Tris/s | 37.7M Tris/s | 38.3M Tris/s | 37.9M Tris/s |
GLBenchmark 2.5.1 | 532MHz | 43.1M Tris/s | 43.2M Tris/s | 42.8M Tris/s | 43.4M Tris/s | 43.4M Tris/s | 43.2M Tris/s |
增加(%) | 10.8% | 13.9% |
可以看得出來,跑GLBenchmark2.5.1比GFXBench 2.7.0的效能高出11%甚至更多,似乎GLBenchmark 2.5.1被刻意設定在更高的GPU頻率/電壓下工作。
CPU也被影響
原先發表在B3D文章的重點在GPU效能,但我們很好奇CPU效能會不會也受影響。
我用System Monitor 看CPU頻率再跑同樣的測試,跑GLBenchmark 2.5.1時CPU會被切換到ARM Cortex A15的核心,頻率被定在1.2GHz不動,就算只開跑分程式的選單並沒有在跑分,而且CPU也閒置,頻率也不會降下。
然而跑GFXBench 2.7時卻不會如此,CPU是用Cortex A7,以500MHz (250MHz 虛擬頻率)跑,看起來GLB2.5.1像是被特准跑在高效能模式。
很快地檢查一下安兔兔、Linpack、Benchmark Pi、以及Quadrant都有同樣的狀況,只要執行跑分程式,控制器就會將CPU鎖在某個頻率。
使用高通晶片的Galaxy S4版本CPU也有同樣情形,非常耐人尋味。只要執行這些跑分程式,不管loading如何,CPU頻率就會被固定在最高的頻率直到結束,而且全部的核心都會被打開來用。
然而值得注意的是,CPU行為跟我們看到的GPU行為稍有不同,只要開了這些跑分程式,CPU就被強制設定在最高的頻率(而且高通的Snapdragon所有核心都會被啟動),基本上所有apps都能享有好處,可是只有那些跑分程式可以用到532MHz的GPU。
更深入的探討
目前看來那些跑分程式能上比較高的GPU頻率似乎是很主觀的,像是安兔兔、GLBenchmark 2.5.1和Quadrant的CPU頻率被固定在最高,GPU也跑上最高的532MHz,GFXBench 2.7和Epic Citadel卻沒有這樣設定,我明查暗訪終於找到TwDVFSApp.apk這個應用程式,可以更改DVFS來設定不同頻率。用16進位表示法編輯器(hex editor)打開檔案,找到以下的字串(或者執行.odex檔案中的字串指令也可),可以發現那些預設的跑分程式字串看起來像是被寫死在檔案裡,其中” BenchmarkBooster”這個字串特別暗藏玄機:
在反白的部分可以找到那些特定的Android java命名規則,Quadrant standard、advanced、professional、linpack (free, not paid)、Benchmark Pi還有安兔兔在程序中都被特別呼叫,雖然沒看見GLBenchmark 2.5.1,但行為也差不多。
我們可以看TwDVFSApp執行時會需要那些檔案:
//sys/class/devfreq/exynos5-busfreq-int/min_freq
//sys/class/devfreq/exynos5-busfreq-mif/min_freq
+/sys/class/thermal/thermal_zone0/boost_mode
2/sys/devices/platform/pvrsrvkm.0/sgx_dvfs_min_lock
如果TwDVFSApp 給哪個應用程式特別的DVFS狀態,boost_mode檔案的值會從0變成1,因此我們很容易可以知道誰受到影響。比如說,開啟然後關閉Benchmark Pi:
shell@android:/sys/class/thermal/thermal_zone0 $ cat boost_mode
1
shell@android:/sys/class/thermal/thermal_zone0 $ cat boost_mode
0
Fusion3(高通Snapdragon版本)和Adonis(三星Exynos版本)各有不同字串:
doBoostAll
doBoostForAdonis
doBoostForAdonis::
doBoostForFusion3
doBoostForFusion3::
更有趣的是,對於那些不在名單當中的跑分程式,TwDVFSApp似乎也給了個架構
6Lcom/sec/android/app/twdvfs/TwDVFSBroadcastReceiver$1;
6Lcom/sec/android/app/twdvfs/TwDVFSBroadcastReceiver$2;
?Lcom/sec/android/app/twdvfs/TwDVFSBroadcastReceiver$IntentInfo;
4Lcom/sec/android/app/twdvfs/TwDVFSBroadcastReceiver;
boostIntent
5com.sec.android.intent.action.DVFS_FG_PROCESS_CHANGED
*com.sec.android.intent.action.SSRM_REQUEST
因此我們不僅可以測試那些程式受到影響,也可以看到名單當中列的程式,以及TwDVFSApp 如何給予某些程式特殊的DVFS狀態。
這發現有甚麼重要/啊然後呢?
這些對我們(AnandTech)不會有甚麼致命的打擊,因為我們沒用安兔兔、BenchmarkPi或者Quadrant,而且當2.7版出來之後,GLBenchmark 2.5.1就不用了(我們老早也放棄Linpack),其他的項目也不會被Exynos 5 Octa的CPU和GPU動的手腳影響。但是倘若你想拿那些被影響的跑分程式來評比Exynos 5 Octa版本的Galaxy S4,就要特別留意別被誤導了,因為這個設定根本只為了讓CPU/GPU跑分得到 (並且可以一再重複) 高分。
很早之前我們就說過,行動通訊產業會複製PC產業的過程,所以這種手腳一點也不令人意外,但不能說以前有人做過,現在發生就是應該的。
有趣的是這跟GPU製造商在FurMark裏頭做的事情正好相反:FurMark是一個壓力測試程式,用讓手機狂吃電方式操它,為了避免打game時手機過熱(同時避免讓沒有過熱保護的顯卡受到傷害),GPU廠商常會設個GPU頻率上限(註:也就是為何平常只跑480MHz)。在行動設備的世界同樣事情也在上演,不過要發現這些詭異的事情是個困難。
接下來三星該做的,是將超頻的設定打開來供所有使用者/應用程式來用(例如給個選單可以設定CPU跑在高效能模式,以及解除GPU 532MHz的封印),不然就該把這種偷搞優化的手腳全拿掉。如果我們對這事保持沉默,甚麼都不做,將會讓更多的時間與精力被徒然浪費在增加跑分,而不是用在改善增進使用者體驗方面。追求更好的體驗是最重要的根本,如果達到,跑分好看會是必然,其他若是沒有因此受惠的就不是很重要的。
小惡魔市集
關閉廣告