Pull to refresh
51
0
Денис Глазков @denisskin

Разработчик

Send message

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

Reading time13 min
Views8.1K

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

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

Статья не показывает пошаговую оптимизацию умножения матриц для достижения максимума FLOPS и не учит, как писать вычислительные ядра на ассемблере. Она демонстрирует использование матричного расширения и основные идеи оптимизации матричного умножения. Постарался описать все простыми словами, с иллюстрациями и небольшими вставками кода.

Читать далее
Total votes 26: ↑26 and ↓0+37
Comments7

Революционный подход к нейросетям: рассказываем про KAN (Kolmogorov-Arnold Networks)

Level of difficultyMedium
Reading time12 min
Views18K

Эволюция архитектуры нейронных сетей уходит корнями в фундаментальные работы, заложенные в 1940-х годах Уорреном Маккаллохом и Уолтером Питcом, которые предложили концепцию искусственных нейронов и их взаимосвязь. 

Однако значительные прорывы произошли только в 1980-х годах с разработкой алгоритмов обратного распространения ошибки: алгоритм Геоффри Хинтона и других – все это позволило создавать более глубокие нейронные сети и улучшить методы обучения. 

В это время появились классические архитектуры, многослойные перцептроны (MLP,  и сверточные нейронные сети (CNN), которые революционизировали различные области, включая компьютерное зрение, обработку естественного языка и распознавание образов – теперь мы говорим про своего рода инновационную архитектуру. 

Читать далее
Total votes 26: ↑24 and ↓2+26
Comments10

Пишем веб-компонент для svg иконок

Level of difficultyMedium
Reading time4 min
Views4.2K

Всем привет! Сегодня мы рассмотрим один из вариантов интеграции svg иконок в наш фронтенд проект используя веб-компоненты. Основная идея компонента заключается в том, чтобы лениво подгружать в SVG спрайт иконки и переиспользовать уже загруженные иконки при необходимости. Сами иконки будем вставлять в разметке в виде <svg-icon name="arrow-angle-down"> нам понадобится всего сотня строк кода! Кому интересна реализация, прошу под кат!

Читать далее
Total votes 7: ↑6 and ↓1+6
Comments21

Эксперимент: сделать Telegram канал и зарабатывать на рекламе больше 500 тысяч в месяц

Reading time8 min
Views132K

Привет! Меня зовут Аня!
Хабр я читаю уже давно, решила что теперь и у меня есть интересный материал, чтобы с вами поделиться :)

В начале 2023 года начала заниматься Telegram каналами и за 10 месяцев я создала 6 каналов в Telegram, на которые подписано уже более 70 000 подписчиков.

До Telegram я занималась парсингом данных сайтов на VB, созданием сайтов (wordpress, tilda) и бизнес-презентациями. Был даже свой собственный интернет-магазин детских товаров 2 года (опыт был неудачным, тогда еще нельзя было продавать через маркетплейсы )) 

Я расскажу вам о своем опыте создания и монетизации Telegram-каналов, об ошибках, которые я допустила в начале своего пути, и постараюсь сформулировать основные принципы и возможности заработка в этой сфере (кстати считаю, что IT -тематика одна из самых перспективных сегодня для создания телеграм-канала) 

Читать далее
Total votes 149: ↑35 and ↓114-72
Comments81

Anytype вместо Notion

Level of difficultyEasy
Reading time2 min
Views30K

Да, N это очень круто, не спорю, но однажды у меня в N закончилось место в 1000 блоков (в A пространство так же ограничено 1Гб, но об этом позже) и дальше заметки вести невозможно, и N предлагает апгрейд

Читать далее
Total votes 7: ↑6 and ↓1+8
Comments43

Perfusion. Это как Midjourney, только лучше

Level of difficultyEasy
Reading time7 min
Views21K

Когда дело доходит до автоматического создания изображений на основе собственных идей, на помощь приходят две самых популярных среди пользователей нейросети — DALL-E 2 и Midjourney. Обе являются инструментами, способными создавать реалистичные изображения с хорошим качеством. Эти ИИ обычно понимают, чего вы хотите, и пытаются генерировать новые изображения, в том числе что-то похожее на конкретный пример, но часто можно увидеть, что результат совершенно не соответствует запросам. Что ж, это изменится с новой моделью от NVIDIA — Perfusion, нейросетью, которая позволяет создавать изображения из описаний на естественном языке.

