Bloomberg отвори забраната. Остават ни няколко седмици от слуховете за (предполагаемо) следващия 10 септември, представянето на новото поколение iPhone. И ако се вслушаме в това, което Марк Гурман и Деби Ву казаха наскоро, ще видим и леко обновяване на iPad Pro, нов 10,2 "образователен iPad и новия 16" MacBook Pros. Ако искате да научите повече, имате тук статията, която пребройте всички слухове.
Но тук ще се съсредоточим върху нещо (за мен) по-важно от 3 камери на iPhone или 10'2 iPad ”. Днес говорим за мозъци и нов съпроцесор, който Гурман е усъвършенствал, който ще включва бъдещия A13, който ще даде интелигентност на това ново поколение устройства. Съпроцесор, наречен AMX, който ще бъде специализиран в изчисляването на матрица с плаваща запетая. Чип, предназначен да поддържа компютърно зрение и добавена реалност. Затова ще ви кажем от какво ще се състои и какви ще бъдат функциите му.
Хетерогенни изчисления
Това е ключът към еволюцията на ARM архитектурните процесори, произведени днес. Противно на това, което може би си мислите, когато видим еталон, при който новият A12x на iPad Pro постига производителност, почти същата като процесор от висок клас Intel като тези на MacBook Pro от 2018 г., ние всъщност разказваме половината история и тази стойност ни „подвежда“.
По същия начин, по който днес гигагерците на процесорния часовник не са показателни за неговата скорост, защото зависи от генерирането, компонентите, транзисторите и други на самия процесор, бенчмаркът не е в състояние да улови истинския проблем, който има днес процесор ARM архитектура, предназначен да пести енергия: че неговата архитектура е по-бавна по дефиниция, дори ако измерваме резултатите по същите критерии.
Ще дадем няколко бързи примера, за да го разберете. Процесор x86 като всеки Intel, използван от Mac, има хиляди инструкции. От най-основните (като сума) до по-сложни, като например движения на паметта между конкретни компоненти и дори много специфични изчисления като кодиране на набор от видеоданни.
За да ви дадем представа: процесорът не е същият (както преди много години), който може само да добавя и да го умножава, трябваше да направи много суми, които този, който има инструкция за умножение и в една инструкция изпълнява цялата операция.
Наборът от инструкции на 64-битова архитектура x86 може да има повече от 5000 инструкции и към това трябва да добавим други много специфични инструкции от различни подгрупи инструкции за мултимедия, плаващо изчисление, обработка на видео ... обаче, ARM, за да позволи архитектура с по-малко енергия, има значително по-малко операции.
На всичкото отгоре е размерът на инструкциите. На x86 всяка инструкция е с различен размер, най-основните и най-често използваните инструкции, които заемат само 8 бита, може би 16 бита. въпреки това, в ARM всички инструкции заемат едни и същи 32 бита, дори ако са кратки на ниво номериране. Следователно, докато x86 е способен да обработва повече инструкции в секунда, тъй като всяка от тях има различен размер (той е динамичен), в ARM броят на инструкциите за обработка в секунда е постоянен.
Това са само някои от разликите, които трябва да забележите. Поради тази причина спасението на ARM архитектурата, за да й позволи да има ефективност, сравнима (реална) с архитектура x86, е хетерогенно изчисление. Способността на процесора да има различни специализирани компоненти в себе си. Да кажем, че x86 играе мускул с процесор, който позволява хиляди динамични инструкции, но предназначени за по-общи операции. Това, което ARM прави обаче, е, че процесорът го оставя за общи случаи и останалата част от дейностите се изпращат към други специализирани компоненти.
Например: ако искаме да кодираме видео на процесор x86, в него има набор от инструкции, които да ни помогнат (т.нар. Технология за бързо синхронизиране от Intel). Но те са инструкции в рамките на един и същ процесор, така че те зареждат тази работа, вместо да я освобождават. Процесорът на Apple A12 обаче има ядро за кодиране на видео HEVC, което е извън процесора и чиято задача е да кодира и декодира видео с този кодек. Така че, ако записваме 4K видео на iPhone XR (например), процесорът не трябва да прави нищо, с изключение на координиращите операции, докато тежестта на кодирането пада върху външен компонент. Това очевидно освобождава процесора да прави други неща, разпространява работата и прави системата по-бърза при реална употреба.
Сега помислете, че процесорът A12 има следните компоненти: GPU (графичен процесор), TPU (единица от тензори или невронни двигатели), координатор на процеса (който определя какъв тип ядро или компонент всяка операция, която се изисква от компютъра, трябва да премине към чип ), ISP (чип за обработка на изображения за фотография), DSP (или цифров процесор на сигнала за звук), механизъм за дълбочина (за обработка на дълбочината на елементите в изображение), видео процесор ... плюс графичният процесор има 4 ядра (7 в случай на A12x) и 6 ядра на процесора (8 в случай на A12x).
Е, след като обясним всичко това и разберем как е структуриран ARM архитектурен процесор (не само на Apple, очевидно), вече можем да разберем по-добре факта, че изглежда, че Apple ще включи нов компонент към процесора A13: матричен изчислителен съпроцесор. И какво ще направи?
MCC, изчисляване на матрици
Ако ви кажа, че този процесор ще бъде специално предназначен за изчисляване на 4 × 4 матрици, ос на 3D графика, най-вероятно някой ще ми каже, че за това е графичният процесор и че всички плаващи изчисления на 3D матрици вече са добре покрити.
Но GPU има проблем: може да се използва само за операции, които имат графичен резултат на екран. Всъщност, за да може графичен процесор да направи изчислително изчисление по друга причина, като например използването на изкуствен интелект, трябва да се направи малък трик: използвайте шейдъри, които нямат графичен резултат, но връщат числов резултат.
Първоначално шейдърът е програма, която позволява на графичния процесор да променя конкретен изход в стойности като яркост или нива на цвета на изображението. По принцип се използва от за да предизвика блясък в 3D повърхности или сенки, до сложни ефекти в реално време (като видео филтри). Но понякога тези шейдъри могат да имат не-графични изходи и позволяват на графичен процесор (който има по-добра специализация в изчисленията с плаваща запетая) да може да извършва операции, които процесорът би струвал повече.
Така че, въпреки че GPU може да прави тези матрични изчисления, използването на този MCC е по-скоро предварително изчисление преди чертежа. Предварително изчисление, получено от добавената реалност.
В 3D графиката използваме матрица 4 × 4 елемента, за да трансформираме от локалната координатна система на обекта, който обработваме, в координатно пространство от реалния свят, което представлява това, което вижда камерата. Колоните на матрицата ни дават координатите на нашата локална координатна система по отношение на реалния свят.
Използваме 4 компонента вместо 3, които биха били вертикалната, хоризонталната и дълбочинната точка, за да представят координати в 3D пространство (x, y, z) от начина, по който векторите и точките са представени с помощта на хомогенни координати. Координатна система в 3D пространството се състои от 4 компонента: осите 3 x, y и z и началото. Следователно всеки вектор в 3D пространство е линейна комбинация от 3 оси, където колоните x, y, z и w са матрица. Тъй като всяка точка в 3D пространството е представена от начало плюс вектор. Произходът на координатите на реалния свят в добавената реалност е камерата, която претърпява свои собствени трансформации, когато се движи в ръката ни.
По същество всеки обект има свое собствено координатно пространство и ние трябва да го трансформираме в координатното пространство на средата, където ще го поставим. Четвъртата колона в матрицата е тази, която представлява хомогенната координата и ни позволява да умножим матрицата заедно, за да получим преобразуването на всяка точка. В зависимост от редовете и колоните, които искаме да променим в матрицата, ще получим преводи, мащабиране, завъртане, деформация ... операции, които да бъдат приложени към една или повече от осите x, y или z в зависимост от изчислението.
Това ще бъдат изчисленията, които ще направят новия MCC чип: операции с матрици, които ще позволят да се изчисли как се движат камерата и гледната точка, както и как да се преместят всеки от 3D обектите в сцената, така че съответните промени да бъдат приложени и да позволят да се създаде ефектът от присъствието в реалността.
Разширена реалност, разбиране на сцената
Основата на добавената реалност е разбирането на сцени, тоест това, което камерата вижда дори отвъд фокуса или равнината, които виждаме в определен момент. Изчислете и направете векторна карта на всичко, което виждате, допълвайки стаята, в която се намираме, когато преместваме устройството. Акселерометрите и цифровият жироскоп казват на системата как преместваме камерата, така че тя да знае къде да отиде, като завърши сканирането си.
За всяко изображение, което виждате, трябва да изчислите дълбочината и разстоянието, на което се намира всеки елемент, и от iOS 13 да определите кои части трябва да бъдат изчертани или не въз основа на оклузията на хората (достъпно само за процесори A12 нататък). По този начин, ако имам поставена виртуална ваза на масата и сложа ръката си „пред нея“, устройството ще спре да рисува пикселите там, където разпознава ръката ми за да създаде впечатлението, че виртуалният обект е зад него и го покривам.
Всичко това се постига с функционални точки (или функционални точки). Точки, които той поставя върху онези вертикални или хоризонтални повърхности (които не виждаме, освен ако не го активираме за отстраняване на грешки) открива по това как светлината се пречупва върху различните елементи в изображението и как компютърното зрение на устройството интерпретира и разпознава всеки обект. Когато на повърхността има много функционални точки, тя открива равнина (вертикална или хоризонтална) и върху нея можем (виртуално) да поставяме обекти.
Но когато преместваме мобилния телефон и на екрана има виртуален елемент (или няколко), има много тежък процес за системата, който досега се извършваше от процесора: изчисляването на трансформацията на матриците, които дават координати в 3D пространство до позицията на всеки елемент. На матрица 4 × 4, която предполага положение по оста x, оста y, дълбочина (ос z) и начало. Изчисление, което трябва да се направи 60 пъти в секунда, за да се синхронизира видяното от камерата с виртуалния свят, който генерира.
Поради тази причина Apple ще включи този нов математически съпроцесор, чиито входни регистри, вместо скаларни данни с едно измерение (като конвенционален процесор), ще бъдат четиримерни матрици по подобен начин на TPU (или невронни двигатели), но със специфични операции за тези изчисления в 3D пространство така че по предварително изчислен начин помага да се рисува с по-голяма точност, като се загрява по-малко устройството и се консумира по-малко енергия.
Определено много ценна поддръжка за компютърно зрение, приложена към разширената реалност и нова малка стъпка към очилата с добавена реалност на Apple, която за пореден път показва, че очилата ще бъдат до голяма степен пасивни и че всички изчисления ще бъдат направени от устройството (както Apple Watch прави днес).
Надявам се, че сте разбрали защо Apple е взела това решение и как се вписва в цялата ви архитектура на процесора. Без съмнение, още една стъпка към бъдещето. След няколко седмици ще оставим съмнения.