Теоретическая и реальная производительность Intel AMX
AMX (Advanced Matrix Extension) - это модуль аппаратного ускорения умножения матриц, который появился в серверных процессорах Intel Xeon Scalable, начиная с 4 поколения (архитектура Sapphire Rapids).
В начале этого года ко мне в руки наконец попал сервер, с данным типом процессора.
Конкретно модель Xeon(R) Gold 5412U - это 24 ядерный процессор с тактовой частотой в 2.1 GHz. При этом 8 приоритетных ядер могут разгонятся до 2.3 GHz, а 1 ядро до 3.9 GHz в Turbo Boost). Кроме того данный процессор поддерживает 8 канальную DDR-5 4400 MT/s.
Мне как человеку, достаточно долгое время посвятившему оптимизации алгоритмов компьютерного зрения и запуска нейронный сетей на CPU (библиотеки Simd и Synet), было интересно: на сколько AMX позволяет реально ускорить вычисления и как извлечь из него максимальную производительность.
Далее я постараюсь максимально подробно ответить на данные вопросы. Прежде все я буду касаться вопросов однопоточной производительности (многопоточную рассмотрю позже).
Далее много кода на С++...
#amx #simd #умножение_матриц #с_ #инференс | @habr_ai
AMX (Advanced Matrix Extension) - это модуль аппаратного ускорения умножения матриц, который появился в серверных процессорах Intel Xeon Scalable, начиная с 4 поколения (архитектура Sapphire Rapids).
В начале этого года ко мне в руки наконец попал сервер, с данным типом процессора.
Конкретно модель Xeon(R) Gold 5412U - это 24 ядерный процессор с тактовой частотой в 2.1 GHz. При этом 8 приоритетных ядер могут разгонятся до 2.3 GHz, а 1 ядро до 3.9 GHz в Turbo Boost). Кроме того данный процессор поддерживает 8 канальную DDR-5 4400 MT/s.
Мне как человеку, достаточно долгое время посвятившему оптимизации алгоритмов компьютерного зрения и запуска нейронный сетей на CPU (библиотеки Simd и Synet), было интересно: на сколько AMX позволяет реально ускорить вычисления и как извлечь из него максимальную производительность.
Далее я постараюсь максимально подробно ответить на данные вопросы. Прежде все я буду касаться вопросов однопоточной производительности (многопоточную рассмотрю позже).
Далее много кода на С++...
#amx #simd #умножение_матриц #с_ #инференс | @habr_ai
Хабр
Теоретическая и реальная производительность Intel AMX
Введение AMX (Advanced Matrix Extension) - это модуль аппаратного ускорения умножения матриц, который появился в серверных процессорах Intel Xeon Scalable, начиная с 4 поколения (архитектура Sapphire...
Сказ о том, как мы искали новые векторные расширения на ARM
Мы в Smart Engines активно занимаемся низкоуровневой оптимизацией нейронных сетей. Наши библиотеки работают на центральных процессорах, поэтому мы активно используем Single Instruction Multiple Data (SIMD) расширения. SSE, AVX и NEON уже стали привычными, но в свежих версиях архитектуры ARM были представлены новые расширения: SVE, SVE2, а также SME. Вот о них мы и поговорим в этой статье.
Читать далее
#simd #armv8 #sve #sme #neon #процессоры #нейронные_сети #оптимизация | @habr_ai
Мы в Smart Engines активно занимаемся низкоуровневой оптимизацией нейронных сетей. Наши библиотеки работают на центральных процессорах, поэтому мы активно используем Single Instruction Multiple Data (SIMD) расширения. SSE, AVX и NEON уже стали привычными, но в свежих версиях архитектуры ARM были представлены новые расширения: SVE, SVE2, а также SME. Вот о них мы и поговорим в этой статье.
Читать далее
#simd #armv8 #sve #sme #neon #процессоры #нейронные_сети #оптимизация | @habr_ai
Хабр
Сказ о том, как мы искали новые векторные расширения на ARM
Мы в Smart Engines активно занимаемся низкоуровневой оптимизацией нейронных сетей. Наши библиотеки работают на центральных процессорах, поэтому мы активно используем Single Instruction Multiple Data...
[Перевод] Объяснение графических процессоров для тех, кто привык работать с ЦП
За годы работы я подробно изучил, как центральные процессоры (CPU) выполняют код и как они устроены внутри. Дело в том, что я участвовал в разработке ядра Linux и ScyllaDB, а этот код очень близок к металлу. Я даже немного баловался с Verilog, безрезультатно попытавшись собрать моё собственное ядро RISC-V.
Графические процессоры (GPU) в отличие от обычных в основном оставались для меня чёрным ящиком, несмотря на то, что поработать с ними всё-таки довелось. Помню, что экспериментировал с NVIDIA RIVA 128 или чем-то подобным, проверяя, как там работает DirectX. Тогда такие процессоры ещё не выделялись на фоне ускорителей 3D-графики. Я также пытался идти в ногу со временем и немного упражнялся в программировании элементарных шейдеров на современных GPU. Но я никогда глубоко не вдавался в работу с GPU, и мои взгляды можно назвать CPU-центричными.
Однако, поскольку сегодня наблюдается всплеск рабочих нагрузок, связанных с ИИ, и, в частности, приходится работать с большими языковыми моделями (БЯМ), графические процессоры становятся незаменимыми для современных вычислений. К задачам, решаемым с применением ИИ, относятся масштабные прикладные тензорные операции, в том числе — сложение и перемножение матриц. А это уже работа для GPU. Но как современный GPU выполняет их, и насколько при этом возрастает эффективность по сравнению с выполнением таких же рабочих нагрузок на CPU? Читать далее
#timeweb_статьи_перевод #gpu #linux #scylladb #nvidia #cpu #процессор #искусственный_интеллект #cuda #simd | @habr_ai
За годы работы я подробно изучил, как центральные процессоры (CPU) выполняют код и как они устроены внутри. Дело в том, что я участвовал в разработке ядра Linux и ScyllaDB, а этот код очень близок к металлу. Я даже немного баловался с Verilog, безрезультатно попытавшись собрать моё собственное ядро RISC-V.
Графические процессоры (GPU) в отличие от обычных в основном оставались для меня чёрным ящиком, несмотря на то, что поработать с ними всё-таки довелось. Помню, что экспериментировал с NVIDIA RIVA 128 или чем-то подобным, проверяя, как там работает DirectX. Тогда такие процессоры ещё не выделялись на фоне ускорителей 3D-графики. Я также пытался идти в ногу со временем и немного упражнялся в программировании элементарных шейдеров на современных GPU. Но я никогда глубоко не вдавался в работу с GPU, и мои взгляды можно назвать CPU-центричными.
Однако, поскольку сегодня наблюдается всплеск рабочих нагрузок, связанных с ИИ, и, в частности, приходится работать с большими языковыми моделями (БЯМ), графические процессоры становятся незаменимыми для современных вычислений. К задачам, решаемым с применением ИИ, относятся масштабные прикладные тензорные операции, в том числе — сложение и перемножение матриц. А это уже работа для GPU. Но как современный GPU выполняет их, и насколько при этом возрастает эффективность по сравнению с выполнением таких же рабочих нагрузок на CPU? Читать далее
#timeweb_статьи_перевод #gpu #linux #scylladb #nvidia #cpu #процессор #искусственный_интеллект #cuda #simd | @habr_ai
Хабр
Объяснение графических процессоров для тех, кто привык работать с ЦП
За годы работы я подробно изучил, как центральные процессоры (CPU) выполняют код и как они устроены внутри. Дело в том, что я участвовал в разработке ядра Linux и ScyllaDB, а этот код очень близок к...
Оптимизация языковой модели Mamba для выполнения на CPU
Как оптимизировать модель Mamba для выполнения на CPU? Ускоряем код в 20 раз по сравнению с PyTorch, нарушая в процессе все правила оптимизации. Читать далее
#mamba #simd #векторизация #оптимизация_кода | @habr_ai
Как оптимизировать модель Mamba для выполнения на CPU? Ускоряем код в 20 раз по сравнению с PyTorch, нарушая в процессе все правила оптимизации. Читать далее
#mamba #simd #векторизация #оптимизация_кода | @habr_ai
Хабр
Оптимизация языковой модели Mamba для выполнения на CPU
Большие языковые модели с успехом применяются в биоинформатике. Неудивительно, ведь язык биологических последовательностей – всего лишь часть множества знаковых систем, существующих в природе. Но есть...
Оптимизация языковой модели Mamba для выполнения на CPU
Как оптимизировать модель Mamba для выполнения на CPU? Ускоряем код в 20 раз по сравнению с PyTorch, нарушая в процессе все правила оптимизации. Читать далее
#mamba #simd #векторизация #оптимизация_кода | @habr_ai
Как оптимизировать модель Mamba для выполнения на CPU? Ускоряем код в 20 раз по сравнению с PyTorch, нарушая в процессе все правила оптимизации. Читать далее
#mamba #simd #векторизация #оптимизация_кода | @habr_ai
Хабр
Оптимизация языковой модели Mamba для выполнения на CPU
Большие языковые модели с успехом применяются в биоинформатике. Неудивительно, ведь язык биологических последовательностей – всего лишь часть множества знаковых систем, существующих в природе. Но есть...