В отличие от своих тяжеловесных конкурентов, Perfusion выделяется компактным размером моделей всего в 100 КБ и 4-минутным временем обучения. Perfusion предлагает пользователям возможность комбинировать различные настраиваемые элементы с набором изображений, которые функционируют как «концепции». Модель способна изучить «концепцию» объекта (например, вещи, животного или человека), а затем генерировать эти концепции в новых сценариях.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments4

Разворачиваем веб-приложение в Kubernetes с нуля

Level of difficultyEasy
Reading time31 min
Views44K

Современные веб-приложения, даже простые на вид, часто подразумевают нетривиальную архитектуру, состоящую из многих компонент. В статье «Делаем современное веб-приложение с нуля» я рассказал, как она может выглядеть, и собрал для демонстрации простейшую реализацию на стеке из нескольких популярных технологий. В неё вошёл бэкенд, фронтенд, воркер для асинхронных задач и аж два хранилища данных — MongoDB как основная база и Redis как очередь задач. В «Делаем поиск в веб-приложении с нуля» я показал, как можно добавить полнотекстовый поиск, и подключил третье хранилище — Elasticsearch.

Всё это время для простоты разработки и отладки компоненты приложения запускались локально через Docker Compose. Но как развернуть такое приложение в настоящем продакшн-окружении? Как обеспечить горизонтальное масштабирование? Как раскатывать новые релизы без простоя? 

В этой статье мы разберёмся, как разворачивать многокомпонентное веб-приложение в кластере Kubernetes на примере его локальной реализации — minikube. Мы поднимем виртуальный кластер прямо на рабочем ноутбуке, разберёмся с основными сущностями Kubernetes, запустим и соединим между собой компоненты демо-приложения и обсудим, какие ещё возможности Kubernetes пригодятся нам в суровом энтерпрайзе. Если вы занимаетесь разработкой и слышали о Kubernetes, но ещё не имели возможности пощупать его руками — добро пожаловать под кат!

Скорее к YAML-инженерии
Total votes 38: ↑38 and ↓0+38
Comments10

Описательная статистика перформанс-распределений

Reading time40 min
Views17K

Нужна ли разработчику математика? Если анализировать замеры производительности, то матстатистика понадобится. Но оказывается, о ней полезно знать не совсем то, что в учебниках. А что тогда?

Андрей Акиньшин @DreamWalker поговорил об этом в докладе на нашей конференции Heisenbug. И теперь, пока мы готовим следующий Heisenbug (где тоже будут доклады о производительности), решили опубликовать текстовую версию его выступления (а для тех, кому удобнее другие форматы, прикрепляем видеозапись и слайды). Предупреждаем: много букв, цифр, графиков и формул!

Читать далее
Total votes 51: ↑51 and ↓0+51
Comments4

Как использовать Midjourney с умом

Level of difficultyEasy
Reading time10 min
Views22K

Мне довелось познакомиться с нейросетями совсем недавно. На работе дали задание — найти подходящую бесплатную картинку для сайта. В первую очередь, я вспомнил про Crayion (Бывший DALL-E), но качество результата на нем совсем меня не удивило. После этого я вспомнил о существовании Midjourney и о том, что разработчики предоставляют пробный доступ в Discord. Я подключился к серверу и сделал свою первую картинку. Результат был сногсшибательным.

Читать далее
Total votes 16: ↑14 and ↓2+16
Comments16

Моделируем 3D-персонажа для игры при помощи Midjourney

Level of difficultyEasy
Reading time4 min
Views28K
image

На примере любопытного небольшого прототипа я захотел проверить, сколько труда потребуется при использовании ИИ для создания максимально возможного количества графики 2,5D-игры в жанре point and click.

Было понятно, что искусственный интеллект без проблем справится с задниками, поскольку игра, фактически, остаётся по большей мере в 2D, но с персонажами ситуация чуть более сложная. Мне понадобится крайне быстрый конвейер работы, позволяющий использовать данные захвата движения, поэтому создание анимаций не окажется узким местом. Я должен был найти способ перенести сгенерированную ИИ графику в форму, которая приемлема для захвата движения.

Мне показалось, что лучше всего будет сгенерировать концепты персонажей при помощи ИИ, а затем смоделировать их в 3D.

Я работаю в игровой индустрии уже более двадцати лет, и в основном занимаюсь моделированием персонажей и фонов. Поэтому будет интересно проверить, позволит ли ИИ мне работать быстрее. И насколько?
Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments16

Что не так с китайским экономическим чудом, или почему оно закончилось?

Reading time9 min
Views72K

