¬аше окно в мир —јѕ–
 
Ќовости —татьи јвторы —обыти€ ¬акансии Ёнциклопеди€ –екламодател€м
—татьи

29 ма€ 2012

„ем  еплер умнее ‘ерми, и как это поможет —јѕ–

Ќиколай —нытниковЌиколай —нытников

Ќа конференции GTC 2012 NVIDIA анонсировала вступление в новую эпоху высокопроизводительных вычислений на видеокартах (GPU Computing)

 онечно, речь в статье пойдЄт вовсе не о несуразном сравнении Ёнрико ‘ерми и »оганна  еплера, а об архитектурах видеокарт NVIDIA, названных в честь этих знаменитых ученых, и также о том, как GPU вычислени€ могут помочь развитию —јѕ–.

  насто€щему моменту NVIDIA уже добилась грандиозных успехов в области развити€ и продвижени€ своих технологий - это и платформа CUDA, со средствами отладки и профилировки под Windows, Linux и Mac, множество специализированных библиотек, таких как OptiX, PhysX, cuBLAS, cuFFT и др., средства разработки OpenACC, PGI Accelerator, OpenCL — подробную информацию можно найти в NVIDIA Developer Zone, а определенное впечатление о текущих достижени€х составить из фоторепортажа с конференции GTC 2012.

ќднако перед погружением в технические детали новейшей архитектуры NVIDIA Kepler и, учитыва€ недостаточную осведомленность многих профессиональных программистов и специалистов по вычислительной математике о возможност€х современных GPU, полезно совершить небольшой экскурс в историю развити€ вычислений на видеокартах.

ѕредыстори€

Developers, Developers, Developers, Developers,
Developers, Developers, Developers, Developers,
Developers, Developers, Developers, Developers!

—тив Ѕаллмер напоминает, что надо
заботитьс€ о прикладных разработчиках


’от€ рождение термина GPGPU (General Purpose GPU) компани€ NVIDIA датирует 2003 годом, в течение нескольких последующих лет программирование неграфических вычислений оставалось уделом энтузиастов — ведь оно подразумевало необходимость переформулировать свою задачу в терминах текстур и шейдеров, требовало отличного понимани€ архитектуры GPU и использовани€ API графических библиотек (типа OpenGL). ѕоддержки вещественных чисел с двойной точностью не было, а выигрыш в производительности по сравнению с x86 процессорами было трудно назвать фантастическим.

¬прочем, здесь стоит оговоритьс€, что р€д организаций, например, из нефтегазовой отрасли довольно быстро прониклись свежей идеей — им было необходимо обрабатывать данные терабайтного и петабайтного размера, так что любое ускорение в производительности гор€чо приветствовалось. », кроме того, дл€ решени€ задач обработки сейсмических данных было достаточно использовать одинарную точность — ведь сами данные получены со значительным шумом. “акже немаловажно, что эти компании могли себе позволить инвестировать в хардкорное программирование.

 ороче говор€, поскольку порог входа в область вычислений на видеокартах был чересур высок дл€ большинства потенциальных пользователей, то NVIDIA, оценив перспективу рынка GPGPU, постаралась максимально сфокусироватьс€ на потребност€х разработчиков и упростить им жизнь. ¬след за выходом чипа G80 в 2006 году компани€ выпускает первую версию CUDA — технологию, позвол€ющую программировать с помощью специального расширени€ попул€рного €зыка C. ¬прочем, работать можно было по-прежнему только с вещественными числами одинарной точности, и это резко снижало привлекательность дл€ многих научных и индустриальных задач. Ќа дальнейшие улучшени€ потребовались еще два года, и в середине 2008 вышла архитектура GT200, куда уже была добавлена поддержка вещественной арифметики с двойной точностью.

»ллюстраци€ ««акона» ћура: в 2006 году на кривой обозначена NVIDIA G80. ћузей компьютерной истории. —ан-’осе,  алифорни€.

ќднако насто€щим прорывом стала Fermi (GF100), выпущенна€ в 2010 году. NVIDIA фактически перепроектировала чип, учт€ приобретенный многолетний собственный опыт и опыт уже сформировавшегос€ сообщества пользователей.

–езультат не заставил себ€ долго ждать: резко выросло число научных публикаций, посв€щенных разработке специальных алгоритмов дл€ GPU, по€вилось множество коммерческих программных решений, превращающих настольный компьютер в высокопроизводительную систему, а в 2011 году гибридному суперкомпьютеру Tianhe ( итай), основанному на NVIDIA Tesla, удалось прорватьс€ на первое место в рейтинге Top-500. ћожно сказать, что в этот момент технологи€ вычислени€ на видеокартах окончательно сформировалась как «мейнстрим».

Ќеобходимо отметить, что на прот€жении всего этого времени NVIDIA серьезно инвестировала не только в создание «железа», но и в развитие экосистемы вокруг своих решений. —оздание специализированных библиотек, множество примеров решенных задач с исходным кодом, документаци€ и тонны статей, грамотный маркетинг и PR — всЄ это способствовало удачному продвижению платформы CUDA и быстрому росту сообщества разработчиков.  роме того, чтобы начать программировать, совсем необ€зательно покупать дорогую профессиональную Tesla - достаточно приобрести относительно дешевую GeForce (скажем, стодолларовую GTS 450) и проверить, насколько вс€ технологи€ подходит дл€ ваших задач. ¬прочем, не стоит забывать, что GeForce от Tesla отличаетс€ не только ценой. —кажем, коэффициент отношени€ производительности вычислений с двойной точностью к одинарной дл€ Tesla равен 1/2, а дл€ GeForce - 1/8.

ƒженсен ’уанг, CEO NVIDIA, представл€ет платформу CUDA «в числах»: за 4 года рост довольно впечатл€ющий.

«десь интересно упом€нуть про конкурента NVIDIA — компанию AMD с их линейкой видеокарт Radeon и FireStream. „уть отстав на старте гонки GPGPU, компани€ ATI Technologies, будучи уже купленной AMD, довольно быстро наверстала упущенное и врем€ от времени вырывалась вперед, придава€ зар€д бодрости NVIDIA. Ќапример, AMD первой в 2007 году поддержала на аппаратном уровне вещественную арифметику с двойной точностью в FireStream 9170, регул€рно выпускала более мощные видеокарты и даже отметилась в списке Top-500 в 2009 году — суперкомпьютер Tianhe, основанный на Radeon HD 4870, зан€л 5-ую позицию (впоследствии, правда, Tianhe переориентировалс€ на видеокарты NVIDIA).

ќднако хорошее аппаратное или техническое решение — это половина дела. Ќеобходимо, чтобы разработчики захотели дл€ него создавать ѕќ. “рудно сказать, что €вилось определ€ющим фактором — проблемы платформы StreamSDK (включавшей технологии ATI CAL и ATI Brook+), сложности с кодированием нетривиальных алгоритмов или просто отсутствие должного маркетинга, но приходитс€ признать, что AMD серьезно проигрывает NVIDIA в войне за симпатии разработчиков GPGPU. ¬ 2011 году AMD изменила свою стратегию и полностью перешла на стандарты OpenCL и DirectCompute.

Ћюбопытно, что NVIDIA, €вл€€сь одним из поставщиков реализации OpenCL (и, кстати, первой компанией, поддержавшей этот стандарт в 2009), совсем не спешит рекомендовать его своим пользовател€м. ¬ качестве причин привод€тс€ сырость как самого стандарта, так и реализации и документации, отсутствие поддержки новейших возможностей видеокарт. “ак что перед разработчиками сейчас возникает непроста€ альтернатива — или ориентироватьс€ на CUDA и видеокарты NVIDIA, принос€ в жертву возможность запуска программ на AMD, или выбирать OpenCL, риску€ сильно потер€ть в эффективности на железе NVIDIA. », по всей видимости, многое в этом выборе зависит от того, насколько успешной будет архитектура Kepler, возможности которой будут полностью раскрыты в Tesla на чипе GK110 и соответствующей  CUDA 5.0. ¬р€д ли стоит ожидать в обозримом будущем полной поддержки функционала Kepler дл€ платформы OpenCL.

 ороче говор€, к насто€щему моменту технологи€ вычислений на GPU уже набрала хорошие обороты. Ѕольше не возникает сомнений, что дл€ некоторых задач биоинформатики, вычислительной физики, визуализации и проч., коэффициент ускорени€ по сравнению с много€дерными процессорами может составить от 2 до нескольких дес€тков раз. ѕоэтому теперь перед NVIDIA стоит друга€ задача: закрепить успех своей платформы, не просто увеличива€ производительность видеокарт, а предлага€ такие улучшени€, которые сделали бы адаптацию существующих алгоритмов под платформу CUDA не сложнее программировани€ дл€ x86 процессоров. "Ѕольше приложений - хороших и разных!", - таков девиз дальнейшей стратегии NVIDIA.

јрхитектура Kepler нацелена на более широкий класс приложений — прежде всего на те, где требуетс€ работа с нерегул€рными данными. (»сточник: NVIDIA.)

“ехнические особенности архитектуры Kepler

—пециалисты NVIDIA выдел€ют 3 ключевых нововведени€ Kepler по сравнению с Fermi: SMX (есть и в GeForce, и в Tesla), Hyper-Q и Dynamic Parallelism (только в Tesla GK110).

SMX (Streaming multiprocessor) — это новый вычислительный модуль, пришедший на смену SM (Fermi). ѕоскольку энергопотребление уже давно €вл€етс€ головной болью поставщиков процессоров и одним из главных ограничений дл€ увеличени€ производительности, то при проектировании Kepler инженеры компании ориентировались на максимизацию соотношени€ «ѕроизводительность/¬атт» (в то врем€ как несколько лет назад старались уменьшить себестоимость издели€: «ѕроизводительность/доллар»)

», действительно, утверждаетс€, что в метрике «ѕроизводительность/¬атт» Kepler выигрывает у Fermi в 3 раза.  оличество €дер CUDA на SMX составл€ет 192 (было 32 на Fermi SM). “ак что теперь топовые видеокарты Kepler оборудованы 8 SMX модул€ми с 1536 €драми вместо 16 SM с 512 €драми дл€ Fermi, что дает рост абсолютной производительности также в 3 раза.

ѕод Hyper-Q понимаетс€ возможность одновременного выполнени€ нескольких (до 32) задач на GPU, запущенных, например, из разных CPU-процессов. ƒл€ Fermi пользователь тоже мог получить доступ к одной видеокарте из разных процессов и запустить несколько задач одновременно. ќднако из-за того, что была только одна аппаратна€ очередь дл€ задач, их исполнение происходило всегда последовательно. —кажем, если задача загружала ресурсы видеокарты на 20%, то остальные 80% не использовались, хот€ «у дверей» в очереди ждали остальные задачи.

¬ Kepler с технологией Hyper-Q ситуаци€ изменилась — теперь есть поддержка 32 аппаратных очередей задач, так что они могут быть запущены с насто€щим параллелизмом. ≈сли один из них использует ресурсы видеокарты не полностью, то драйвер запускает на исполнение задачу из другой аппаратной очереди, что полезно дл€ большого количества небольших задач.

√лавным изобретением в Kepler, наиболее интересным дл€ программистов и разработчиков алгоритмов, €вл€етс€ Dynamic Parallelism — возможность создавать вычислительные потоки (threads) внутри уже созданных потоков без передачи управлени€ обратно в CPU. ¬ажность этого нововведени€ станет пон€тной, если вспомнить про древовидную структуру огромного количества алгоритмов вычислительной и дискретной математики. ƒл€ Fermi было необходимо завершать потоки, возвращать управление на CPU, создавать новые и т.д., либо существенно видоизмен€ть сам алгоритм. » то и другое не только добавл€ло накладные расходы и снижало итоговую эффективность кода, но и, что гораздо непри€тней, увеличивало врем€ разработки.

ƒженсен ’уанг представл€ет результаты моделировани€ динамики сталкивающихс€ галактик на Kepler GPU. »спользуемый алгоритм (tree-code Ѕарнса-’ата) призван продемонстрировать работоспособность ключевых особенностей архитектуры.

“ак что, начина€ с четвертого квартала 2012 года (а именно тогда выйдут видеокарты на основе чипа GK110, поддерживающие 3-х кратное увеличение производительности вычислений с двойной точностью, Hyper-Q и Dynamic Parallelism), жизнь большинства разработчиков будет существенно упрощена. ѕока же доступны только видеокарты на основе чипа GK104, в 3 раза ускор€ющего вычислени€ с одинарной точностью и нацеленного на задачи обработки изображений,  сигналов и сейсморазведки.

Ѕолее подробные характеристики архитектуры Kepler c описанием остальных особенностей (таких как, например, GPUDirect — технологии, которой об€зательно заинтересуютс€ пользователи гибридных суперкомпьютеров) можно найти в статье NVIDIA.

GPU вычислени€ на службе у —јѕ–?

ѕриложени€ CAE дл€ инженерного анализа, будучи наиболее требовательными к вычислительным ресурсам, уже давно используют дл€ расчетов небольшие кластеры и суперкомпьютеры. Ќеудивительно, что разработчики этих приложений были одними из первых, кто осознал потенциал GPU вычислений — из хорошо известных примеров можно назвать программные продукты ANSYS или SIMULIA. Ѕолее того, у NVIDIA уже существует специализированное программно-аппаратное решение Maximus на базе видеокарт Quadro и Tesla, позвол€ющее одновременно выполн€ть и инженерный анализ и визуализацию.

ќдновременный инженерный анализ и рендеринг дл€ мотоцикла на рабочих станци€х NVIDIA Maximus. (»сточник: NVIDIA)

ј как дела обсто€т с —јѕ–?  азалось бы, эти приложени€ со времени по€влени€ используют GPU по пр€мому назначению (рендеринг и визуализаци€), и их разработчики должны быть прекрасно осведомлены о возможност€х неграфических вычислений на видеокартах.

«десь стоит по€снить, что одной из наиболее вычислительно сложных задач в —јѕ– €вл€етс€ построение и обработка трехмерной модели, котора€ выполн€етс€ с помощью геометрического €дра. (Ѕолее подробно на тему €дер можно прочитать в серии статей ƒмитри€ ”шакова: «Ќа €дре», «√еометрические €дра в мире и в –оссии», «NURBS и —јѕ–: 30 лет вместе».) —оздание модели издели€ — это интерактивный процесс, и инженер не может ждать дес€ток секунд дл€ завершени€ определенной операции. ’от€ производительность современных коммерческих €дер на большинстве моделей вполне удовлетворительна, известны случаи, когда скорость обработки необходимо увеличить в сотню раз. “ехнологи€ GPU вычислений могла бы предоставить элегантное решение.

3D модель детали в —јѕ– T-Flex. »спользуетс€ 3D геометрическое €дро Parasolid (Siemens PLM Software).

  сожалению, на практике всЄ выгл€дит не так оптимистично. ¬ статье ƒжорджа јллена (Chief Technologist, Siemens PLM Software), представленной на конференции SIAM Geometric Design and Computing в 2007 году, были обозначены несколько характерных проблем, присущих существующим коммерческим геометрическим €драм:

  • —труктуры данных и алгоритмы геометрического моделировани€ реализованы неэффективно дл€ распараллеливани€: подразумевают множество ветвей логики дл€ обработки специальных случаев.
  • ѕќ разрабатывалось с конца 80-х годов, и с точки зрени€ архитектуры никто не заботилс€ о возможном распараллеливании. –азработка параллельных алгоритмов потребует переписывани€ миллионов строк legacy-кода и фактически разрушит способность к обмену данными с другими системами.
  • ћодифицировать алгоритмы в индустриально работающем €дре чрезвычайно трудно: пользователи хот€т, чтобы результаты операций с моделью были полностью идентичны тем, которые получались 10 лет назад.

”читыва€ все эти проблемы и тот факт, что за п€ть лет с момента выхода этой статьи не по€вл€лось никакой информации об использовании GPU в €драх ACIS, Parasolid, CGM, Granite One, можно сделать вывод, что соблазнительна€ перспектива ускорени€ —јѕ– может произойти лишь в рамках написанного с нул€ геометрического €дра.

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

ƒобавить комментарий

„итайте также:


¬акансии:

јктуальное обсуждение

RSS-лента комментариев

ƒавид Ћевин
ƒавид Ћевин
ќт редактора: ¬ы€снилось, что первое российское BIM-решение полного цикла по€вилось уже 11 лет назад
ѕроект ЂЌародное —јѕ–-интервьюї

—лучайна€ стать€:

BIM дл€ дорог: создание информационной модели раздела ќƒƒ с Revit, Inventor, [...] — јлина ёсупова, јлексей ўербачЄв (14 августа 2019)
isicad Top 10

—амые попул€рные материалы

   ‘орумы isicad:

isicad-2010 isicad-2008
isicad-2006 isicad-2004

ќ проекте

ѕриглашаем публиковать на сайте isicad.ru новости и пресс-релизы о новых решени€х и продуктах, о проводимых меропри€ти€х и другую информацию. јдрес дл€ корреспонденции - info@isicad.ru

ѕроект isicad нацелен на

  • укрепление контактов между разработчиками, поставщиками и потребител€ми промышленных решений в област€х PLM и ERP...
ѕодробнее

»нформаци€ дл€ рекламодателей


¬се права защищены. © 2004-2019 √руппа компаний «Ћ≈ƒј—»

ѕерепечатка материалов сайта допускаетс€ с согласи€ редакции, ссылка на isicad.ru об€зательна.
¬ы можете обратитьс€ к нам по адресу info@isicad.ru.