? Когда я этим летом ездил в Москву на CG EVENT 2009 мне довелось ...
English Russian
Live Здравствуйте, дорогие любители RENDER.RU. Вот спустя некоторое время решил написать собственный ...
Главная   Уроки   Библиотека   Документация   Знания

3D инженерия и 3D моделирование, человеческое тело в 3D 3D инженерия и 3D моделирование, человеческое тело в 3D

3D инженерия и 3D моделирование, человеческое тело в 3D 3D инженерия и 3D моделирование, человеческое тело в 3D

3D инженерия и 3D моделирование, человеческое тело в 3D 3D инженерия и 3D моделирование, человеческое тело в 3D

Новости

3D моделирование - воплощение любой фантазии
В настоящее время компьютерная графика проникла во все сферы человеческой деятел...
3D моделирование и визуализация
  Создавая какую-то фигуру или элемент трехмерной графики, перед самим дизайнеро...
Создание нерегулярных сложных объектов
Основной проблемой при создании таких объектов является постоянное видение объе...
Home Вы здесь:: 3D инженерия Уроки Когда я этим летом ездил в Москву на CG EVENT 2009 мне довелось ...
 

Модели

3D моделирование - воплощение любой фантазии
В настоящее время компьютерная графика проникла во все сферы человеческой деятельности. Черчение, рисование, моделирование и даже проектирование – все это сфера ...
3D моделирование и визуализация
  Создавая какую-то фигуру или элемент трехмерной графики, перед самим дизайнером стоит не только цель сделать его правдоподобным, но и по максимуму сделать его яр...
Создание нерегулярных сложных объектов
Основной проблемой при создании таких объектов является постоянное видение объекта. Используются и начальные наброски объекта, и его модель. Второе, безусловно, л...
Общие принципы создание 3D-моделей
Все объекты 3D-моделирования делятся по своей форме на простые и сложные. Простым объектом может быть электрическая лампочка, сложным объектом можно считать дерево...
Рельефное структурирование
Рельефное структурирование появилось после нормалмаппинга и представляет собой метод наложения структур, базирующихся на информации о глубине. Изначально метод ...
Нормалмаппинг
Нормалмаппинг - это усовершенствованная техника бампаппинга, ее расширенная версия. При этом методе наложения рельефности нормали изменяются на основе информаци...

Вход для авторов



 
   
Когда я этим летом ездил в Москву на CG EVENT 2009 мне довелось ...
02.10.2011 06:28

Когда я этим летом ездил в Москву на CG EVENT 2009, мне довелось посетить Российское представительство корпорации NVIDIA в Москве. Тема посещения, разумеется, была — технология NVIDIA CUDA и применение её в CG. С вопросами и за разъяснениями я обратился к Юрию Уральскому — ведущему специалисту по технологиям NVIDIA.

Ведущий специалист по технологиям NVIDIA – Юрий Уральский.

Интервью представлено в виде диалога с Юрием, как в текстовом, так и в видео варианте.

Первая часть видео-версии интервью с Юрием Уральским.

Dimson3d | Добрый день Юрий, спасибо, что согласились дать интервью для on-line журнала 3dgo.ru. Расскажите, пожалуйста, о NVIDIA CUDA, как появилось направление GPGPU и что стало предпосылкой к созданию технологии CUDA?

