Хабр / ML & AI
482 subscribers
5.49K links
Telegram-канал, где вы можете найти публикации из RSS-фидов тематических хабов "Машинное обучение" и "Искусственный интеллект" портала Хабр.

Данный канал не является официальным представительством платформы Хабр.

Администратор - @evilfreelancer
Download Telegram
Теоретическая и реальная производительность 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
Сказ о том, как мы искали новые векторные расширения на ARM

Мы в Smart Engines активно занимаемся низкоуровневой оптимизацией нейронных сетей. Наши библиотеки работают на центральных процессорах, поэтому мы активно используем Single Instruction Multiple Data (SIMD) расширения. SSE, AVX и NEON уже стали привычными, но в свежих версиях архитектуры ARM были представлены новые расширения: SVE, SVE2, а также SME. Вот о них мы и поговорим в этой статье.

Читать далее

#simd #armv8 #sve #sme #neon #процессоры #нейронные_сети #оптимизация | @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