Рубрика «оптимизация»

Сколько памяти нужно для жизни: стресс-тест старого и нового железа - 1

Не так давно мне попался ноутбук Acer TravelMate B1 TMB118 с 4 ГБ DDR4. Благодаря размеру и маленькому потреблению он идеально подошел под эксплуатацию в виде печатной машинки и простенького редактора кода. 

Читать полностью »

Почему Chrome весит 7 000 Марио или как сжать «Змейку» в 1 000 раз - 1

На вашем диске лежит семь одинаковых моделей птицы Додо. Не благодарите — это ARK заботливо положил их вам в каждое DLC.

Читать полностью »

StaticEcs

Коротко о том, что такое ECS (Entity Component System)

Сущность — числовой идентификатор без данных.
Компонент — структура данных (Position, Health, Velocity), которая может быть прикреплена к сущности.
Система — код, перебирающий сущности с нужным набором компонентов и обрабатывающий их.

Читать полностью »

Золотой стандарт оптимизации: разбираем реализацию RollerCoaster Tycoon - 1

Недавно, благодаря удачному стечению обстоятельств, меня пригласили на один из крупнейших немецких игровых подкастов, Stay Forever, где мы обсуждали метод разработки Читать полностью »

Введение: Почему обычный Rate Limiting не работает для LLM?

Деплой больших языковых моделей (LLM) — это всегда боль, когда дело доходит до пиковых нагрузок. В классических web-сервисах при высоких RPS мы просто включаем балансировщик, а если всё горит — жестко режем запросы HTTP 429 Too Many Requests.

Но в мире генеративного AI отбрасывать запросы клиентов очень дорого: пользователь уже подождал, пока загрузится чат, написал длинный промпт, нажал Enter и… получил ошибку. А масштабирование GPU-кластера занимает минуты, которых у нас нет.

В этой статье мы покажем, как подход “Динамической лени”Читать полностью »

Я удалил backpropagation из нейросети. Она обучилась методами XIX века - 1

Все началось с того, что я открыл PyTorch и удалил из модели .backward(). Взял и стер как строчку, которая «вроде ничего не делала». Только вот эта строчка делала вообще все.

Читать полностью »

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

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

Читать полностью »

Я хочу показать вам, как одна буква в ассемблере может стоить 3× производительности. Не в теории — на живых замерах. По дороге мы заглянем внутрь процессора: Register Alias Table, partial register merge, scheduler, latency vs throughput, и даже обнаружим, что делитель выдаёт остаток раньше частного.

Но начнём с основ. Приготовьтесь: кроличья нора окажется глубже, чем кажется.

Немного контекста

Процессор x86-64 работает с регистрами — быстрыми ячейками прямо внутри CPU. Их немного (16 основных), зато доступ к ним — за доли такта, в отличие от оперативной памяти, где задержка может достигать сотен тактов.

Главный нюанс: у каждого регистра есть Читать полностью »

Речь пойдет о двух крейтах: imageproc и image. imageproc - библиотека обработки изображений, основанная на библиотеке image.

При рендере текста в imageproc я столкнулся с багом: алгоритм корректно работал для RGB, но ломался для RGBA.

Попытка исправить его привела к неожиданному результату - фикс оказался невозможен без изменения API image-rs.

Разберём, почему так произошло.

Где и как проявился баг?

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

Примеры:

Читать полностью »

https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js