Стоит начать с вопроса — Что такое CUDA? CUDA — платформа, а не какой-то язык программирования, не какая-то среда программирования, а платформа, которая позволяет использовать мощности графических процессоров (GPU) для вычислений общего назначения. Почему это стало интересно? Примерно в 2003 году сформировалось сообщество энтузиастов, которые стали использовать GPU для запуска произвольного кода. Тогда еще не было CUDA, были стандартные графические API. Но примерно в то время GPU стали достаточно программируемыми. То есть появилось понятие графического шейдера, Open GL и Direct X фактически позволял вам сконфигурировать графический pipeline визуализации. К примеру, расчет цвета пикселя, указать какие текстуры используются и по каким правилам смешиваются, каким образом получается пиксель. Примерно в 2003 году появилась программируемость, разработчики получили возможность написать произвольную программу, которая выполнялась на каждом пикселе и вычисляла, какой ни будь алгоритм. Вместо того, чтобы фиксированным образом конфигурировать графический pipeline, появилась возможность описывать действия, которые производятся над каждой вершиной или пикселем в виде программы. При этом интерфейс GPU оставался сугубо графическим. Т.е. все равно нужно было использовать Direct X или Open GL. Можно так сказать, что графический конвейер остался тем же самым, но мы добавили программируемость в определенные места этого конвейера. Т.е. в конфигурируемом конвейере появилась возможность заменять участки на программы. При этом энтузиасты поняли, что эту возможность можно использовать не только для графики, но и для любых вычислений. Если представить, что мы вычисляем не цвета пикселей, а какие то значения, решаем уравнения. При этом соответственно ваш экран или массив пикселей, который вы считаете, становится выходным массивом данных, а ваша «текстура», которую вы подаете — входным массивом данных. Это то, что называется GPGPU.

Естественно, программирование, таким образом, было сопряжено с большими трудностями, потому что разработчикам нужно было изучать API, понимать, как работает графический ускоритель, и для многих это оставалось недоступным. Если человек исследователь, в какой-то предметной области несвязанной никак с графикой, ему соответственно требовалось время и ресурсы чтобы изучить саму программную модель того же Direct X. Но, тем не менее, люди этим занимались. Почему это было интересно? Потому что для большого класса задач оказалось, что производительность, которую они получают, используя GPU, значительно превосходила CPU.

Примерно в то время мы за этим очень внимательно наблюдали и попытались проанализировать все проблемы, с которыми разработчики сталкивались, и мы решили создать свою программную модель, которая все эти проблемы решала. То есть модель-платформа, которая позволяла запускать произвольный код на GPU. Собственно это идея, которая лежит в основе CUDA. Сама CUDA на рынке появилась в конце 2006 года. С приходом архитектуры G80. Когда появились карты GeForce 8800 — первые наши продукты, которые поддерживали CUDA.

Dimson3d | Архитектура у G80 была существенно переработана?

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

Архитектура чипа G80.

Еще раз подчеркну, что CUDA — не какой то конкретный язык программирования. Люди зачастую ассоциируют с языком C и в принципе изначально мы такие заявления делали — что CUDA - язык программирования. Теперь мы пытаемся от этого уйти, то есть CUDA – именно платформа. Набор средств, которые позволяют вам использовать возможности GPU для вычислений. На данный момент у нас есть компилятор с языка С, но это не значит, что в будущем будет только он. У нас есть планы по поддержке других языков, будет Open CL, DX Compute, все это языки программирования, программные среды поддерживают одну и туже базовую модель вычислений, и туже базовую архитектуру. Вот эта архитектура называется CUDA.

Dimson3d | Скажите, а какие различия существуют, между разработкой для CPU и GPU?

Наверное, в первую очередь, стоит отметить, какие архитектурные отличия существуют между CPU и GPU. Потому что из этого будут следовать отличия программирования. То есть GPU по сути своей — массивно параллельный процессор. Традиционная модель вычислений на CPU подразумевает последовательную модель исполнения. То есть у вас есть программа набор инструкций и эти инструкции вы выполняете одну за другой последовательно. А GPU подходит к проблеме совсем с другой стороны. Мы изначально предполагаем что, в наборе данных задач, которые мы обрабатываем, присутствует очень высокая степень параллелизма. То есть если мы говорим о графике, то совершенно естественно у вас большое количество пикселей на экране, большое количество вершин, треугольников и с этим большим массивом данных вам необходимо провести действия, но которые сходны. Одна последовательность действий, одна программа, которая исполняется сразу в массивно-параллельном режиме. В соответствии со свойством таких систем, мы изначально имели дело с очень массивно-параллельными задачами — коими являются графические задачи. Исходя из этого, архитектура GPU сильно отличается от архитектуры CPU. Мы имеем дело с большим массивом вычислительных модулей. Каждый, из которых работает в какой-то степени независимо, но все они выполняют одну последовательность действий одну программу над большим массивом данных. CPU в отличии от этой модели, использует другой подход. Вместо того, что бы использовать очень много маленьких процессоров, которые все делают, они строят достаточно увесистые ядра. Большие размеры кэша, обеспечивая достаточно высокую производительность при исполнении последовательного кода, но при этом очень трудно вместить большое количество ядер на кристалл. Допустим, сейчас Intel говорит о 4 — 8 ядрах на кристалле, в то время как у нас это море процессоров, массив процессоров исчисляется сотнями. Наш последний GPU например Tesla 10-ой серии — 240 процессоров, которые работают параллельно. Кардинальные отличия между архитектурами – то, что мы тратим площадь кристалла на сами вычислительные модули и делаем их очень много. В то время как центральный процессор, тратит площади кристалла, допустим, на кэш и достаточно небольшое количество относительно мощных вычислительных ядер. В соответствии с этим, программные модели тоже кардинально отличаются. Собственно поэтому мы и вынуждены были создать CUDA потому что традиционные языки программирования такие — как традиционный С не совсем подходят для выражения этого параллелизма. Нам пришлось взять стандартный С, расширить его мета-конструкциями для того, что бы программист мог выражать параллельные задачи и создать свой компилятор. В этом, наверное, и состоит главное отличие — масштаб параллелизма, к которому мы идем.

