8 kärnors mobil är korkat
Äntligen någon som vågar säga ifrån. Denna jakt på flera CPU-kärnor i mobiler, mycket därför Tegra3 slängde in 4 kärnor och man marknadsförde detta stenhårt som att det gav en väldigt bra upplevelse.
Qualcomm har nu kommenterat MediaTeks kommade 8-kärnors SoC som korkat och kan bara hålla med.
Detta blir det första "riktiga" 8-kärnors SoC då Samsungs Exynos Octa må ha 8 kärnor, men som det används är det som mest 4-kärnor som är aktiva vid samma tillfälle.
Även 4-kärnor är inte bara meningslöst på dagens mobiler, för de som inte tror mig: koppla in din 4-kärnors Android mobil/pekplatta till en dator där Android SDK är installerad, kör
adb shell top | grep User
Testa sedan att köra saker på Android-enheten som är "tunga" och kolla om du någonsin ser CPU värdet gå speciellt långt över 100% (summan av User, System, IOW och IRQ värdet). Full användning av två CPU-kärnor ska visa ett värde på totalt 200% och fyra kärnor blir således 400%. Detta skiljer sig mot hur taskmanager visar samma sak i Windows där 100% är att alla CPU-kärnor/trådar användas oavsett hur många det är, Linux har 100% per CPU-kärna/tråd.
Testade lite olika spel, testade att surfa och testade lite andra program != benchmarks. Inget verkar använda mer än en CPU-kärna till 100%, de flesta verkar överhuvudtaget inte använda en andra kärna medan vissa använder en andra kärna för bakgrundsuppgifter (vilket är anledningen till att 2 kärnor faktiskt är vettigt), men den andra kärnar lastas ytterst sällen mer än 10%.
Så vad är problemen med många CPU-kärnor, de gör väl ingen skada i program som inte använder dem?
Problemet är att det är precis vad de gör. Faktum är att Qualcomm är den enda SoC-tillverkaren som har någorlunda bra hantering av fler än 2 CPU-kärnor, så att de klagar ovan är definitivt mer än att de själva inte råkar ha ett 8-kärnor SoC. När fler än en CPU-kärna används i dagens SoCer så påverkas strömförbrukningen negativt då vissa saker, som t.ex. spänning, måste köras på den nivå som den CPU-kärna som behöver högst värde kräver. Likaså kommer CPU-cache behöva köras på högsta frekvens.
Qualcomm Snapdragon och Intels kommande BayTrail är de enda SoC som kan reglera spänning asynkront, men det finns ändå delar som kommer behöva köras i högre frekvens även på dessa när det finns oanvända kärnor.
Tyvärr lär kunderna aldrig förstå att en platta/telefon med 2 CPU-kärnor som bara är marginellt snabbare per CPU-kärna kommer både upplevas snabbare och ha något bättre batteritid än annan modell med fler CPU-kärnor...
Hoppas bara Qualcomm står fast vid detta uttalande och stannar vid 4 kärnor (som redan är 2 för många), i alla fall så länge som de program vi kör på våra mobiler/pekplattor inte ens kan använda mer än en CPU-kärna.
Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer