Прочитал безумно интересную статью о новом алгоритме для перемножения матрицы на неё же, но перевёрнутую – транспонированную. Если вы когда-либо применяли PCA (метод главных компонент) или линейную регрессию, то там используется эта операция. Как и ещё в куче мест Не без помощи ИИ авторы нашли алгоритм, который делает это быстрее! Матрицы можно перемножать эффективнее, чем так как вас учили в университете – это показал Штрассен ещё в прошлом веке. А некоторые частные случаи могут быть решены ещё быстрее. Например, для матриц специального размера это совсем недавно показали в Дипмайнде. А перемножение матрицы на её транспонированную обладает симметричной структурой, которой можно воспользоваться для ещё более эффективного алгоритма Однако в комментариях к посту о статье жаловались, что авторы не провели эксперименты на GPU – видеокартах. А это как раз самое интересное, все самые тяжёлые вычисления (как, например, тренировка больших языковых моделей) происходят на них. Мне захотелось потратить выходные, чтобы написать этот алгоритм для видеокарт, а заодно стряхнуть пыль со знаний C++ и разобраться как вообще выглядит такое программирование Три недели спустя алгоритм был наконец написан, а баги отловлены. В процессе мне удалось его даже улучшить. Для вычисления результата авторы вводят 47 дополнительных переменных. На видеокартах заводить дополнительные переменные и выделять память под них – дорого, важно избежать каждой лишней операции. И мне удалось вместить все вычисления в память результирующей матрицы. Выделять дополнительную не нужно совсем! К моему удивлению, готовый алгоритм заработал медленнее, чем стандартный из библиотеки от NVIDIA. Пусть в ней и не оптимальный алгоритм, куча инженеров и миллионы долларов, потраченных на их работу, привели к тому, что он отполирован донельзя и работает лучше, чем теоретически более быстрый. Впрочем, нам удалось догнать и перегнать стандартный алгоритм на больших матрицах. И это с минимумом оптимизаций! Если написать более низкоуровневый алгоритм на уровне ядер, вычисления станут ещё быстрее Если вам близка эта тема, загляните в репозиторий: https://github.com/VladimirShitov/RTXX-CUDA . Звёздочки (а тем более улучшения) крайне приветствуются! #программирование@chelovek_nauk
Прочитал безумно интересную статью о новом алгоритме для перемножения матрицы…
Из этого канала
- #1124В нвидии не смогли принять что ллмный РЛ ВСЁ и поресечили на тему того, чтобы…
В нвидии не смогли принять что ллмный РЛ ВСЁ и поресечили на тему того, чтобы RL не схлопывал pass@k у базовой модельки.
- #1127небольшой чатгптшный ресечик по ии в биологии Прям понравился
небольшой чатгптшный ресечик по ии в биологии Прям понравился
- #1128Channel allows Direct Messages for 🕺🕺🕺 each
Channel allows Direct Messages for 🕺🕺🕺 each
- #1122Чот призадумался с обновой R1 от дипсика, а наступят ли времена когда…
Чот призадумался с обновой R1 от дипсика, а наступят ли времена когда опенсурсные модельки будут обходить закрытые? Что думаете? Условно я NewCompanyName, хочу…
- #1121Выложили QVikhr-3-1.7B на основе Qwen-3-1.7B, лучшая в классе и обгоняет лучшие…
Выложили QVikhr-3-1.7B на основе Qwen-3-1.7B, лучшая в классе и обгоняет лучшие модели. Ризонинг прямо сейчас выключен, будет позже.