Как стать автором
Обновить

Как выжать 1,5 терафлопса производительности для 32-битных чисел с плавающей точкой на одном процессоре M1

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров7.7K
Всего голосов 9: ↑8 и ↓1+7
Комментарии11

Комментарии 11

Как ни странно, Apple прячет от нас эту штуку!

Прячет во фреймворк? Не то чтобы это было большой проблемой.

AMX работает примерно как  Scalable Matrix Extension (SME) дляARMv9. Не удивлюсь что это просто пробник для полноценной реализации v9.

https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/scalable-matrix-extension-armv9-a-architecture

Я совсем не местный. В презентациях от Apple заявляют, что у них есть специализированные ML/AI чипы. Вот то, что в статье - это они?

А если не они, то почему бы не х не задействовать? Они же должны быть быстрее за счёт большей специализации, нет?

Первый раз слышу аббревиатуру AMX в контексте армовых процессоров от Apple. Это официальная аббревиатура? Интересно как они с Интелом договорились...

Первый раз слышу аббревиатуру AMX

Отреверсили эти команды ещё в 2020.

https://gist.github.com/dougallj/7a75a3be1ec69ca550e7c36dc75e0d6f

Интересно как они с Интелом договорились...

О чём? AMX это не трейдмарк, а недокументированное расширение.

А что там хакеры вытащили на свет никого не волнует.

Вот об этом и спрашивал - у Интела то оно вполне документировано. То есть Apple официально эти команды никак не называет?

Ну и больше оно похоже именно на интеловский вариант с фиксированными размерами векторов/матриц, основная фишка SVE/SME - в том, что бинарный код не привязан к размеру и эффективно работает на разном железе без перекомпиляции.

То есть Apple официально эти команды никак не называет?

Официально этих команд не существует. ARM запрещает изменять ISA.

Ну и больше оно похоже именно на интеловский вариант с фиксированными размерами векторов/матриц

Нет, т.к. они выполняют разные операции.

У Интел умножение матриц, а тут произведение двух векторов (outer product).

Откройте ссылку в моём первом комментарии, там всё наглядно показано.

Интеловский AMX - это "Matrix Multiply" ARM v8.6

Яблочный AMX - это именно SME в ARM v9

Фиксированность размера это незначительная деталь.

По такой логике линейка больше похожа на кирпич, а не на рулетку.

Ведь и линейка и кирпич фиксированного размера =)

Бегло прошёлся - вроде у Apple тоже матрицы множатся(скажем, операции 20 и 21 - и до этого пишут про multiply and add, а outer product - это вроде как кучка произведений без свёртки).

Можно же вот так

Нельзя. Кастомные инструкции ARM позволяет делать лишь в некоторых своих ядрах для встроенных применений (Cortex-M).

Это сделано только для того чтобы люди не сваливали на RISC-V.

В ядрах уровня Application Processor/Server так делать нельзя (даже в созданных по архитектурной лицензии, как процессоры Apple).

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

Но Apple

1) Не продаёт свои процессоры на открытом рынке

2) Продвигает процессоры как Apple Silicon, а не как ARM

3) Никому ничего не говорит про свои недокументированные фичи

Понятно. Правда, в новостях поддержку на Cortex подавали как первый шаг - но вроде с 2019 года ничего не поменялось.

A100 скорость в сто раз выше (156 терафлопсов).

Это теоретический максимум A100 если их будет минимум 8 штук.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий