matrix

A Bloomberg megnyitotta a tilalmat. Néhány hétre van még a (vélhetően) jövő szeptember 10-i pletykás esemény, az iPhone új generációjának bemutatója. És ha meghallgatjuk, amit Mark Gurman és Debby Wu mondott a közelmúltban, akkor az iPad Pro, az új 10,2 "oktatási iPad és az új 16" MacBook Pro felújítását is tapasztalhatjuk. Ha többet szeretne tudni, itt van a cikk, amely számold meg az összes pletykát.

De itt valami (számomra) fontosabb dologra fogunk koncentrálni, mint 3 kamera iPhone-on vagy 10'2 iPad. Ma az agyakról és egy új társprocesszorról beszélünk, amelyet Gurman fejlesztett ki, amely magában foglalná a jövőbeni A13-at, amely intelligenciát adna az eszközök új generációjának. AMX nevű társprocesszor, amely lebegőpontos mátrixszámításra specializálódott. A számítógépes látás és a kibővített valóság támogatására tervezett chip. Tehát el fogjuk mondani, hogy miből fog állni és milyen funkciói lesznek.

Heterogén számítástechnika

Ez a kulcsa a ma gyártott ARM architektúra alapú processzorok fejlődésének. Ellentétben azzal, amit gondolhat, amikor látunk egy viszonyítási alapot, ahol az iPad Pro új A12x-je szinte ugyanolyan teljesítményt ér el, mint egy csúcskategóriás Intel CPU, mint a 2018-as MacBook Pro, valójában a történet felét meséljük el, és ez az érték "félrevezet" minket.

Ugyanúgy, mint manapság a processzor órajelének gigahertze nem jelzi a sebességét, mivel az a processzor generációjától, alkotóelemeitől, tranzisztoraitól és másoktól függ, a benchmark nem képes megragadni a valódi problémát, amely ma van energiatakarékosságra tervezett ARM architektúra: hogy architektúrája definíció szerint lassabb, még akkor is, ha ugyanazon kritériumok alapján mérjük az eredményeket.

Néhány gyors példát mutatunk be, hogy megértsd. Egy olyan x86-os processzor, mint bármelyik Mac által használt Intel, ezernyi utasítással rendelkezik. A legalapvetőbbektől (például egy összeg) egészen a bonyolultabbakig, mint például a memória mozgásai az egyes komponensek között, és akár nagyon specifikus számítások, például videó adatkészlet kódolása.

Ötletet adni: a CPU nem ugyanaz (mint sok évvel ezelőtt), amely csak hozzá tudott adni, és a szorzáshoz sok összeget kellett tennie, ami amelyiknek többszörös utasítása van és egyetlen utasításban végrehajtja az összes műveletet.

A 64 bites x86 architektúra utasításkészlete 5000-nél több utasítással rendelkezhet, és ehhez hozzá kell adnunk más nagyon specifikus utasításokat a multimédia, lebegő számítás, videó feldolgozás különböző utasításainak részhalmazaitól, Az ARM, amely kevesebb energiafogyasztó architektúrát tesz lehetővé, lényegesen kevesebb művelettel rendelkezik.

Ráadásul ott van az utasítások mérete. Az x86-ban minden utasítás más méretű, a legalapvetőbb és leggyakrabban használt utasításokkal, amelyek csak 8, esetleg 16 bitet foglalnak el. Mindazonáltal, az ARM-ben minden utasítás ugyanazt a 32 bitet foglalja el, még akkor is, ha számozási szinten rövidek. Ezért, míg az x86 képes több utasítás feldolgozására másodpercenként, mert mindegyiknek más a mérete (dinamikus), az ARM-ben a másodpercenként feldolgozandó utasítások száma állandó.

Ez csak néhány észrevehető különbség. Emiatt az ARM architektúra megmentése, amely lehetővé teszi az x86 architektúrához (valós) összehasonlítható hatékonyság elérését, heterogén számítástechnika. A processzor azon képessége, hogy különféle speciális összetevőket tartalmazzon magában. Tegyük fel, hogy egy x86 izomot játszik egy olyan processzorral, amely dinamikus méretű utasítások ezreit teszi lehetővé, de általánosabb műveletekre szánják. Az ARM azonban azt csinálja, hogy a CPU általános esetekre hagyja és a többi tevékenységet más speciális összetevőkhöz továbbítják.

Például: ha videót akarunk kódolni egy x86-os processzoron, akkor abban segítségünkre van egy utasításkészlet (az Intel úgynevezett Quick Sync technológiája). De ugyanazon a CPU-n belüli utasítások, ezért a munka felszabadítása helyett betöltik ezt a munkát. Az Apple A12 processzornak azonban van egy HEVC videokódoló magja, amely kívül esik a CPU-n, és amelynek feladata a videó kódolása és dekódolása ezzel a kodekkel. Tehát, ha 4K videót rögzítünk egy iPhone XR-re (például), a CPU-nak semmit sem kell tennie, kivéve a műveletek koordinálását, míg a kódolás terhe egy külső összetevőt terhel. Ez nyilvánvalóan felszabadítja a CPU-t más dolgok elvégzésére, elterjeszti a munkát és gyorsabbá teszi a rendszert a valós használat során.

Gondoljon most arra, hogy az A12 CPU a következő összetevőket tartalmazza: GPU (grafikus processzor), TPU (tenzorok vagy idegmotorok egysége), folyamatkoordinátor (amely meghatározza, hogy a számítógéptől kért egyes műveleteknek milyen típusú magot vagy alkatrészt kell chipre menniük. ), ISP (képfeldolgozó chip fényképezéshez), DSP (vagy digitális jelfeldolgozó hanghoz), mélységmotor (a képen lévő elemek mélységének feldolgozásához), videoprocesszor ... plusz a GPU-nak 4 magja van (7 A12x esetén) és 6 CPU-magja (8 A12x esetén).

Nos, miután elmagyaráztuk mindezt, és megértettük az ARM architektúra processzorának felépítését (nyilvánvalóan nemcsak az Apple-t), most már jobban megérthetjük azt a tényt, hogy úgy tűnik, hogy az Apple új komponenst építene be az A13 CPU-ba: egy mátrixszámítógépes társprocesszor. És mit fog tenni?

MCC, mátrixok kiszámítása

Ha azt mondom, hogy ezt a processzort kifejezetten a 4 × 4 mátrixok, a 3D grafika tengelyének kiszámítására tervezik, akkor valószínűleg valaki ezt mondja nekem erre való a GPU és hogy a 3D mátrixok összes lebegő számítása már jól lefedett.

De a GPU-nak problémája van: csak olyan műveletekhez használható, amelyek képernyőnként grafikus eredménnyel rendelkeznek. Valójában ahhoz, hogy a GPU számítási számításokat hajtson végre egy másik okból, például a mesterséges intelligencia használatáért, egy kis trükköt kell végrehajtani: használjon árnyékolókat, amelyeknek nincs grafikus eredménye, de számszerű eredményt ad.

Eredetileg a shader egy olyan program, amely lehetővé teszi a GPU számára, hogy módosítsa egy adott kimenetet olyan értékekben, mint a kép fényereje vagy színszintje. Alapvetően a 3D-s felületeken vagy árnyékokban való ragyogástól a valós idejű komplex effektusokig (például videoszűrőkig) használják. De néha ezek az árnyékolók nem grafikus kimenettel rendelkeznek és lehetővé teszi, hogy egy GPU (amely jobban specializálódott a lebegőpontos számításra) képes legyen olyan műveletek végrehajtására, amelyekre a CPU többe kerülne.



Tehát bár egy GPU képes elvégezni ezeket a mátrixszámításokat, ennek az MCC-nek a használata a rajzolás előtt inkább egy előzetes számítás. A kibővített valóságból levezetett előzetes számítás.

A 3D grafikában egy 4 × 4 elemű mátrixot használunk arra, hogy az objektum általunk kezelt helyi koordinátarendszerből átalakuljunk egy valós koordinátatérré, amely a kamera látottját reprezentálja. A mátrix oszlopai megadják a helyi koordinátarendszerünk koordinátáit a való világhoz viszonyítva.

3 komponens helyett 4 komponenst használunk, amelyek a függőleges, vízszintes és mélységi pontok lennének a koordináták megjelenítésére a 3D térben (x, y, z) azáltal, hogy a vektorokat és a pontokat homogén koordináták segítségével ábrázolják. A koordinátarendszer a 3D térben 4 komponensből áll: a 3 x, y és z tengelyből és az origóból. Ezért a 3D térben minden vektor 3 tengely lineáris kombinációja, ahol az x, y, z és w oszlopok mátrixok. Mivel a 3D tér bármely pontját egy origó és egy vektor képviseli. A kibővített valóságban a valós világ koordinátáinak eredete a kamera, amely saját átalakulásokon megy keresztül, amikor a kezünkben mozog.

Lényegében minden objektumnak megvan a saját koordinátatere, és ezt át kell alakítanunk annak a környezetnek a koordinátaterébe, ahová elhelyezni fogjuk. A mátrix negyedik oszlopa az, amely a homogén koordinátát ábrázolja, és lehetővé teszi számunkra, hogy a mátrixot megszorozzuk, hogy megkapjuk az egyes pontok transzformációját. A mátrixban változtatni kívánt soroktól és oszlopoktól függően fordításokat, méretezést, forgatást, deformációt kapunk ... az x, y vagy z tengely egy vagy több tengelyére alkalmazandó műveletek a számítástól függően.

Ezek lesznek azok a számítások, amelyekkel elkészül az új MCC chip: mátrixokkal végzett műveletek, amelyek lehetővé teszik annak kiszámítását, hogy a kamera és a nézőpont hogyan mozog, valamint hogyan mozgassa a jelenet minden 3D-s objektumát úgy, hogy a vonatkozó változások alkalmazhatók legyenek, és lehetővé tegyék az ottlét valóságra gyakorolt ​​hatását.

Kiterjesztett valóság, a jelenet megértése

A kibővített valóság alapja a jelenetek megértése, vagyis az, amit a kamera a fókuszon vagy síkon túl is lát, amelyet egy adott pillanatban látunk. Számoljon ki és készítsen vektoros térképet mindarról, amit lát, kitöltve azt a helyiséget, ahol a készülék mozgatásakor vagyunk. A gyorsulásmérők és a digitális giroszkóp elmondják a rendszernek, hogyan mozgatjuk a kamerát, hogy a letapogatás befejezésével tudja, merre kell menni.

Minden látott képhez ki kell számolnia az egyes elemek mélységét és távolságát, és az iOS 13-tól kezdve meg kell határoznia, hogy mely részeket kell rajzolni vagy sem az emberek elzáródása alapján (csak az A12-es CPU-któl elérhető). Úgy, ha egy virtuális vázát helyezek az asztalra, és "elé" teszem a kezem, a készülék abbahagyja a pixelek rajzolását, ahol a kezemet érzékeli hogy azt a benyomást keltsem, hogy a virtuális objektum áll mögötte, és én lefedem.



Mindezt funkciópontokkal (vagy jellemzőpontokkal) érjük el. Mutat azokra a függőleges vagy vízszintes felületekre (amelyeket csak akkor látunk, ha aktiváljuk a hibakereséshez) érzékeli, hogy a fény megtörik-e a kép különböző elemein és hogyan értelmezi és ismeri fel az eszköz számítógépes látása az egyes tárgyakat. Ha egy felületen sok funkciópont van, akkor egy síkot (függőleges vagy vízszintes) észlel, és ezen (gyakorlatilag) elhelyezhetünk.

De amikor mozgatjuk a mobiltelefont, és van egy virtuális elem a képernyőn (vagy több), akkor a rendszer számára nagyon nehéz folyamat folyik, amelyet eddig a CPU hajtott végre: a koordinátákat adó mátrixok transzformációjának kiszámítása egy 3D tér az egyes elemek helyzetéhez. 4 × 4-es mátrixon, amely az x tengelyen, az y tengelyen, a mélységen (z tengely) és az eredeten alapul. Olyan számítást kell végrehajtani, amelyet másodpercenként 60-szor kell elvégezni, hogy szinkronizálhassa a kamera által látottakat a létrehozott virtuális világgal.

Ezért az Apple beépíti ezt az új matematikai társprocesszort, amelynek bemeneti regiszterei ahelyett, hogy egyetlen dimenzió skaláris adatai lennének (mint egy hagyományos CPU), négydimenziós mátrixok lesznek, hasonlóan a TPU-khoz (vagy idegmotorokhoz), de speciális műveletekkel ezekhez a számításokhoz egy 3D téren hogy előre kiszámított módon jobb pontossággal lehessen rajzolni, kevesebbet fűtve a készüléket és kevesebb energiát fogyasztva.

Egyértelműen a kibővített valóságban alkalmazott számítógépes látás nagyon értékes támogatása és egy új kis lépés az Apple kibővített valóság szemüvegei felé, amely ismét megmutatja, hogy a szemüvegek nagyrészt passzívak lesznek, és hogy minden számítást az eszközről végeznének (ahogy ma az Apple Watch teszi).

Remélem, megértette, hogy az Apple miért hozta meg ezt a döntést és hogyan illeszkedik a teljes CPU architektúrájába. Kétségkívül újabb lépés a jövő felé. Néhány hét múlva kétségeket hagyunk.