home.social

#матричное_умножение — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #матричное_умножение, aggregated by home.social.

fetched live
  1. Усредняющие сети: как ускорить 8-битные сети почти без потери точности

    Чтобы распознать документ на смартфоне , мало хорошо обучить нейросеть читать текст. Нужно ещё добиться, чтобы она делала это быстро на процессоре самого устройства. При разработке Smart Document Engine, системы распознавания и анализа документов , мы решаем именно такие задачи: обработка должна выполняться локально, а вычислительные ресурсы ограничены. Поэтому для нас поиск более экономных способов вычисления нейронных сетей — вполне практическая задача. Один из привычных способов ускорить нейросеть — квантование. Переход от вычислений с плавающей запятой к 8-битным целым числам позволяет получить более быструю модель с близкой точностью. Можно пойти дальше: ранее мы предложили 4.6-битные сети, сравнимые по скорости с 4-битными, но заметно превосходящие их по точности. Однако уменьшение разрядности — не единственное, что можно изменить в нейросетевых вычислениях. Что, если оставить веса и входные данные 8-битными, а пересмотреть способ накопления результатов умножения? В этой статье мы расскажем об алгоритме, который вместо точного суммирования использует последовательное усреднение по дереву. Такой подход позволяет дольше сохранять промежуточные результаты в 16-битном формате и эффективнее использовать SIMD-регистры. В наших экспериментах на ARM NEON это позволило сократить время матричного умножения. Разберёмся, какой погрешностью приходится платить за ускорение, как она влияет на точность нейросетей и что удаётся восстановить дообучением.

    habr.com/ru/companies/smarteng

    #оптимизация #нейронные_сети #simd #матричное_умножение #arm_neon #8битные_вычисления #усредняющие_сети

  2. [Перевод] Решаем проблему качества в Factorio при помощи матриц

    Я играю в Factorio как любой нормальный человек: для планирования фабрики пишу код матричных вычислений. Но до этого мы ещё доберёмся. Если же вам не терпится, можете просмотреть мой новый онлайн-калькулятор . Введение в Factorio и качество Factorio практически стала создателем жанра видеоигр «строительство фабрики»: мы играем за персонажа, который собирает ресурсы и комбинирует их для изготовления всё более сложных изделий, которые, в свою очередь, позволяют заниматься ещё более сложным изготовлением. По описанию это походит на Minecraft и на многие другие игры-выживалки, но фабрикостроительные игры отличает от них упор на автоматизацию: очень скоро всё производство начинает выполняться не вручную персонажем, а всё большим количеством механизмов с различными видами логистики, например, конвейерными лентами, перемещающими изделия между механизмами. Разработчики некоторых игр этого жанра пошли ещё дальше и полностью избавились от персонажа игрока. В процессе разблокировки новых внутриигровых «технологий» Factorio предоставляет всё больше механизмов, совершенствующих производство. Один из них — это модули: производственные машины, имеющие определённое (ограниченное) количество слотов для приёма различных видов модулей, влияющих на их характеристики: модули скорости ускоряют работу машины ценой повышенного энергопотребления, модули продуктивности повышают выпуск продукции из того же количества ингредиентов ценой скорости и энергии и так далее. Выпущенное в 2024 году расширение Space Age добавило новые игровые механики, в том числе и качество (Quality): у каждого изделия и рецепта теперь есть пять уровней качества: ⚀ обычное, ⚁ необычное, ⚂ редкое, ⚃ эпическое и ⚄ легендарное. Каждый уровень (в зависимости от конкретного изделия) повышает характеристики, например, ускоряя производственные машины или повышая производительность модулей продуктивности. Высококачественные изделия можно изготавливать непосредственно из ингредиентов того же качества, однако единственный способ повышения качества — это применение новых модулей качества.

    habr.com/ru/companies/ruvds/ar

    #factorio #матричное_умножение #матрицы #вероятности #ruvds_перевод

  3. Попробуйте найти примеры кода для SME — я подожду

    В этой части мы проверим, есть ли у SME учебная дорога, сравнимая с той, которую получили тензорные ядра GPU; затем разберём два реально полезных источника: Arm Learning Path и KleidiAI; после этого отделим то, чему они действительно учат, от того, где они останавливаются. К концу главы станет видно, какая именно «середина лестницы» отсутствует и почему следующая часть неизбежно приводит к BLIS.

    habr.com/ru/articles/1066766/

    #SME2 #ARM #матричное_умножение #микроядро #векторизация #SIMD #SVE #оптимизация #тензорные_ядра #машинное_обучение

  4. Обзор UDTF в PySpark

    Привет, Хабр! Сегодня разберём фичу из PySpark — UDTF . Если раньше мы писали UDF и UDAF, то UDTF — это про функцию, которая запускается в секции FROM запроса и возвращает как бы несколько стро» для каждой входной записи Звучит круто. UDTFs пригодятся, когда на один входной объект нужно получить множество выходных строк. Простой пример: у нас есть строка текста и мы хотим разделить её на слова так, чтобы каждое слово вышло отдельной строкой. Со стандартным UDF такое не сделать (он возвращает одно значение, например конкатенацию или длину). Но UDTF может делать цикл yield внутри и выдавать сколько угодно строк. Итак, приступим к делу.

    habr.com/ru/companies/otus/art

    #python #матричное_умножение #big_data #распределённые_вычисления #кластер #производительность

  5. Всё что нужно знать про torch.sparse

    Разработчики PyTorch предоставили модуль torch.sparse для работы с разреженными тензорами , где большинство элементов – нули. Зачем это нужно? Представьте матрицу смежности графа, сильно обрезанную сеть или облако точек – хранить такие данные плотным массивом без надобности расточительно. Разрежённая структура сохраняет только ненулевые элементы и их индексы, что сильно экономит память и ускоряет вычисления . Например, матрица размером 10,000 на 10,000 с 100 000 ненулевых float-значений в разрежённом COO-формате займёт не 400 МБ, а около 2 МБ. Несмотря на перспективы, API разрежённых тензоров в PyTorch пока в бете и может менять крошечные детали . Будьте к этому готовы: часть операций поддерживается, часть – нет, и некоторые автоград-ячейки пока работают только для COO, а для CSR, например, градиент не считается. Но обо всём по порядку.

    habr.com/ru/companies/otus/art

    #ml #Data_Science #разрежённые_тензоры #PyTorch #оптимизация_памяти #torchsparse #матричное_умножение

  6. [Перевод] Как исследователи нарушают привычные подходы в ИИ, исключая матричное умножение

    Привет, на связи Елена Кузнецова, специалист по автоматизации Шерпа Роботикс. Сегодня я перевела для вас статью, посвященную использованию моделей ИИ без лишней математики. Все мы знаем, что нейросети - дело энергозатратное. А описанные в статье исследования могут помочь снизить энергопотребление в работе нейросетей. Исследователи из Университета Калифорнии в Санта-Круз, UC Дэвис, LuxiTech и Университета Сучжоу объявили о разработке нового подхода к оптимизации работы языковых моделей ИИ, который исключает матричное умножение из вычислительных процессов. Это принципиально меняет операции нейронных сетей, которые в настоящее время ускоряются с помощью графических процессоров (GPU). Результаты работы, изложенные в недавней препринте, могут существенно повлиять на экологическую устойчивость и операционные расходы систем ИИ.

    habr.com/ru/companies/sherpa_r

    #матричное_умножение #MLGRU #glu

  7. Математика матричных расширений: как происходит умножение матриц на примере T-Head Matrix Extension

    Привет, Хабр! Я Андрей Соколов, инженер-программист в группе разработки математических библиотек. Месяц назад моя коллега Валерия запустила цикл статей про матричные расширения, ускоряющие операции над матрицами. Вы уже смогли узнать, что они делают и какие существуют, какие из них разрабатываются для открытой архитектуры RISC-V. В заключительной статье цикла разберем пример использования матричного расширения T-Head под RISC-V для реализации алгоритма матричного умножения. Сначала кратко рассмотрим наивную скалярную реализацию и блочный вариант алгоритма. Затем реализуем аналогичный вариант с использованием матричного расширения — как для квадратных матриц, так и матриц произвольного размера. Второй случай интересен тем, что возникает необходимость обработки так называемых «хвостов» — блоков неправильной конфигурации. В заключение немного расскажу, какие идеи можно использовать для дальнейшей оптимизации матричного умножения, и поделюсь полезными ссылками. Статья не показывает пошаговую оптимизацию умножения матриц для достижения максимума FLOPS и не учит, как писать вычислительные ядра на ассемблере. Она демонстрирует использование матричного расширения и основные идеи оптимизации матричного умножения. Постарался описать все простыми словами, с иллюстрациями и небольшими вставками кода.

    habr.com/ru/companies/yadro/ar

    #riscv #thead #матричные_вычисления #матричные_расширения #матричное_умножение #математика

  8. Погружение в матрицу: расширение RISC-V от T-Head

    Продолжим нашу «антологию матричных расширений» текстом про независимое матричное расширение RISC-V от компании T-Head. Почему мы рассматриваем именно его? Интересно понять, что из себя представляет будущее стандартное матричное расширение RISC-V, попробовать реализовать алгоритм с его использованием, соотнести это со своим предыдущим опытом низкоуровневых оптимизаций. Кроме того, это интересная возможность попробовать написать программу для расширения, которого еще нет ни в одном процессоре, и запустить ее на эмуляторе. А еще ISA этого расширения весьма минималистична и, на мой взгляд, идеально подходит для тех, кто никогда не использовал матричные расширения в своем коде, но хочет попробовать (или узнать, как это выглядит изнутри). Не переживайте, текст не требует опыта низкоуровневых оптимизаций математических библиотек: погружение в матрицу будет постепенным. Начать погружение

    habr.com/ru/companies/yadro/ar

    #thead #матричное_расширение #матричное_умножение #операции #risvv #низкоуровневая_оптимизация #библиотеки #линейная_алгебра

  9. [Перевод] Справочник по применению GPU в машинном обучении

    Это перевод популярного лонгрида Тима Детмерса " Выбор графического процессора для глубокого обучения: мой опыт и советы ". Глубокое обучение (Deep learning, DL) - область с высокими вычислительными требованиями, и выбор графического процессора будет в корне определять ваши возможности в этой сфере. Какие характеристики важны при выборе нового GPU? Оперативная память GPU, ядра, тензорные ядра, кэш? Как сделать экономически эффективный выбор? Мы рассмотрим эти вопросы, заодно разберемся с распространенными заблуждениями, разберемся в характеристиках GPU, дадим советы, которые помогут вам сделать правильный выбор.

    habr.com/ru/articles/818963/

    #GPU #deep_learning #матричное_умножение

  10. [Перевод] Новый прорыв приближает умножение матриц к идеалу

    Устранив скрытую неэффективность, учёные придумали новый способ умножения больших матриц, который работает быстрее, чем когда-либо. Учёные, занимающиеся информатикой, — это требовательная группа. Им недостаточно получить правильный ответ — цель почти всегда состоит в том, чтобы получить ответ как можно эффективнее. Возьмем, к примеру, умножение матриц или массивов чисел. В 1812 году французский математик Жак Филипп Мари Бине разработал базовый набор правил, которым мы до сих пор обучаем студентов. Это работает прекрасно, но другие математики нашли способы упростить и ускорить процесс умножения матриц.

    habr.com/ru/companies/first/ar

    #матричное_умножение #матрица #информатика #алгоритмы #лазерный_метод #алгоритм_штрассена

Share on Mastodon

Enter the server where you have an account.