Пример кода на стандартном языке C, и пример кода с дополнениями для параллелизма.

Изначально CUDA как модель поддерживала гетерогенные вычисления — вы строите свою программу в виде секций. Есть секции, которые массивно параллельны — секции, которые будут исполняться на GPU. Есть секции, которые исполняются последовательно на CPU. С самой первой версии CUDA это было реализовано и поддерживалось. В одной программе вы могли смешивать параллельные и последовательные участки кода.

 
   
 
Ulti Clocks content

Новые поступления

Циклевка полов
Одним из самых лучших видов напольного покрытия можно назвать паркет. Состоящий из экологически чистой древесины, у него есть и масса других достоинств: практичн...
Значение 3D моделирования в нашей жизни
В наш век высоких технологий наука не стоит на месте. Большой популярностью сейчас пользуется 3D моделирование различных объектов. ...
Привет всем посетителям рендера! Я уже рассказывал о себе в прошлом making of
Привет всем посетителям рендера! Я уже рассказывал о себе в прошлом making of. С того времени коренных изменений в моей жизни не было, кроме 3D-Award на CGSociety за эту работу :-)....

Методы

3D моделирование в деятельности человека
Компьютеры, планшетные и настольные, равно как и компьютерные технологии прочно обосновались в нашей повседневной жизни. Очень часто их присутствия не замечают, однако компьютерные технологии широко применяются во в...
3D моделирование как способ визуализации в среде проектирования
В наше время компьютерная графика используется в качестве одной из методик проектирования в самых разных отраслях промышленности и предоставления услуг. В этом плане данный метод является очень удобным для визуализа...
История развития 3D моделирования и компьютерной графики
Компьютерная графика бывает двух типов — интерактивная и неинтерактивная графика. В последнем случае мы просто видим графический объект, например по телевизору или в компьютере, но не можем его изменить и манипулиров...
Введение в компьютерную графику и 3D моделирование
Сегодня существует очень мало аспектов нашей жизни, которые не зависели бы от компьютеров. Практически каждый день мы имеем дело с компьютерами — дома, на работе, когда снимаем деньги в банкомате, во время поездки в мет...
3D моделирование и программы для создания компьютерной графики
Для того чтобы создавать компьютерную графику, используется много разных программ. CAD: позволяет архитекторам и инженерам составлять проекты конструкций. Это акроним для автоматизированного проектирования. CAD предст...
 

Стоит попробовать

3D моделирование - воплощение любой фантазии
В настоящее время компьютерная графика проникла во все сферы человеческой деятельности. Черчение, рисование, моделирование и даже проектирование – все это сфера применения компьютерной графики. Голливудские фильмы ...

Документация

3DS Max: краткий обзор
У большинства современных дизайнеров слово «3D» ассоциируется с известной программой 3D Max, которая предназначена преимущественно для создания графических сцен и разработку качественной анимации. Не является удивите...
Top
Яндекс.Метрика
Travel Turne Tranzito
заказ контекстной рекламы