Archive for the ‘performance’ Category.

это очень интересно, что там спрятано внутри

Коэффициент пидорастичности файла.

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

напр. если файл в 800 байт сжимается до 400, то его коэффициент равен 800/(400/800) = 1600

Скрипт для нахождения самых пидорских текстур (напр. одноцветного голубого неба 2048×2048 в RGBA формате):
Continue reading ‘Коэффициент пидорастичности файла.’ »

Bubblesort, кеши и быстродействие

Несколько интересных соображений, навеянных публикациями по dual-pivot quicksort.

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

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

Continue reading ‘Bubblesort, кеши и быстродействие’ »

Миллион батчей в секунду на Xbox360

Во время очередного витка оптимизации на Xbox360, захотелось очень дешевых по производительности батчей – т.к. батчей в кадре было достаточно много, а CPU времени они кушали еще больше, при тысяче батчей в кадре тратилось 20-25 ms на установку констант и вызов DP. CPU лимит в 40-50 FPS явно не устраивал.

Как потом выяснилось часть оверхеда была от использования D3D Effects в качестве шейдерной системы. Большое количество Load Hit Store и двойное копирование всех констант, были одной из проблем…

Continue reading ‘Миллион батчей в секунду на Xbox360’ »

Опа-опа, уже на Channel9!

Не поверите, мой маленький доклад про GPGPU на маленькой уютной майкрософтовской тусовке (спасибо Саша!) решили выложить на Channel9 (спасибо мужикам из MS Russia!).

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

Часть 1 (сам доклад) – http://channel9.msdn.com/posts/mikcher/GPU-Algorithms-Part1/
Часть 2 (вопросы) – http://channel9.msdn.com/posts/mikcher/GPU-Algoritms-Part2/

В будущем выложат еще одну часть, где содокладчик Миша Горбунов будет показывать одну из демок на CUDA.

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

Рецепты отладки. Позор для математика.

Эта история не является большим секретом, я её озвучивал в своё время на канале #ff и на GDP, но за истечением срока давности (10 лет) за сделанное мною математическое преступление хочется покаяться перед всем читающим меня сообществом и раскрыть страшную правду об одном алгоритме. Речь сегодня пойдет о вещественной арифметике в самом худшем её проявлении – двоичном.
Continue reading ‘Рецепты отладки. Позор для математика.’ »

Рецепты отладки. Падение на ровном месте.

В развитие рассказа CEMEH про страшный олдскульный WIC хочу рассказать историю, которая смогла успешно разрешиться только благодаря точу, что традиционные методы отладки были совмещены с хорошим пониманием принципов работы целевой платформы, роль которой успешно исполнил интеловский процессор, работающий в защищенном режиме под управлением операционной системы MS Windows.

В самом начале XXI века, во времена разработки “Недетских Гонок”, было зафиксировано странное падение, которое долго не удавалось исправить. Падение проявлялось только в Release конфигурации, проявлялось крайне редко, и, как тогда казалось, было просто на ровном месте.

Continue reading ‘Рецепты отладки. Падение на ровном месте.’ »

Квадратный корень из матрицы

Началось все вот с этого детского вопроса:

http://www.gamedev.ru/code/forum/?id=81986

>Всем привет!!! Существует ли формула, по которой из матрицы можно убрать масштабирование, не зная коэффициентов масштабирования???

Continue reading ‘Квадратный корень из матрицы’ »

ИГРА БЕЗ РАЗРЫВОВ

Игры под PC. Спайки, лаги, подтормаживания. В контракте описаны, спорить сложно.

Но что делать если НЕ БЫЛО НИ ЕДИНОГО РАЗРЫВА? Continue reading ‘ИГРА БЕЗ РАЗРЫВОВ’ »

Dual Quaternions

Время временно кончилось. Но скоро начнётся снова. А пока чтиво.

https://www.cs.tcd.ie/publications/tech-reports/reports.06/TCD-CS-2006-46.pdf – теория
http://isg.cs.tcd.ie/projects/DualQuaternions/ – практика

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