Как стать автором
Обновить
11
0.1
Дмитрий @redf1sh

Аспирант МФТИ. Пишу компилятор для Эльбруса.

Отправить сообщение

Матрица Вандермонда

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров8.5K

Александр Теофил Вандермонд (28 февраля 1735 - 1 января 1796) - французский музыкант и математик, известный благодаря своей работе в области высшей алгебры.

Главным увлечением Вандермонда длительное время была лишь музыка, но к 35-ти годам юный ученый обратился к математике. Первым делом он провел исследование симметрических функций и решения круговых полиномов, после чего выпустил три статьи: про задачу о ходе коня, про комбинаторику и про основы теории детерминантов. 

В честь Александра Теофила был назван специальный класс матриц - матрицы Вандермонда, о котором пойдет речь в данной статье. [1]

Читать далее
Всего голосов 11: ↑6 и ↓5+4
Комментарии7

Панорама матричных расширений: от x86 до RISC-V

Время на прочтение15 мин
Количество просмотров8.5K

Матричное расширение ISA CPU… Что это и что оно делает? Уже из названия понятно, что это расширение позволяет ускорять операции над матрицами на CPU. Но задумывались ли вы когда-нибудь, какие они бывают, когда появились, кто и как их создает?

Меня зовут Валерия Пузикова, я эксперт по разработке ПО в компании YADRO, к.ф.-м.н. Около 15 лет разрабатываю численные методы для решения задач линейной алгебры, дополненной и виртуальной реальности, аэрогидродинамики. Вычислительные задачи таких классов всегда приводят к работе с матрицами больших размерностей, поэтому критически важным становится ускорение матричных операций, в том числе с помощью расширений. 

Матричные расширения появились не так давно — чуть более трех лет назад. Несмотря на это, они есть у каждой уважающей себя процессорной архитектуры, в том числе и у относительно молодой открытой RISC-V. Почему их так много и чем они отличаются? Поддерживаются ли разреженные матрицы? Об этом и многом другом вы узнаете из статьи. Приготовьтесь, будет интересно и (спойлер!) без многоэтажных формул. 

Читать далее
Всего голосов 63: ↑62 и ↓1+78
Комментарии38

Проблемы с логикой у LLM и с доверием не только у LLM

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров5.4K

Проблемы качества базы данных LLM[1] и необучаемости LLM в силу ограничения размеров контекстного окна сводятся к одной проблеме никак с LLM не связанной — оценке доверия к публикациям и их авторам вообще. Вторая проблема — LLM не умеет решать простые логические задачи легко решаемые грамотными людьми, что свидетельствует о сходстве LLM с неграмотными людьми неспособными к абстрактному мышлению. В ближайшем будущем LLM не сможет достичь уровня логического мышления грамотного человека, зато LLM обладает большими чем у человека способностями к эриксоновскому гипнозу, а значит и к мошенничеству.

Читать далее
Всего голосов 20: ↑19 и ↓1+24
Комментарии26

Введение в SSD. Часть 5. Контроллерная

Время на прочтение9 мин
Количество просмотров18K

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

Контроллер современного накопителя — маленький компьютер, который принимает стандартизированные команды и выполняет соответствующие действия с подконтрольным ему хранилищем. При этом внутреннее устройство контроллера может быть любым.
Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Комментарии8

Tree-sitter: обзор инкрементального парсера

Время на прочтение5 мин
Количество просмотров9K

Некоторые IDE и текстовые редакторы парсят исходный файл целиком при каждом изменении, что может тормозить на больших файлах, а некоторые делают это построчно с помощью регулярных выражений, что тоже тормозит и не даёт качественной подсветки кода, т.к. теряется контекст. Для решения этих проблем в недрах GitHub был создан tree-sitter - инкрементальный парсер, который используют всё больше и больше проектов. Давайте разбираться зачем и почему.

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии37

Что ты такое, dhclient?

Время на прочтение19 мин
Количество просмотров45K

Сетевой стек Linux не прост даже на первый взгляд: приложение — в юзерспейсе, а всё, что после сокета, — в ядре операционки. И там тысяча реализаций TCP. Любое взаимодействие с сетью — системный вызов с переключением контекста в ядре.

Чтобы лишний раз не дёргать ядро прерываниями, придумали DMA — Direct Memory Access. И это дало жизнь классу софта с режимом работы kernel bypass: например при DPDK (Intel Data Plane Development Kit). Потом был BPF. А за ним — eBPF. 

Но даже помимо хаков работы с ядром есть такие штуки, как sk_buff, в которой хранятся метаданные всех миллионов протоколов. Есть NAPI (New API), которая призвана уменьшить число прерываний. Есть 100500 вариантов разных tables.

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

Начать погружение
Всего голосов 177: ↑176 и ↓1+221
Комментарии61

Специалисты по информатике изобрели новый эффективный способ подсчёта уникальных элементов

Время на прочтение4 мин
Количество просмотров20K

Представьте, что вас отправили в девственный тропический лес, чтобы провести перепись диких животных. Каждый раз, когда вы видите животное, вы делаете снимок. Ваша цифровая камера будет фиксировать общее количество снимков, но вас интересует только количество уникальных животных — всех тех, которых вы ещё не посчитали. Как лучше всего получить это число? «Очевидное решение — запомнить всех животных, которых вы уже видели, и сравнивать каждое новое животное с этим списком», — говорит Лэнс Фортноу, специалист по информатике из Иллинойского технологического института. Но есть и более умные способы, добавил он, потому что если у вас тысячи записей, то очевидный подход далеко не так прост.

Всё становится ещё хуже. Что, если вы — Facebook, и вам нужно подсчитать количество отдельных пользователей, которые заходят на сайт каждый день, даже если некоторые из них заходят с нескольких устройств и в разное время? Теперь мы сравниваем каждый новый вход со списком, который может исчисляться миллиардами.

Читать далее
Всего голосов 76: ↑75 и ↓1+86
Комментарии50

Ошибки ведения личной базы знаний: почему я удалил 1500 из 4500 заметок в Obsidian

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров48K

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

В этой статье я собрал 5 личных ошибок, которые превращали мою личную базу знаний в кладбище заметок.

Читать далее
Всего голосов 75: ↑54 и ↓21+52
Комментарии107

Как составить функцию инициализации микроконтроллера (Топологическая сортировка графов утилитой Make)

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров5.8K

В программировании микроконтроллеров приходится определять порядок инициализации прошивки. Порядок тут всегда имеет значение.

Дело в том, что прошивка состоит из набора программных компонентов. Каждый компонент вызывает функции из других программных компонентов. Так происходит пере использование кодовой базы.

Чтобы всё это работало надо соблюдать правильный порядок инициализации.

В этом тексте я представил формальный алгоритм определения этого порядка.

По сути это топологическая сортировка ориентированного графа зависимостей программных компонентов.

Читать далее
Всего голосов 14: ↑13 и ↓1+19
Комментарии50

Plane-based геометрическая алгебра для описания движения тел

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров4.3K

Этот текст логически состоит из трёх частей. Сначала кратко расскажу про геометрическую алгебру с точки зрения математики. Потом расскажу как можно взять одну конкретную алгебру и использовать её для описания вращения и перемещения тел. И вишенка на торте - покажу, как будут выражаться физические сущности типа силы и момента, импульса, момента инерции и уравнений движения тел.

Читать далее
Всего голосов 40: ↑40 и ↓0+53
Комментарии10

Долгий путь микропроцессора на рынок или учимся читать новости про российские литографы

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров51K

Пару дней назад Хабр в списке новостей вывел и эту - В России создали и тестируют собственный литограф . Новость не вызвала у меня особого интереса - кроме того, что на Хабре завелась особая математика, +68 – 24 = +58, и вот почему.

Читать далее
Всего голосов 290: ↑253 и ↓37+266
Комментарии319

Резервный мониторинг послушного дома

Время на прочтение14 мин
Количество просмотров7K

Хотя концепция "умного дома" в полном объёме мало кем используется в жизни (и ещё меньше кем самостоятельно реализована), отдельные его компоненты - разного рода датчики, умные розетки, камеры и прочее, с доступом через "облако" - давно не редкость. До покупки дачи меня всё это слабо волновало - в квартире я вполне обходился механическими выключателями и градусником на окне. Тем не менее, необходимость следить за состоянием загородного дома вынудила заняться этим вопросом и я пошёл по самому простому пути с MiHome и кучей датчиков. Конечно, в нём хватает проблем - баги, которые не устраняют годами, датчики для разных регионов, периодически [кратковременно] отваливающееся облако. В целом, однако, всё это удовлетворительно работает уже не первый год, технического интереса не представляет и рассказать я хотел не об этом.

Вопрос, который меня всерьёз стал беспокоить уже на вторую зиму ((а именно зима - самый проблемный сезон) - необходимость в резервном решении на случай, если информация от MiHome перестанет поступать и надо будет решать - нужно ли срочно ехать и топить/чинить дом или можно ещё подождать, пока проблема сама рассосётся. Основных причин прекращения поступления информации три:

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Комментарии21

Цифровая антиутопия: Темное будущее развлекательной индустрии

Время на прочтение8 мин
Количество просмотров9.9K

Президент (дедушка Байден) каждый год выступает с речью "О положении дел в стране", но это просто дремота. Просто посмотрите на своих достойных представителей, которые с трудом держат глаза открытыми. Это потому, что они уже слышали все это раньше. Мы тоже слышали. В политике мало что меняется. И уж точно не кандидаты.

Больше разнообразия на моей местной заправке, где, по крайней мере, я могу выбирать из трех видов топлива и пяти вкусов Big Gulp.

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

Вот почему нам нужна речь "О состоянии культуры". Мое прошлогоднее выступление цитировали и цитируют, и тогда оно было абсолютно верным, но сейчас оно уже устарело, как справочная служба ChatGPT-1 в яхт-клубе "Скучающая обезьяна".

На самом деле, 2024 год может стать самым стремительным и опасным временем для креативной экономики. И это будет так, независимо от того, что произойдет в ноябре. Так что давайте окунемся внутрь.

Я хочу рассказать вам, почему развлечения мертвы. И что придет им на смену.

Читать далее
Всего голосов 45: ↑42 и ↓3+53
Комментарии44

Что нужно знать, чтобы успешно пройти System Design Interview

Время на прочтение16 мин
Количество просмотров42K

Для любого разработчика глубокое понимание основных принципов системного проектирования является необходимым условием для создания стабильных и масштабируемых программных систем, способных обеспечивать высокую производительность. Системное проектирование (System Design) включает разработку архитектуры и структуры программной системы, направленную на удовлетворение специфических требований и обеспечение требуемых показателей производительности.

С учетом стремительного прогресса в области технологий и возрастающей сложности программных приложений, овладение принципами системного проектирования становится критически важным для разработчиков, стремящихся создавать эффективные системы. Не имеет значения новичок вы или опытный специалист: освоение этих принципов позволит вам разрабатывать надежные и масштабируемые программные системы, отвечающие требованиям современных приложений.

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

Читать далее
Всего голосов 49: ↑47 и ↓2+56
Комментарии26

GPT-like модель «впервые сделала научное открытие»: что, как, и куда дальше?

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров106K

14го декабря в одном из самых авторитетных общенаучных журналов Nature была опубликована статья с, кажется, сенсационным заголовком: «ИИ-модели Google DeepMind превосходят математиков в решении нерешённых проблем». А в блогпосте дочки гугла и вовсе не постеснялся указать, что это — первые находки Больших Языковых Моделей (LLM) в открытых математических проблемах. Неужели правда? Или кликбейт — и это в Nature? А может мы и вправду достигли техносингулярности, где машины двигают прогресс? Что ж, давайте во всём разбираться!

Ну давай разберёмся →
Всего голосов 153: ↑149 и ↓4+174
Комментарии272

Быстрый поиск изоморфных подграфов

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров4.6K

Привет, Хабр!

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

Сначала будет приведён алгоритм поиска паттернов рекуррентным перебором, потом его быстрая модификация с минимальным отсечением.

Примеры кода написаны на C++, исходники всей библиотеки лежат здесь. Также написана копия библиотеки на Java, исходники лежат здесь.

Читать далее
Всего голосов 12: ↑10 и ↓2+12
Комментарии12

Библиотечка электровакуумщика-кустаря

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров8K

Интересуясь историей и практикой электровакуумных приборов (ЭВП) и идя по пути к их самостоятельному изготовлению в домашней лаборатории-мастерской, с течением времени накопил массу полезной литературы. От изданий академических до описаний любительских экспериментов коллег и фото раритетных ЭВП, литературе по азам в смежных областях — кустарные работы широкопрофильны и многогранны. Некоторые старые технические книги просто приятно иметь, как летописи отважных и романтичных пионеров-первопроходцев. Здесь, приведу профильные книги к которым при работе приходится обращаться чаще всего и выглядящие наиболее перспективно. Издания по возможности будут снабжаться комментариями в смысле полезности для основного направления деятельности.
Читать дальше →
Всего голосов 74: ↑74 и ↓0+88
Комментарии61

Plymouth: делаем загрузку Linux веселее

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров24K

Или ещё один способ показать своё превосходство над "average Windows fan".

Дружим современный мем со старым и почти забытым инструментом.

Читать далее
Всего голосов 30: ↑28 и ↓2+36
Комментарии53

NumPy для самых маленьких

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров18K

Математика везде в нашей жизни, но в программировании, а особенно ML ее два раза больше. Обычно Питон берут в пример самого "научного" языка программирования из-за математических фреймворков. Как не Питон может помочь оперировать математическими абстракциями, некоторые из сферы ресерча пользуются исключительно питоном для всяких научных изысканий — сегодня мы поговорим про библиотеку NumPy и работу с массивами. 

Самая новичковая "библиотека" с примочками в виде SciPy и Matplotlib предназначена для работы с многомерными массивами. NumPy – основа для многих других библиотек для машинного обучения, таких как SciPy, Pandas, Scikit-learn и TensorFlow. 

Pandas, например, строится поверх NumPy и позволяет работать со структурами данных высокого уровня по типу DataFrame и Series. При помощи NumPy можно проводить преобразование категориальных данных в числовой формат, например, с использованием кодирования one-hot.

Читать далее
Всего голосов 20: ↑17 и ↓3+18
Комментарии2

Вы все еще пишете многопоточку на C++ с ошибками синхронизации?

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров26K
Привет, коллеги! В этой статье я покажу свой подход к написанию многопоточного кода, который помогает избежать типовых ошибок, связанных с использованием базовых примитивов синхронизации.

Демонстрация идеи будет проходить на живых примерах кода на современном C++. Большинство описанных решений я применял сначала на собственных проектах, а теперь часть этих подходов уже используется в нашей собственной микроядерной операционной системе «Лаборатории Касперского» (KasperskyOS).

Сразу хочу оговориться, что тема многопоточности — очень большая и серьезная. И эта статья — не полноценный анализ проблем многопоточки, а только частНЫе (но довольно частЫе) кейсы, когда мы вынуждены использовать мьютексы.
Читать дальше →
Всего голосов 53: ↑47 и ↓6+57
Комментарии148
1
23 ...

Информация

В рейтинге
3 964-й
Откуда
Ивантеевка (Московская обл.), Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

System Software Engineer