Еще совсем недавно многие экономисты предрекали Китаю и китайской экономике большое будущее. Некоторые известные экономисты, такие как Рей Далио, вообще выпускали целые книги, объясняющие, что цикл верховенства США в мире закончен, и теперь пришло время Китаю вырваться вперед.

Этот рывок Китая вперед также часто называют «Китайским экономическим чудом», но сейчас, похоже, что эра этого «чуда» подходит к концу. В этой статье мы попробуем проанализировать некоторые факторы, являющиеся ключевыми для понимания общей картины, и попытаемся выяснить, что вообще происходит в экономике Китая сегодня.

Все данные взяты из открытых авторитетных источников, но так как я несколько лет прожил в Китае до пандемии, поэтому некоторые аспекты могут быть рассказаны в том числе и немного субъективно, с учетом моего опыта.

Читать далее
Total votes 202: ↑178 and ↓24+187
Comments390

Дизерпанк — статья о дизеринге изображений, которую мне хотелось бы прочитать

Reading time18 min
Views27K

Мне всегда нравилась визуальная эстетика дизеринга (dithering, псевдотонирование, псевдосмешение цветов), но я не знал о том, как он применяется. Поэтому я провёл кое-какие изыскания. Эта статья может содержать отголоски ностальгии, но в ней не будет никаких следов Лены.

Читать далее
Total votes 147: ↑147 and ↓0+147
Comments26

10 лучших алгоритмов 20 века

Reading time7 min
Views46K
Прим. Эта статья была опубликована в майском номере 2000 года журнала SIAM. На рубеже веков появилась «мода» на подведение итогов уходящего столетия. И алгоритмы этой участи не избежали. В этой статье авторы делают обзор 10 лучших алгоритмов 20 века. Возможно, вам будет интересно узнать, какие алгоритмы, по мнению авторов списка, внесли наибольший вклад в развитие науки.

Algos — греческое слово, означающее боль. Algor — латинское слово, означающее холод. Но ни то, ни другое не является корнем слова «алгоритм», которое происходит от имени Аль-Хорезми – арабского ученого девятого века – чья книга «al-jabr wa’l muqabalah» (Китаб аль-джебр ва-ль-мукабала) переросла современные учебники по алгебре для средней школы. Аль-Хорезми подчеркивал важность методических процедур для решения задач. Будь он сегодня здесь, то, несомненно, был бы впечатлен вершинами математического метода, названного в его честь.

Часть из лучших алгоритмов компьютерной эры были освещены в январско-февральском выпуске 2000 года журнала Computing in Science & Engineering — совместном издании Американского института физики и Компьютерного общества IEEE. Приглашенные редакторы Jack Dongarra (Джек Донгарра) из Университета Теннесси и Francis Sullivan (Фрэнсис Салливан) из Института оборонного анализа составили список из 10 алгоритмов, который они назвали «Top Ten Algorithms of the Century».

«Мы попытались собрать 10 алгоритмов, оказавших наибольшее влияние на развитие и практику науки и техники в 20 веке», — пишут Донгарра и Салливан. По признанию авторов, как и в любом рейтинге, их выборы неизбежно будут спорными. Когда дело доходит до выбора лучшего алгоритма, кажется, что он и вовсе не существует.

Итак, вот список 10 лучших алгоритмов в хронологическом порядке. (Все даты и имена стоит воспринимать как аппроксимацию первого порядка. Большинство алгоритмов формируются в течение времени при участии многих ученых).
Читать дальше →
Total votes 38: ↑37 and ↓1+46
Comments44

Поднимаем личный shadowsocks+v2ray сервер для обхода блокировок

Reading time5 min
Views112K

Цель: открыть заблокированные провайдером сайты;

Примерное время: 30 минут;

Стоимость: бесплатно;

Что надо делать: нажимать кнопки, копировать и вставлять текст, читать простые слова на английском.

Project V - набор инструментов, которые помогут обойти замедление или полную блокировку сайтов. Он разработан азиатскими гениями для обхода великого китайского фаервола.

Читать далее
Total votes 14: ↑8 and ↓6+3
Comments21

Go и MySQL: настраиваем пул соединений

Reading time14 min
Views27K

Каждый день мы пишем код в условиях высоких нагрузок, и нередко в таких случаях сталкиваемся с проблемами, связанными с базой данных. Мы в компании используем MySQL, поэтому я расскажу про конфигурирование соединений с этой базой данных. Пройдемся по основным моментам, на которые нужно обращать внимание при работе с MySQL средствами языка Go: 

немного затронем основы клиент-серверного протокола MySQL, его базовое устройство и принципы работы;

дальше перейдем к Go части и разберем реализацию пула соединений;

будем двигаться от конфигурирования соединений к выполнению запросов, параллельно заглядывая в код драйвера.

Надеюсь каждый для себя найдет что-то полезное.

Поехали
Total votes 37: ↑36 and ↓1+42
Comments13

Понимание алгоритма БПФ

Reading time7 min
Views110K
Здравствуйте, друзья. Уже завтра стартует курс «Алгоритмы для разработчиков», а у нас остался один неопубликованный перевод. Собственно исправляемся и делимся с вами материалом. Поехали.

Быстрое преобразование Фурье (БПФ — англ. FFT) является одним из важнейших алгоритмов обработки сигналов и анализа данных. Я пользовался им годами, не имея формальных знаний в области компьютерных наук. Но на этой неделе мне пришло в голову, что я никогда не задавался вопросом, как БПФ так быстро вычисляет дискретное преобразование Фурье. Я стряхнул пыль со старой книги по алгоритмам, открыл ее, и с удовольствием прочитал об обманчиво простой вычислительной уловке, которую Дж. В. Кули и Джон Тьюки описали в своей классической работе 1965 года, посвященной этой теме.



Цель этого поста — окунуться в алгоритм БПФ Кули-Тьюки, объясняя симметрии, которые к нему приводят, и показать несколько простых реализаций на Python, применяющих теорию на практике. Я надеюсь, что это исследование даст специалистам по анализу данных, таким как я, более полную картину того, что происходит под капотом используемых нами алгоритмов.
Читать дальше →
Total votes 21: ↑16 and ↓5+11
Comments7

Yggdrasil Network: Заря бытовых меш-сетей, или Интернет будущего

Reading time11 min
Views43K

Плавно наступает эпоха меш-сетей. Как минимум, этот термин все чаще и чаще появляется в информационной сфере. Что привлекает внимание сетевиков и почему в заголовке статьи фигурирует понятие «бытовая меш-сеть»? Попробуем разобраться в вопросе, взяв для примера сеть Yggdrasil, как один из многообещающих прототипов. Статья рассчитана на широкий круг читателей.

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments52

Что запрещает принцип Паули?

Reading time7 min
Views29K

Принцип запрета Паули с однозначной многочастичной волновой функцией эквивалентен требованию, чтобы волновая функция была антисимметричной по отношению к обмену частицами. Как это объяснить на пальцах? Легко - ткните пальцем в стол, в монитор, во что-нибудь твердое. Глубоко пронзили материю? Удалось достичь перекрывания атомных электронных облаков пальца и стола? Нет? Не удивительно. Читайте дальше, если хотите узнать, почему так.

Читать далее
Total votes 46: ↑45 and ↓1+62
Comments18

Квантование эмбеддингов: что это, зачем оно нужно и как его правильно готовить

Reading time8 min
Views12K
Привет, меня зовут Женя. Сегодня я расскажу, что такое квантование эмбеддингов, какие бывают способы квантования и как с их помощью мы в Яндекс.Дзене смогли сократить использование памяти, рейта записи и сетевого трафика в четыре раза. Будет совсем немного математики, умеренно размышлений о machine learning, highload и big data и много разноцветных картинок.

Что такое эмбеддинги?


Эмбеддинг — числовой вектор, который каким-то (в общем случае непонятным на глаз) образом характеризует интересы пользователя или контент. Например, эмбеддинги могут быть такими.



У каждого пользователя и карточки может быть несколько эмбеддингов разных типов. В основном используются два вида эмбеддингов.
Читать дальше →
Total votes 29: ↑28 and ↓1+36
Comments6

Микросервисы: размер имеет значение, даже если у вас Kubernetes

Reading time7 min
Views31K
19 сентября в Москве состоялся первый тематический митап HUG (Highload++ User Group), который был посвящён микросервисам. На нём прозвучал доклад «Эксплуатация микросервисов: размер имеет значение, даже если у вас Kubernetes», в котором мы поделились обширным опытом компании «Флант» в области эксплуатации проектов с микросервисной архитектурой. В первую очередь он будет полезен всем разработчикам, задумывающимся о применении этого подхода в своём настоящем или будущем проекте.



Представляем видео с докладом (50 минут, гораздо информативнее статьи), а также основную выжимку из него в текстовом виде.

NB: Видео и презентация доступны также в конце этой публикации.
Total votes 40: ↑39 and ↓1+38
Comments23

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity