Как стать автором
Обновить
0
0

Пользователь

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

Буферный пул для максимальной скорости: квест по победе над Nginx

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

Вы когда-нибудь ловили себя на том, что пытаетесь выжать каждую миллисекунду из своего HTTP-сервера? Возможно, вы слышали, что «Nginx — король скорости», и думали: «Вызов принят!» Что ж, давайте поговорим об обработке небольшого контента (менее 100 КБ) в десять раз быстрее обычного.

Секретный соус? Эффективное управление памятью с помощью буферных пулов. 👇

🧐 Проблема

Каждому HTTP-запросу нужен буфер для обработки контента. Начнем с простого:

Читать далее
Всего голосов 14: ↑6 и ↓8+2
Комментарии13

Аппаратное кодирование HEVC в FFmpeg — как быстро вникнуть и начать уже сейчас?

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

В прошлой статье, посвящённой изучению кодирования на HEVC в FFmpeg, мы разобрали большинство функций работы с видео и научились эффективно сжимать видео или ускорять процесс кодирования для различных задач, преимущественно в программном кодировании. На этот раз моё внимание привлекла тема аппаратного кодирования (ГПУ) в FFmpeg. Мне не понравился не только поверхностный, но и откровенно плохой подход к теме в других статьях — некоторые авторы, сами того не замечая, предлагают программное кодирование вместо аппаратного. Поэтому я решил конкретно зарыться в этой теме и затем поделиться своими находками с вами.

Буду рассматривать аппаратные кодеки Nvidia, AMD и Intel.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+39
Комментарии25

Ускорение LUP-разложения матрицы с помощью OpenCL

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

Я являюсь автором проекта по математическому моделированию прикладной механики и в работе моей программы до 90% вычислительного времени уходит на решение системы линейных уравнений. Цель этой статьи сугубо практическая - найти оптимальный метод решения системы линейных уравнений с точки зрения производительность/трудозатрат для небольшого проекта и рассказать о результате.

В прошлом я уже несколько раз обращал внимание на вычисления на GPU, но всегда что-то останавливало. И вот у меня накопился достаточный практический опыт программирования на C/C++ и наконец дошли руки, чтобы протестировать OpenCL.

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

Оптимизируем использование памяти для поиска IP-адресов

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

Около трёх лет у меня возникали проблемы с моим обучающим сайтом Mess With DNS: периодически у него заканчивалась память и он перезагружался по OOM.

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

Путь был сложным, и в процессе я многому научилась.

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

Как мы работу блочного pNFS исправляли: продолжение остросюжетного детектива с Linux в главной роли

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

Привет, это Константин Евтушенко и Артём Хакимов, разработчики R&D-команды в Cloud.ru. В предыдущей серии Санта-Барбары про pNFS наш коллега Сергей Баширов @sbashiro описал, как настроить стенд pNFS. Рассказ про эти «страдания» вам так понравился, что мы с коллегами просто не можем оставить публику без продолжения. Без доработки у нас ничего не завелось, поэтому сегодня расскажем, как мы настроили окружение для отладки: Wireshark, gdb, trace-cmd ядра Linux, а также разберем трудности, с которыми столкнулись. В качестве подопытного у нас будет все тот же стенд на Ubuntu 22.04.

Поехали!
Всего голосов 9: ↑9 и ↓0+13
Комментарии0

Глубокая оптимизация сверточных нейронных сетей: Анализ методов улучшения модели на примере CIFAR-10

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

Сверточные нейронные сети (CNN) стали основой для обработки изображений и компьютерного зрения. Однако их обучение требует тщательной настройки архитектуры и гиперпараметров, что может быть сложной задачей, особенно при работе с большими наборами данных. В этой статье мы подробно рассмотрим несколько методов оптимизации, используемых для повышения производительности CNN на примере набора данных CIFAR-10, и покажем, как различные техники влияют на потери и точность модели. Мы протестируем аугментацию данных, различные архитектурные решения, такие как Batch Normalization и Dropout, и адаптивные подходы к обучению.

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

Руководство по созданию приложения для поиска данных на основе агента GraphRAG

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

Это приложение интегрирует GraphRAG с агентами AutoGen, работающими на локальных LLM от Ollama, для бесплатного и автономного встраивания и вывода.

Ключевые моменты включают:
1. Agentic-RAG: - Интеграция метода поиска знаний GraphRAG с агентом AutoGen через вызов функций.
2. Поддержка автономного LLM: - Настройка GraphRAG (локальный и глобальный поиск) для поддержки локальных моделей из Ollama для вывода и встраивания.
3. Вызов функций не из OpenAI: - Расширение AutoGen для поддержки вызова функций с LLM из Ollama через прокси-сервер Lite-LLM.
4. Интерактивный пользовательский интерфейс: - Развертывание пользовательского интерфейса Chainlit для обработки непрерывных разговоров, многопоточности и настроек пользовательского ввода.

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

Расширенное обнаружение проблем в Zabbix: продвинутая работа с триггерами, тегами и вычисляемыми элементам

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

Около недели назад мы провели вебинар по соответствующей теме, нас просили поделиться презентацией и мы решили не просто ей поделиться, а написать полноценную статью со слайдами. Запись вебинара уже выложили в нашем канале на Youtube — подписки и лайки как обычно приветствуются. А еще приглашаем вам подписаться на наше телеграм канал zabbix_ru, где мы публикуем много полезной информации по этой популярной системе мониторинга.

Под катом рассказываем во всех подробностях.

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

Введение в ПЛИС: Содержание курса

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

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

Читать далее
Всего голосов 15: ↑13 и ↓2+14
Комментарии35

Разработка служб для Windows на C++

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

В данной статье описан пошаговый процесс разработки служб для операционной системы Windows с использованием языка программирования C++.

В статье будет представлена теоретическая база по работе служб в Windows, рассмотрено их общее устройство и будет реализовано приложение, с помощью которого можно будет устанавливать свою службу, запускать её, останавливать и удалять (деинсталлировать).

Читать далее
Всего голосов 29: ↑26 и ↓3+30
Комментарии62

Ответ на статью о «Наиболее быстром интерпретаторе»

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

Недавно была опубликована статья под заголовком "Глобально оптимальный, восьмой и наиболее быстрый вид интерпретаторов байткода". Несколько тезисов из статьи вызвали у меня сомнения в их справедливости. Об этом я попробовал написать ряд комментариев тире вопросов к указанной статье. Но основной лейтмотив всех ответов сводился к тому - "а ты напиши свою статью". Подход не столько инженерно-научный, сколько детсадовский. Мне бы хватило и содержательных ответов в формате комментариев, но как говорится - уговорили :).

Итак, что же утверждается автором статьи про наиболее быстрый интерпретатор:

Читать далее
Всего голосов 40: ↑35 и ↓5+41
Комментарии69

Конечный Aвтомат Аппаратного I2C-Трансивера

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

В этом тексте я показал как конечный автомат может работать ядром для драйвера аппаратного I2C трансивера.

Меня удивляет, что в оригинальном коде от вендоров микроконтроллеров программисты прошли мимо конечных автоматов при написании I2C кода внутри своих официальных uHAL. Непорядок...

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

Читать далее
Всего голосов 20: ↑15 и ↓5+13
Комментарии24

Boson — разработка СУБД «с нуля» (итог)

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

Цель проекта Boson — это разработка встроенного движка базы данных документов JSON, написанный на C++. Основные возможности: стандартное хранилище JSON-документов в формате ключ/значениями с постоянным хранением на диске. Размер документов до 4Gb. Быстрый поиск документов по ID с использованием индекса B+ дерева. Поддержка курсоров для линейного обхода записей. База данных в одном файле, без временных файлов. Простое, чистое и легкое в использовании API. Самодостаточный и не требующий настройки.

В предыдущих двух статьях мы прошли шаги от кэширования файлового ввода/вода (часть I) до построенного на его базе хранилища записей произвольной длины (часть II) с проверкой целостности, возможностью получения записей списком и повторным использованием свободного места. Теперь мы переходим к завершающей части и "сердцу" СУБД - индексу.

Зачем нужен индекс: предположим, что в базе есть 1 млрд не отсортированных записей документов, тогда поиск конкретного документа по ID потребует O(n) операций, то есть до 1 млрд операций в худшем случае. Однако, если бы документы в базе были бы отсортированы по ID, то поиск в сортированной базе, тем же бинарным поиском занял бы O(log n) занял бы 30 операций. Что, теоретически, на базе в 1 млрд записей будет в 33.3 млн раз быстрее.

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

Оценка токопотребления батарейных радиоканальных устройств

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

Пути разработчика и маркетолога постоянно пересекаются, но эти люди редко бывают друзьями. Задача первого что-нибудь сотворить, найти лучший способ решения технического задания в ходе раздумий, расчётов и анализов; задача второго – сие творение продать. Не успеешь и глазом моргнуть, как маркетологи припишут лишний нолик к точности измерений, добавят децибел к выходной громкости или увеличат время автономной работы микропотребляющего устройства на несколько лет.

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

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

Как создать датасет для машинного обучения за 6 шагов

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

Устали искать идеальный набор данных для обучения ваших моделей машинного обучения? Часто в таких случаях оптимальное решение — это создать его самостоятельно.

Сегодня мы обсудим шесть шагов для создания наборов данных, которые идеально подойдут под ваши задачи, и разберем их на примере датасета, который мы собрали в Data Light.

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

Support Vector Machine: +1 алгоритм машинного обучения для начинающих

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

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

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

Как перенести UEFI системный диск Enterprise Linux на другое устройство?

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

Часто бывает, что при автоматизации процессов инженеры чувствуют себя весьма расслабленно — мол, система сделает все сама и как надо. Но, увы, иногда автоматика выбирает немного не то, что выбрал бы сам инженер при ручных действиях. Приходится это исправлять.

В статье рассмотрим способ переноса системного раздела ОС Linux на другое блочное устройство и необходимые изменения в UEFI загрузчике.

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

Эволюция архитектур нейросетей в компьютерном зрении: классификация изображений

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

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

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

Классификация изображений
Всего голосов 6: ↑5 и ↓1+5
Комментарии1

Сверточные нейронные сети. Создание нейросети для распознавания цифр на языке программирования Python

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

В современном мире искусственный интеллект и машинное обучение стремительно развиваются, меняя нашу повседневную жизнь и открывая новые горизонты в различных областях. Одной из ключевых технологий, лежащих в основе этих достижений, являются сверточные нейронные сети (Convolutional Neural Networks, CNN). Эти мощные алгоритмы позволяют эффективно обрабатывать и анализировать изображения, что находит применение в самых разных сферах: от медицинской диагностики до систем безопасности.

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

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

Открытый датасет TelecomX

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

Всем привет! Хочу поделиться с теми, кто интересуется большими данными, своей работой. Дело в том, что довольно часто, когда мы читаем какую-либо статью или техдоку по этой предметной области, приводимые примеры опираются на крохотные наборы данных. И это не даёт понимания и погружения в специфику — напоминает обучение вождению на Need for speed. Более того, я не смог найти более-менее крупные наборы реальных бизнесовых данных или те, что были хотя бы похожи на реальные. Ну и как это часто бывает, пришлось сделать самому. Если вас интересует эта тематика, проследуйте под кат.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии4
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность