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

GPGPU *

Технология Nvidia для реализации алгоритмов

Сначала показывать
Порог рейтинга
Уровень сложности

Виноград, Фурье и немного наивности: 4 подхода к реализации сверток с простыми примерами

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

Привет, Хабр! Меня зовут Кирилл Колодяжный, я работаю в YADRO и продолжаю изучать машинное обучение на С++. Я уже писал, как реализовать модели для распознавания лиц на фото и для поиска объекта в пространстве с помощью computer vision. Ссылки на материалы ищите в конце статьи.

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

У статьи будет вторая часть: про особенности реализации одного из этих алгоритмов с использованием CUDA в рамках фреймворка PyTorch и про то, как адаптировать его под свои задачи.

Читать далее

Новости

ПК из трех майнинговых GPU для работы с 3D

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

Несколько лет назад попалась статья на хабре про сборку ПК для фотограмметрии из четырех GPU 3090 за миллион рублей. Тот компьютер собрала компания, чтобы экономить на покупке вычислительной мощности. Для меня фотограмметрия (построение 3d моделей из фотографий) это просто одно из хобби, на которое миллион я тратить не готов. Самой дорогой в этой сборке были видеокарты, около 80% стоимости всего ПК.

Около года назад на барахолках стали появляться майнинговые видеокарты по бросовым ценам, около 1000-1500 руб за штуку (майнинг на них стал убыточным). Появилась идея: почему бы не собрать мощный ПК из старых майнинговых GPU. Что из этого получилось-читайте под катом.

Читать далее

Бэктестинг торговых стратегий на Python с помощью Numba. Когда перевод расчетов на GPU действительно оправдан?

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

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

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

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

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

Читать далее

Как я решал задачу 2025 года. Часть 2. Анализ интересных закономерностей

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

В продолжение части 1 привожу анализ заполнений квадрата со стороной 45 квадратиками размера от 1 до 9 (1x1 - 1 шт., 2x2 - 2 шт., 3x3 - 3 шт., ..., 9x9 - 9 шт.).

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

Если выстроить квадратики размера 9 вдоль двух соседних «стенок», то мы сведём задачу поиска заполнения к задаче для n=8. Таким образом получается, что около 4% заполнений для n=9 получаются напрямую из заполнений для n=8 (у нас есть 4 способа выбрать 2 соседние «стенки»).

Читать далее

Истории

Как я решал задачу 2025 года. Часть 1

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

1-го января из сообщества Незадача дня я узнал про интересные равенства относительно числа 2025 и про задачу, которую на их основе можно сформулировать.

Равенства следующие:

2025 = 45^2 = (1+2+...+9)^2 = 1^3 + 2^3 + ... + 9^3

Некоторые, возможно, ещё помнят, что в углублённой школьной (или вузовской) программе встречалось равенство 1^3 + 2^3 + ... + n^3 = (1+2+...+n)^2 = n^2(n+1)^2/4. Собственно, оно тут и применяется. Кстати, согласно Википедии, это равенство называется тождеством Никомаха, древнегреческого математика (около 60-120 гг. н.э.).

На основе этих равенств можно сформулировать задачу:

Сколько существует способов расположить 1 квадратик со стороной 1, 2 квадратика со стороной 2, 3 квадратика со стороной 3, … , 8 квадратиков со стороной 8, 9 квадратиков со стороной 9 в квадрате со стороной 45, чтобы они не пересекались?

Читать далее

Вот, к вам идет IoT: как цифровизировать старый жилфонд

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

Тем, кто жил и живет в старых домах — «хрущевках», «панельках», «человейниках», — знакома беда разбалансировки систем жизнеобеспечения. Весной батареи обжигают, а зимой — еле теплые, вытяжки работают «не пойми как», подъезд освещен «не пойми где». А счет за такой сервис приходит как за нормально работающий. Возможно, вы будете удивлены, но сегодня столь знакомая многим проблема «кривого ЖКХ» отнесена к вопросам цифровизации, а для ее решения подключают не только домовые чаты в Телеграме или WA, но и передовые ИТ‑технологии: предсказательную аналитику, парсинг и анализ больших данных, интернет вещей. Причем речь уже идет не только о домах премиального класса. Цифровизация затронет и огромный советский и ранний постсоветский устаревший жилфонд, в котором, согласно последней переписи населения, до сих пор живет большинство россиян.

