Apple iPhone XS Review Addendum: Small Core og NN Performance

Sidste uge offentliggjorde vi vores iPhone XS og XS Max anmeldelse, hvori gik dybtgående ind i telefonens forskellige aspekter, især i sektionen vedrørende den nye fangede A12's CPU-ydeevne. Dog ønskede jeg at grave lidt dybere i CPU-ydelsen, end jeg havde tid til i den indledende gennemgang, som jeg endelig er i stand til at nå frem til nu. A12s små kerner var især noget, jeg ønskede at have i artiklen, da Apples små kerner ikke er blevet undersøgt meget godt indtil videre. Da det stadig er et vigtigt emne, lægger jeg den del her som en rørledning samt integrerer den som en ekstra side i gennemgangen:

A12 Tempest µarch: En voldsom lille kerne

Apple havde først introduceret en "lille" CPU-kerne sammen med Twister-kernerne i A10 SoC, der driver iPhone 7-generationen. Vi har aldrig rigtig haft lejlighed til at dissekere disse kerner, og i årenes løb var der lidt mystik omkring dem, hvad de er i stand til.

Apples introduktion af en heterogen CPU-topologi i en forstand var en af ​​de største valideringer for armdesign. At have separate lave (er) -kraft CPU'er på en SoC er et simpelt spørgsmål om fysik: Det er bare ikke muligt at få større mikroarkitekturer nedskalere strømmen så effektivt som om du bare ville bruge en separat mindre blok. Selv i en mytisk perfekt ur-lukket mikroarkitektur ville du ikke være i stand til at bekæmpe den statiske lækage, der findes i større CPU-kerner, og dette ville medføre den negative konsekvens af at være en del af det daglige strømforbrug på en enhed, selv for små arbejdsbyrder. Strømstyring af de store CPU-kerner, og skift i stedet til meget mindre CPU i kontrast, hjælper med at afhjælpe statisk lækage såvel som (hvis den er designet som sådan) med at forbedre den dynamiske lækageeffektivitet.

Tempest-kernerne i A12 er nu den tredje iteration af denne "lille" mikroarkitektur, og siden A11 er de nu fuldstændig heterogene og fungerer uafhængigt af de store kerner. Men spørgsmålet er, er dette faktisk den tredje iteration, eller gjorde Apple noget mere interessant?

Tempest-kernen er en 3-bred out-of-order mikroarkitektur: Allerede ude af porten betyder det, at det har meget lidt at gøre med Arm's egne "små" kerner, som A53 og A55, da disse er enklere i orden designs.

Tempest-kernens udførelsesrørledninger er også relativt få: Der er kun to hovedrørledninger, der er i stand til enkle ALU-operationer; I mellemtiden gør en af ​​dem også heltal- og FP-multiplikationer, og den anden er i stand til at udføre FP-tilføjelser. Grundlæggende har vi bare to primære eksekveringsporte til hver af de mere komplekse rørledninger bag dem. I mellemtiden ud over de to hovedrørledninger er der også en dedikeret kombineret last / lagerhavn.

Hvad der er meget interessant her er, at dette i det væsentlige ser identisk med Apples Swift mikroarkitektur fra Apples A6 SoC. Det er ikke meget svært at forestille sig, at Apple ville have genanvendt dette design, overført det til 64-bit, og de bruger det nu som en mager out-of-order maskine, der fungerer som CPU-kernen med lavere strøm. Hvis dette virkelig er hurtigt afledt, bør vi oven på de tre eksekveringsporte, der er beskrevet ovenfor, også finde en dedikeret port til heltal- og fp-divisioner, så vi ikke blokerer for hovedrørledningerne, når en sådan instruktion føres.

Tempest-kerne uret op til maksimalt 1587MHz og betjenes af 32KB-instruktion og datacachen, samt en øget delt 2MB L2-cache, der bruger strømstyring til delvis at slukke SRAM-banker.

Med hensyn til effekteffektivitet var Tempest-kernerne i det væsentlige min primære kandidat til at forsøge at komme til en slags æbler-til-æbler-sammenligning mellem A11 og A12 for effekteffektivitet. Jeg har ikke set store forskelle i kernerne udover den større L2, og Apple har også holdt frekvenserne ens. Desværre er "lignende" ikke identisk i dette tilfælde; fordi de små kerner på A11 kan øge op til 1694MHz, når der kun er en tråd aktiv på dem, havde jeg ingen rigtig god måde at også måle ydeevne på isofrekvens.

Jeg kørte SPEC med en lige stor 1587MHz-frekvens ved simpelthen at have en anden dummytråd, der spinde på en anden kerne, mens de vigtigste arbejdsbelastninger var benchmarking. Og jeg prøvede at få nogle magttal gennem denne metode ved regressionstest af virkningen af ​​dummytråden. Dog var strømmen næsten identisk med de tal, jeg målte ved 1694MHz. Som et resultat jeg droppede ideen, og vi bliver bare nødt til bare at huske, at A11s Mistal-kerner løb 6.7% hurtigere i følgende benchmarks:

Ligesom på Vortex store kerner findes de største forbedringer for de nye Tempest kerner i de hukommelsesfølsomme benchmarks. De benchmarks, som Tempest mister til Mistral, er hovedsageligt eksekveringsbundet, og på grund af frekvensulempen er der ingen overraskelse, at A12 tabte i dette særlige enkeltrådede små kernescenario.

