воскресенье, 25 июля 2010 г.

Result I - Stress test "Water Fall"

Итак, подвел первый итог месячного тестирования рабочей станции от FORSITE.
Тест заключался в расчете большого массива данных - симуляция динамики с помощью Maya nParticles & Maya Particles и визуализация полученной секвенции в формате HD 720p.
Сцена была создана моим коллегой skif'ом из проекта Last Hunt, поэтому мы вкладываем не всю секвенцию, а только часть (авторские права и т.п.). Но для более полного представления мы предоставим несколько скриншотов.

Сцена с водопадом в Autodesk Maya 2011.
При вычислениях конечно же работал больше всех сам центральный процессор. Тут стоит отметить, что при визуализации как и полагается все возможности процессора были задействованы на 100%. Но, при вычислениях самой динамики подводило больше всего программное обеспечение. Т.к. алгоритмы динамики особенно в nParticles не особо то много-поточные, а наоборот в большинстве своем задействуют только одно ядро. Тут помогла технология Intel TurboBoost используемая в последних моделях процессоров Core i7 и Xeon.

Окно Windows Performance Monitor (Windwos 7 Ultimate x64 RUS)
Ну, хватит о технических моментах, лучше посмотреть видео которое мы собрали из того что было.

Видео Water Fall test.
Стоит так же упомянуть количество частиц на пике симуляции, сцена насчитывает порядка 1064485 частиц, и это далеко не предел.

Сцена с водопадом и число частиц на данном кадре (в Attribute editor).

Теперь о проблемах которые нам предстоит решить.
- Использовать ли сторонние симуляторы, например RealFlow?
- Использовать ли самописные модули, ориентированные на GPU вычисления?
- Использовать ли NVIDIA PhysX? (!)
- Расширить ли возможности NVIDIA PhysX или написать своей симулятор для жидкости с использованием PhysX? (!)
Отмеченные символом (!) вопросы на самом деле уже решаются и достаточно бурно, сейчас мы рассматриваем основательно применение новой версии PhysX. Есть только один момент, нам требуются программисты. Благо энтузиастов хватает. Ну а моя задача представить как это будет реализовано в финале.
Далее: "SSD накопители, о чем будет обзор?"

четверг, 15 июля 2010 г.

Частицы...

На зимнем CG Event 2009, представители компании Intel показывали как работают их современные процессоры, которые могут автоматически увеличивать частоту для повышения производительности в вычислениях.
Ну а так как у меня новая рабочая станция как раз обладает одним из топовых процессоров Core i7, то я не замедлил эту фичу проверить на личном опыте.
Благодаря моим друзьям из проекта Last Hunt мне мне была предоставлена сцена с водопадом. Водопад выполнен с помощью двух систем частиц - nParticles и генерируемые ею стандартные Particles.

Сцена с водопадом из проекта Last Hunt.
Мне же предстояло выполнить визуализацию секвенции кадров, но перед тем как это сделать, я решил предварительно закэшировать частицы для ускорения последующей визуализации.
Но есть один очень важный момент. Это алгоритмы используемые в Maya и её nParticles и Particles. Стандартная система частиц в Maya задействует все доступные процессоры (при условии что они представлены физически - либо несколько процессоров или же несколько ядер на одном кристалле, а так же и то и другое вместе), кроме логических (технология Intel Hyper-Threading). А вот система частиц nParticles способна задействовать только одно ядро, даже в Autodesk Maya 2011.

Окно системного монитора при вычислениях в сцене с водопадом.
На предсталвенном выше изображении видно как задействованы практически все физические ядра процессора Core i7.
Это как раз осуществляются вычисления стандартных частиц. А вот при вычислениях nParticles процессор активирует технологию Intel TurboBoost которая повышает частоту ядра, на котором выполняется больше всего вычислений.

Окно программы CPU-Z 1.55 в котором видна номинальная частота процессора и текущая при применении Intel TurboBoost.
Таким образом можно комбинировать сразу несколько ресурсоемких задач и при этом получать автоматический прирост производительности. Хотя тут стоит поработать самим программистам из Autodesk и сделать в конце концов нормальную поддержку нескольких ядер и потоков как в стандартной системе частиц, так и в nParticles.
Но в целом я остался доволен новыми Core i7. Так же стоит заметить, что при должной комплектации рабочей станции и сбалансированности (как в рабочих станциях FORSITE) мы получаем высокую производительность в самых разных задачах.
После завтра вы увидите готовое видео этой сцены с водопадом.

среда, 14 июля 2010 г.

CUDA accelerated applications & NVIDIA Quadro GPU’s

Наконец добрался до первых тестов и замеров производительности, в приложениях использующих технологию NVIDIA CUDA. На этот раз я пошел достаточно простым путем – взял стандартное приложение из CUDA SDK 3.1 и мой любимый пример N-Body Simulation.
Данный пример отлично показывает производительность GPU при вычислениях с одинарной точностью, а так же значение производительности в GFLOP’s.
Первая была протестирована карта NVIDIA Quadro FX 1800, которая используется в моей рабочей станции уже на протяжении последнего года. Данная модель GPU показала, как и ожидалось производительность в 94 – 99,8 GFLOP’s. Иногда конечно и выскакивала за рубеж в 100 GFLOP’s.

Первый пример на рабочей станции с Quadro FX 1800 768 Mb.
При этом, хочется отдельно заметить, что частота воспроизведения кадров была равна 26 – 34 fps. Что конечно меня впечатлило не только от самой GPU, так и всей системы в целом. Ведь приложение, которое задействовалось, использует и возможности CPU (буквально 40 – 50% @ Intel Core 2 Duo).
На второй станции от компании FORSITE (http://www.forsite-company.ru/) была задействована модель NVIDIA Quadro FX 3800. Она же, в свою очередь, обладая 1Gb GDDR3 памяти, и 192 ядрами CUDA, выдала результат, который я конечно и ожидал, но, хотел убедиться лично, в 240 – 304 GFLOP’s. Это особенно полезно, когда специалистам приходится использовать GPU accelerated средства визуализации, о чем мы погорим ниже.

Пример на рабочей станции FORSITE с Quadro FX 3800 1024 Mb.
Стоит отметить, что станция FORSITE выполнена достаточно качественно, и за счет использования высокоскоростных элементов памяти и накопителей скорость обработки данных, конечно же, возрастает. Процессор же нагружен был максимум на 12 – 20% при этом благодаря наличию в Intel Core i7 технологии Intel TurboBoost, мы получили возможность увеличения производительности.
Но, а как же обстоят дела в приложениях специально ориентированных на применение GPU в качестве мощнейшего сопроцессора? Ответ на этот вопрос наглядно может дать демонстрационное видео, сделанное мною по ходу экспериментов с визуализатором Octane Render.

Сравнение производительности при визуализации в Octane Render на NVIDIA Quadro FX 1800 & NVIDIA Quadro FX 3800. Материал сделан специально для компании FORSITE.
Ну что могу сказать, различия в производительности между этими двумя GPU заметны невооруженным взглядом. Особенно при визуализации на GPU NVIDIA Quadro FX3800. Главное то, что сам GPU практически не превышает свою температуру и справляется с задачей на тех частотах, которые были заданы в спецификации для производителей.
Тут конечно так же заметно, что при применении Quadro FX1800 частота кадров обновления сцены в Octane Render равна порядка 1 – 3 fps, на Quadro FX3800, все намного лучше, обновление сцены и выполнение навигации по ней на этой GPU одно удовольствие. Плюс конечно, достаточно мощная система в целом.
Но на этом всем мы не останавливаемся, и уже скоро здесь будут представлены результаты и других визуализаторов, новый Buckspeed SHOT и легендарный mental ray с технологией iray.

суббота, 10 июля 2010 г.

Запуск.


Итак, наконец пришло время, как мы начали полностью заниматься не только приложениями и их обзорами, но и небольшой исследовательской деятельностью. На этот раз, я запускаю блог посвященный исключительно решениями для параллельных вычислений, основанных на NVIDIA CUDA. Блог я назвал n:PhysX потому как основной объем материала в нем - применение PhysX в CG. Но не одним PhysX мы будем едины. Т.к. мы будем исследовать и другие решения основанные на NVIDIA CUDA, то мы конечно рассмотрим здесь и системы визуализации, использующие возможности GPU для ускорения вычислений.
Первым нашим тестом будет анализ возможности увеличения производительности в CUDA приложениях за счет увеличения количества GPU в системе. Насколько актуально решение, как будет повышаться производительность и многое другое.

Итак, добро пожаловать! :)