Как начинался EnergyStart

Технологическая компания «Конст» во главе с Альвиной Малышевой решила ответить на этот вызов. Команда разработала IoT (интернет вещей) — решение EnergyStart для многоквартирных жилых домов сегмента старой застройки. В том числе для совсем устаревшего жилфонда. Как рассказала Альвина, проект стартовал в 2023 году с запроса в Институт энергетики и электроники БГТУ им. В. Г. Шухова от Центра энергосбережения Белгородской области.

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

Читать далее

Опять DeepSeek? Побудем в роли детектива

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

Когда про DeepSeek-r1 начали говорить уже из каждого утюга, я долго думал, а стоит ли еще и свои 5 копеек вставлять в эту историю, и подумал, конечно же да! Ведь могу.

Если коротко, просыпаюсь в понедельник и вижу сотни постов в час на тему «революции в ИИ», «гигантский скачок в развитии LLM», «Акции big tech компаний падают», «NVIDIA потеряла сотни миллиардов долларов» — все эти статьи и посты имели кое-что общее — упоминание DeepSeek. Первое, что я почувствовал, это, конечно, небольшое недоумение — так он уже несколько дней точно лежит в библиотеке ollama, а до этого еще лежал на hugging face, да еще и я уже и развернул его на домашнем сервере и тестирую, так почему он внезапно то хайповать стал?!

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

Читать далее

Наш бот просто жжет. Людей, машины, но в основном – здания

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

И вы так сможете, если прочитаете эту статью. Да, она о светодизайне.

Конечно, в 2025-м все знают, что нужно использовать нейросети в дизайне, потому что это стильно, модно, экономит силы, деньги и время. Однако не все инструменты просты в использовании, многие требуют если не обучения, как когда-то фотошоп, то по крайней мере, танцев с бубнами и уверенных референсов, потому что по промту «сделай красиво, я подожду» работать не будет (мы проверяли). А значит, для обработки изображений и работы с освещением объектов нужна не только нейросеть, но и талантливый дизайнер, который к ней прилагается.

Наша задача заключалась в том, чтобы изъять из уравнения талантливого дизайнера или, как минимум, сократить время его присутствия в проекте – то есть дать потенциальному клиенту некий рабочий инструмент, с которым он, до определенного момента, может забавляться сам. И тогда мы придумали Светобота.

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

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

Читать далее

Как взломать Harley Davidson. Часть 2

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

В прошлой части дизассемблировали код прошивки ECM последнего поколения мотоциклов в Ghidra, подправили его и запустили на тестовой плате Aurix TC275 Lite Kit, получили возможность обмениваться с ним сообщениями CAN и отлаживать его в winIDEA. Теперь настало время посмотреть, что же там интересного.

Читать далее

Гетерогенные вычисления: проектирование и разработка вычислительной системы для нейросетей

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

Всем привет! Меня зовут Дарья Ильянова, и сегодня я хочу поделиться с вами опытом создания гетерогенной вычислительной системы для нейросетей, над которой мы работали в команде студентов Инженерно-математической школы НИУ ВШЭ и VK. Вместе с Филиппом Баулиным и Артемом Минеевым мы спроектировали прототип аппаратно-программного ускорителя для машинного обучения.

Читать далее

Метод «Безумного Макса» для тренировки проектировщиков кастомных вычисляющих структур

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

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

Как натренировать такое умение? Для новых домашних работ в программе Школы Синтеза Цифровых Схем мы решили разодрать на блоки реальный процессор и дать студентам задачу собирать разные специализированные вычислительные устройства из этих блоков, примерно как герои фильма "Безумный Макс: Дорога ярости" собирали свои боевые драндулеты из частей реальных автомобилей.

В качестве первой жертвы мы выбрали ...

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

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

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

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

Читать далее

«Да будет свет!», — подумали мы. И стал свет. Краткая история обучения нейросветодизайнера нейросветодизайну

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

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

Разумеется, мы были не первыми, кто до этого додумался, но поскольку бум ИИ удачно наложился на развитие инфраструктуры и появление новых зданий в разных городах РФ (а еще осень, темно, холодно) – было решено взяться за дело. Светодизайн зданий – сложная область, которая удачно сочетает в себе архитектурное проектирование, инженерные достижения, дизайн и человеческий гений. В помощь последнему мы решили добавить искусственный интеллект. Оказалось, что после долгих тренировок он способен:

Читать далее

Ближайшие события

8 апреля
Конференция TEAMLY WORK MANAGEMENT 2025
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область

Никакого праздника без GPU: дообучение BERT на Vertex AI

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

Этот материал посвящён ускорению обучения моделей с использованием бессерверных заданий. В частности, речь пойдёт о том, как запускать обучение с применением Pytorch, GPU и платформы Vertex.

Читать далее

Графические ускорители: битва между AMD и NVIDIA

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

Графические процессоры (GPU) стали важной частью современной вычислительной техники, превратившись из устройств для рендеринга графики в критически важные компоненты для ИИ, обработки данных и высокопроизводительных вычислений. GPU состоят из множества вычислительных блоков, в основном простых арифметико-логических устройств (ALU), которые часто дополняются специализированными ядрами, такими как тензорные и RT ядра. Эти специализированные ядра позволяют параллельно обрабатывать сложные уравнения с векторами, матрицами и тензорами. В этой статье мы рассмотрим конкуренцию между AMD и NVIDIA, выясняя, почему AMD постоянно отстает от NVIDIA в ускорении GPU и гонке ИИ, и изучим исторические, технологические и стратегические факторы, которые сформировали это соперничество.

Читать далее

Портируем видеоаналитику на новые платформы: 8 простых шагов

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

Упаковали свой опыт развертывания системы мониторинга транспортного потока — Smart Traffic System — на Rockchip и SOPHON в один стройный R&D пайплайн. Пошагово, со сроками. Как от сердца отрываем.

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

Читать далее

Ускорение генерации токена LLM в два раза для больших контекстов

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров2.9K
Помимо ChatGPT и многочисленных конкурентов в облаке с веб-мордами и/или API, существует огромная экосистема для запуска LLM на собственном железе. На Huggingface на любой бюджет найдется модель для скачивания, которая влезет в видеопамять (или в RAM, можно и на CPU запускать, если пользователь терпеливый). Вчера здесь на Хабре была очень неплохая обзорная статья.

Самые популярные open source тулы для локального запуска LLM — llama.cpp и vllm (и их многочисленные обертки). У них немного разные ниши, и дальше я буду писать о llama.cpp. Она поддерживает все возможные комбинации железа и ОС — Linux, MacOS, Windows; x86 CPU, Arm, Apple Silicon CPU & GPU, Nvidia, AMD,… Но автор и мейнтейнер — Георгий Герганов использует для разработки Mac Studio. Почему такой выбор железа?

Производительность генерации каждого токена LLM в одном потоке ограничена вычислительной мощностью в процессе построения KV-кэша (анализ промпта до генерации первого токена), и пропускной способностью памяти при генерации последующих токенов. При этом в обоих случаях очень полезно уметь быстро загружать веса из видеопамяти в ALU видеокарты (или CPU).
Читать дальше →

Как в Solar Dozor внедрили новую технологию детектирования графических объектов с использованием GPU

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

Solar Dozor – это не просто DLP-система, а настоящий страж корпоративных данных, с более чем 20-летним опытом на рынке. Благодаря своей отказоустойчивости, масштабируемости и высокой производительности система востребована крупнейшими организациями России и СНГ.

Суперсила Solar Dozor – умение распознавать графические данные. С помощью технологии нейронной сети или, так называемого компьютерного зрения Dozor детектирует изображения и «понимает», что на них изображено. Система умеет идентифицировать паспорта, банковские карты, печати и даже технические чертежи, оформленные по ГОСТу. Это позволяет системе эффективно защищать корпоративные данные от утечек, распознавая и блокируя передачу конфиденциальных документов.

Читать далее

Коммивояжер на GPU

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

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

Динамическое программирование — это метод решения сложных задач путём разбиения их на более мелкие подзадачи, решение которых легче и проще.

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

Читать далее

Часть 1. GPU-Based Fuzzing. Что за зверь такой?

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

Всем привет!

При изучении темы фаззинг‑тестирования всегда возникает вопрос, насколько сильно можно увеличить количество выполнений приложения в секунду. Иначе говоря — как ускорить фаззинг?

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

И так, с одной стороны мы имеем фаззинг, который надо ускорить, с другой — большое количество вычислительных ресурсов на основе видеокарт из‑за активного развития ИИ. Так почему бы не попробовать использовать эти ресурсы во благо ИБ?

Читать далее
1
23 ...