Samlet set ud over hukommelsesforbedringerne ligner de nye Tempest-kerner meget ydeevne som sidste års Mistral-kerner. Dette er fantastisk, da vi også kan undersøge strømeffektiviteten og måske lære noget mere konkret om fordelene ved TSMCs 7nm fremstillingsproces.

Desværre er energieffektivitetsforbedringerne noget uomgængelige og mere måske måske skuffende. Ser man på SPECint2006-arbejdsbelastningen generelt, var den Tempest-drevne A12 35% mere energieffektiv end den Mistral-drevne A11. Da Mistral-kernerne kørte med en højere frekvens i denne test, ville de faktiske effektivitetsgevinster for A12 sandsynligvis være endnu mindre på et ISO-frekvensniveau. Indrømmet, vi ser stadig på en generel sammenligning af ISO-ydelser her, da hukommelsesforbedringerne i A12 var i stand til at skubbe Tempest-kernerne til en heltal-suite-score næsten identisk med de højere-urede Mistral-kerner.

I de overordnede FP-benchmarks var Tempest kun 17% mere effektiv, selvom det fungerede bedre end A11s Mistral-kerner.

Når man sætter A11 og A12 små kerner i sammenligning med deres storebrødre såvel som konkurrencen fra Arm, er der ikke meget overraskelse med hensyn til resultaterne. Sammenlignet med de store Apple-kerner tilbyder de små kerner kun en tredjedel til en fjerdedel af ydelsen, men de bruger også mindre end halvdelen af ​​energien.

Det, der overraskede mig meget, var at se, hvor godt Apples små kerner sammenlignes med Arm's Cortex-A73 under SPECint. Her matcher Apples små kerner næsten resultatet af Arm's højtydende kerner fra ust for 2 år siden. I SPECs heltal-arbejdsbelastning svarer A12 Tempest næsten til en 2.1GHz A73.

I SPECfp-arbejdsmængder er de små kerner imidlertid ikke konkurrencedygtige. At ikke have dedikerede flytende punkt-udførelsesressourcer sætter kernene i en ulempe, skønt de stadig tilbyder stor energieffektivitet.

Apples små kerner generelt er meget mere performante, som man kunne tro. Jeg har samlet nogle ufuldstændige SPEC-numre på Arm's A55 (det tager aldre!) Og generelt er præstationsforskellen her 2-3x afhængigt af benchmark. I de senere år har jeg følt, at Arm's lille kernepræstation er blevet utilstrækkelig i mange arbejdsbelastninger, og dette kan også være grunden til, at vi kommer til at se meget mere tre-lags SoC'er (som Kirin 980) i den kommende fremtid . Som det står, fortsætter kløften mellem den maksimale ydeevne for de små kerner og det mest effektive lavpræstationspunkt for den store i en retning. Alt sammen får mig til at undre sig over, om det stadig er det værd at blive hos en mikrofonarkitektur i orden til Arm's effektivitetskerner.

Neural Network Inferencing-ydeevne på A12

Et andet stort, mystisk aspekt af den nye A12 var SoCs nye neurale motor, som Apple annoncerer som designet i huset. Som du måske har bemærket i die shot, er det en ganske stor siliciumblok, der meget svarer til de to store Vortex CPU-kerner i størrelse.

Til min overraskelse fandt jeg ud af, at Master Lu's AImark-benchmark også understøtter iOS, og endnu bedre bruger den Apples CoreML-ramme til at fremskynde de samme inferensmodeller som på Android. Jeg kørte benchmarket for de seneste iPhone-generationer samt et par centrale Android-enheder.

鲁 大师 / Master Lu - AImark - Inception V3 鲁 大师 / Master Lu - AImark - ResNet34 鲁 大师 / Master Lu - AImark - VGG16

Samlet set blev Apples 8x-ydelsesanprisninger ikke helt bekræftet i denne særlige testsuite, men vi ser solide forbedringer af 4-6.5x. Der er en fangst her med hensyn til de ældre iPhones: som du kan se i resultaterne, fungerer den A11-baserede iPhone X helt på samme måde som tidligere generationstelefoner. Hvad der sker her er, at Apples eksekverende CoreML på GPU. Det ser ud til, at NPU'en i A11 måske aldrig blev udsat offentligt via API'er.

Huawei P20 Pro's Kirin 970 falder omtrent 2.5x bag den nye A12 - som sammenfaldende nøjagtigt matcher de annoncerede 2TOPs vs 5TOPs i hele kapaciteterne i begge SoC's respektive NPU'er. Her skulle den nye Kirin 980 være i stand til at lukke kløften betydeligt.

Qualcomms Snapdragon 845 klarer sig også meget godt, og der blæser handel med Kirin 970. AImark bruger SNPE-rammerne til inferensacceleration, da det endnu ikke understøtter NNAPI. Pixel 2 og Note9 bød forfærdelige resultater her, da de begge skulle falde tilbage til CPU-accelererede biblioteker.

Når det gælder magt, er jeg ikke for behagelig med at udgive strøm på A12 på grund af, hvordan arbejdsbyrden var synlig transaktion: Den faktiske inferencing-arbejdsbyrde stødte strømforbruget op til 5.5W, med lavere mellemrum mellem hinanden. Uden at vide, hvad der sker mellem aktivitetsudbruddene, kan de gennemsnitlige effekttal for hele testkørslen variere meget. Ikke desto mindre betyder det faktum, at Apple er villig til at gå op til 5.5W, at de meget skubber magtkonvolutten her og går efter den højeste burst-ydelse. Den GPU-accelererede iPhones kraft toppede i området 2.3W til 5W afhængigt af inferensmodellen.

Oprindelig artikel

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.