IGROMANIA.RU
Registration
MoreLess
Популярные за неделю
Популярные за месяц
Достать геймпад и плакать: игры, берущие за душу: от Ori and the Blind Forest и This War Of Mine до BioShock Infinite и Life is Strange Спец > Достать геймпад и плакать: игры, берущие за душу: от Ori and the Blind Forest и This War Of Mine до BioShock Infinite и Life is Strange
Сегодня мы говорим об играх, которые затронут вас за живое.
Комментариев: 20
На скорости 160 км/ч, или Как работают гоночные игры Спец > На скорости 160 км/ч, или Как работают гоночные игры
Рассказываем, с какими трудностями сталкиваются разработчики гоночных игр и как преодолевают их.
Комментариев: 18
В ожидании ZEN. Тестируем игровой компьютер Edelweiss MSI Edition на базе AMD 970 Железный цех > В ожидании ZEN. Тестируем игровой компьютер Edelweiss MSI Edition на базе AMD 970
Тестируем игровой компьютер на базе AMD 970 и двух Radeon RX 480.
Комментариев: 18
Падение Брюса Уэйна. Обзор Batman: The Telltale Series Рецензии > Падение Брюса Уэйна. Обзор Batman: The Telltale Series
Одна из самых необычных интерпретаций образа Бэтмена. Здесь главная роль отводится человеку под маской.
Комментариев: 14
Топ-10 игр для большого экрана: от Watch Dogs 2 до Battlefield 1 Спец > Топ-10 игр для большого экрана: от Watch Dogs 2 до Battlefield 1
Современные проекторы позволяют устроить игровой «кинотеатр» с качественной картинкой прямо дома. Какие игры при этом лучше взять?
Комментариев: 9
Крепкий хозяйственник. Превью Urban Empire В разработке > Крепкий хозяйственник. Превью Urban Empire
Финские разработчики высказываются о важности диалога между властями и обычными гражданами.
Комментариев: 5

Сегодня, пожалуй, только ленивый не слышал о графических процессорах, занимающихся расчетами общего назначения. Прогремела по всему миру NVIDIA CUDA, собрал аудиторию AMD FireStream, нагнали туману OpenCL и DirectX 11, внес свою судебную лепту Intel. В общем, никто не остался в стороне — так или иначе, к технологии приложили руку все, даже Apple со своей поддержкой GPU-расчетов общего назначения на уровне операционной системы. Самое время разобраться, что вообще такое расчеты общего назначения, почему видеокарты нужны не только для игр и что хорошего несет нам эра многофункциональных графических процессоров.

Шведы, белки и параллельные вычисления

Параллельные вычисления позволяют моделировать сложные химические процессы, происходящие в клетках организма, за считанные минуты.

Все началось в 2003 году. Группа студентов из Готландского университета (г. Висби, Швеция) столкнулась с неприятной проблемой: им нужно было произвести довольно масштабные параллельные матричные вычисления. Настолько масштабные, что центральные процессоры компьютеров, к которым студенты имели доступ, занимались бы этими вычислениями около шести месяцев. А на носу у студентов была сдача дипломной работы.

Сначала шведы решили прибегнуть к помощи мировой общественности (программы добровольного участия в распределенных вычислениях как раз набирали популярность), но закопались в необходимых для регистрации проекта документах. И тогда одному из них пришла в голову мысль: а почему бы не использовать вместо центрального процессора графический? Вычислительные мощности GPU к 2003 году уже на голову превосходили возможности CPU, ориентированы были как раз на параллельные вычисления и просто идеально подходили для решения задачи. Правда, аппаратных средств для просчета «не графики» на GPU в тот момент еще не было, но это не могло остановить энтузиастов, и уже через несколько недель начались расчеты. Заняли они два с половиной месяца.

Так родилась концепция GPGPU, General-Purpose Graphics Processing Units, расчетов общего назначения, выполняемых графическим процессором. Как и всякий энтузиазм от мира техники, всего за пару лет идея поработила умы множества программистов по всему свету. Создавались сообщества приверженцев новой концепции, устраивались международные форумы и круглые столы. Самым известным, пожалуй, стал проект BionicFX, на основе которого строилась социальная сеть AVEX (Audio Video EXchange). Используя видеокарту GeForce 6800 в качестве процессора, BionicFX быстро и без особенных проблем перегонял аудиофайлы из формата в формат, приводил их к нужному размеру и даже умел обрабатывать данные потоково, по мере загрузки файла на сервер.

Другой нашумевший проект — программа распределенных вычислений Folding@Home Стенфордского университета. Она, кстати, начиналась с использования центральных процессоров, но с появлением GPGPU перешла на процессоры графические. Производительность от этого увеличилась втрое.

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

Разумеется, все это не могло пройти незамеченным главными китами графического бизнеса — NVIDIA и ATI. Первыми встрепенулись «красные»: в начале 2006 года компания ATI объявила о скором выпуске аппаратной платформы Radeon R580, способной заменить собой «черновые наброски энтузиастов GPGPU». Правда, вышла платформа еще только через год, причем совсем под другим названием — готовый продукт носил гордое имя AMD FireStream и был рассчитан на работу с видеокартами нового поколения, построенных на 55-нм техпроцессе. NVIDIA со своим анонсом GPGPU несколько припозднилась: впервые о платформе для вычислений общего назначения силами GPU компания заговорила только осенью 2006 года. Зато уже к началу 2007-го первая версия аппаратно-программной системы CUDA (Compute Unified Device Architecture, архитектура вычислений общего назначения) появилась на ее официальном сайте, и всего за полгода набрала такую популярность, которую пара AMD-ATI не может набрать со своим FireStream до сих пор.

Все дело в волшебных пузырьках

Для того, чтобы привлечь внимание общественности к археологическому проекту InDies, требующему распределенных вычислений, правительство Индии устроило в 2004 году концерт-шествие на улицах Бомбея.

Прежде чем разбираться в тонкостях разных вычислительных платформ, давайте поговорим о том, чем же, собственно, графический процессор так превосходит центральный? CPU создавались для работы с потоковыми инструкциями, а GPU — для параллельных вычислений. То есть, если утрировать, центральный процессор предназначен для обработки инструкций, в которых сначала считается А, потом B и, наконец, C (потому что результат C как-то связан с результатами A и B), а графический — для инструкций, в которых все три компонента считаются одновременно и результаты просчетов на данном этапе никак не влияют друг на друга.

Однако сказать, что центральные процессоры не умеют работать с параллельными вычислениями вообще, — значит погрешить против истины. Они умеют. Просто не очень хорошо. Например, процессоры Pentium могут выполнять две инструкции за такт, а Pentium Pro — динамически изменять приоритет инструкций и, соответственно, исполнять их практически параллельно.

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

Центральному процессору понадобилось бы почти полчаса на то, чтобы нарисовать вот такую картинку. Графический справляется с этим за сотые доли секунды.

Правда, в обратную сторону правило несовместимости тоже действует. Как только GPU сталкивается с необходимостью произвести последовательные вычисления, его производительность резко падает. В теории можно научить графический процессор гибридным вычислениям (то есть и последовательным, и параллельным, причем в любых комбинациях), но пока производители видеокарт этим заниматься не хотят — мол, зачем делать одно устройство для всего на свете, если можно использовать специально разработанные для каждой задачи компоненты? Позиция спорная, но пока лидирующая на рынке. Именно поэтому, вопреки предсказаниям многих IT-аналитиков, в ближайшее время мы не увидим всемогущих графических процессоров, способных заменить процессоры центральные.

NVIDIA: она уже вертится!

Многие программы уже сегодня используют GPU для обработки графики и сопутствующих задач.

Самой крупной и реально поддерживаемой на сегодняшний день платформой, созданной для расчетов общего назначения силами графического процессора, несомненно, является NVIDIA CUDA. Разрабатывается она уже два года, пережила три версии, множество патчей и используется, по данным NVIDIA, более чем на шести миллионах компьютеров ежедневно. Притом, что появилась CUDA не первой и конкуренция у нее не такая уж слабая, результат внушительный.

Секрет успеха прост — равновесие. Закрытая архитектура уравновешивается доступностью и бесплатностью пакета разработчика, жесткая привязка к определенному железу — широким выбором этого самого железа… Систему поддерживает уже несколько десятков различных видеокарт, от слабых мобильных решений и бюджетного ION до мощнейших топовых карточек (полный список можно посмотреть здесь: www.nvidia.ru/object/cuda_learn_products_ru.html). Причем под любую из них пишется одна и та же программа, исполняемая одним и тем же способом, — и хоть на слабой карте она и станет просчитываться в несколько раз дольше, работать все-таки будет безо всяких портирований.

При помощи GPGPU работать с трехмерными моделями стало проще — даже самые сложные из них теперь просчитываются за считанные секунды.

Еще один плюс CUDA как платформы — доступность для программистов. NVIDIA решила не изобретать велосипед и задействовать языки программирования, которыми люди уже много лет активно пользуются. C# c небольшими расширениями, Fortran, Python, Delphy, OpenGL. Единственное, чему придется поучиться начинающему «кудеру», — это писать программы с параллельными вычислениями. Дело в том, что классическое программирование ориентировано на работу с CPU и там как раз всех со школьной скамьи учат от параллельных вычислений уходить… впрочем, курсы переподготовки есть уже во многих мировых университетах. У нас научиться «кудить» по-настоящему можно на ВМК МГУ, на физтехе СПбГУ, в Екатеринбургском государственном университете и в Казанском государственном университете.

Кроме того, NVIDIA периодически устраивает обучающие курсы в различных российских городах — так что всем заинтересованным советуем следить за объявлениями на стенах родных технических институтов.

Набор разработчика CUDA состоит из трех компонентов: собственно набора средств (подгружаемых библиотек), компилятора (поддерживающего несколько языков программирования) и документации. Все это совершенно бесплатно можно скачать на сайте www.nvidia.ru/object/cuda_get_ru.html или с нашего диска из раздела «Софт».

AMD: мир, дружба, разработка

Трехмерный мультфильм «Вверх!», вышедший на экраны весной этого года, целиком был просчитан при помощи технологии CUDA. На все расчеты создатели потратили чуть больше двух месяцев.

AMD подошла к проблеме с иной стороны. Вместо того, чтобы делать из видеокарт потенциального (помним про Джека) конкурента своим процессорам, разработчики решили объединить усилия и сделать новую аппаратную платформу из центрального и графического процессоров, которая будет с одинаковой легкостью справляться и с гетерогенными, и с параллельными вычислениями. Целиком она, правда, пока не готова, но фундамент оценить уже можно: по скорости просчета GPGPU-система AMD опережает конкурентов. Правда, тестирования показывают, что качество исполнения пока не столь внушительно.

Принцип работы FireStream немногим отличается от CUDA: графический процессор все так же берет на себя параллельные задачи, собирает свои потоковые процессоры в кластеры и считает задачи одновременно. Но если чип NVIDIA может справляться с появляющимися вдруг в коде гетерогенными задачами, чип ATI передает эти задачи центральному процессору. На первый взгляд, такой подход должен замедлять общую работу системы, но на практике он выливается в большую скорость работы — все-таки CPU, даже при учете времени на передачу данных туда-сюда, справляется с потоковыми вычислениями быстрее, чем GPU.

На этом преимущества FireStream заканчиваются. В отличие от CUDA эта система использует не общепринятый, а свой собственный язык программирования, поэтому учиться работать с ней гораздо сложнее. Кроме того, сам язык еще недоработан, компилятор тоже не идеален, из-за чего код программы зачастую получается неоптимизированным и громоздким.

Большая часть GPGPU систем построено сегодня на технологии NVIDIA CUDA. Ее поддерживает более трех десятков видеокарт и 50 различных программ.

Программа Badaboom позволяет перекодировать видеофайлы из формата в формат, используя вычислительные мощности графических процессоров NVIDIA.

По-настоящему сравнить производительность CUDA и FireStream пока не удалось никому: единственная программа, которая официально работает с обеими системами, Cyberlink PowerDirector, сама не отличается оптимизированным кодом, поэтому говорить о точности результатов не приходится. Если смотреть на чистые цифры, технология AMD опережает детище NVIDIA при перекодировании видео. Но при этом качество картинки, которое выдает на выходе CUDA, получается более высоким, чем качество той же картинки от AMD. Возможно, всему виной недоработанные технологии, возможно — разница в подходах к выполнению задачи. Как бы там ни было, сравнивать готовый продукт с неготовым бессмысленно, так что мы лучше подождем, когда FireStream будет дописана до конца. Ждать, скорее всего, придется долго. Ведь AMD в отличие от NVIDIA не ставит разработку системы GPGPU в число наивысших приоритетов (как и собственный графический движок, кстати) и потому не называет никаких сроков.

Все желающие проверить эффективность работы FireStream могут скачать пакет разработчика (http://developer.amd.com/gpu/ATIStreamSDK/Pages/default.aspx).

Не конкуренты

Использование плагина ArcSoft SimHD для плеера ArcSoft TotalMedia Theatre, работающего с CUDA, ускоряет рендеринг изображения высокой четкости почти вдвое.

Не утихают споры о том, нужны ли все эти аппаратные ускорения от NVIDIA и AMD, если на свет вот-вот появится долгожданный фреймворк OpenCL, которому суждено стать краеугольным камнем всей индустрии графических расчетов? Большинство спорщиков считает, что ни CUDA, ни FireStream при таком раскладе никому не нужны. Но есть нюансы.

Дело в том, что OpenCL (точно так же, как до него OpenGL и OpenAL) — это всего лишь язык программирования. На котором, да, очень удобно кодить разного рода графику, от игр и мультфильмов до сложнейших моделей белков и метеорологических процессов. Но сам по себе OpenCL ничего не считает и считать не может: он все равно, так или иначе, опирается на железо, с которым работает. И поддержка вычислений общего назначения силами GPU, о которой идет речь в документации к новому фреймворку, — это не что иное, как поддержка технологий, при помощи которых эти самые вычисления производятся.

Другое дело, что благодаря OpenCL параллельные вычисления теперь можно будет использовать не только для просчета графики, но и для различных других вещей. Например, для работы с физическими движками или просчета AI.

Точно так же обстоят дела и с грядущим Direct3D 11. Так, например, в Windows 7 этот фреймворк позволяет использовать аппаратные средства для перекодирования видеофайлов: при наличии соответствующих железа и драйверов это будет делаться при помощи NVIDIA CUDA, при отсутствии — силами центрального процессора.

Таким образом, ни OpenCL, ни Direct3D 11 конкурентами продуктам NVIDIA и AMD не являются. Напротив, они созданы для того, чтобы с ними эффективно взаимодействовать. Ведь включить ту же CUDA для поддержки существующих сегодня игр уже можно, но пока что это не очень эффективно: переключение между стандартным режимом работы видеокарты и режимом CUDA занимает слишком много времени, и драгоценные fps теряются. Решить эту проблему должны вычислительные шейдеры, которые разбиваются на потоки еще на «верхнем» уровне выполнения программы, и видеокарта благодаря этому получает на просчет данные одного типа — производительность от этого увеличивается, а нагрузка на видеокарту падает.

Сегодня AMD заявляет, что технология FireStream не относится к приоритетным проектам компании. Закончить разработку системы планируют только к 2011 году.

Apple одной из первых начала поддерживать проекты GPGPU. Сейчас с CUDA уже вовсю работает iTunes (при перекодировании видео и аудио в версии для мобильных устройств), скоро ее начнет поддерживать новая Mac OS.

* * *

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

Благодаря технологии CUDA появилась на свет концепция ION, где центральный процессор играет роль вспомогательного инструмента и потому не обязан отличаться ни особенной многоядерностью, ни безумной производительностью. Благодаря концепции GPGPU компьютеры становятся дешевле и доступнее, учатся решать все более и более сложные задачи. Впрочем, списывать CPU с парохода истории пока еще очень рано — мощности его еще есть куда наращивать.

До Нового года осталось совсем чуть-чуть! Принимайте поздравления от разработчиков любимых игр.
Вспоминаем самые продолжительные игры этого года, которые лучше всего проходить именно во время зимних каникул.
Вспоминаем, что происходило и происходит в мире онлайновых игр.
Комментарии к статьям
Войти и прокомментировать                Войти под логином игромании | Зарегистрироваться
Главные новости
Самые комментируемые статьи за месяц:
Рецензии > Я и мой верный хранитель. Обзор The Last Guardian
Спец > Лучший мой подарочек — это Xbox One S!
Спец > Игра в кубики. В чем сила Minecraft?
Железный цех > Идеал. Тестирование игрового компьютера MSI Aegis Ti
Спец > Overwatch и все-все-все. Чем запомнилась церемония The Game Awards 2016
Рецензии > Соборы в небесах. Обзор Space Hulk: Deathwing
Спец > Влюбиться в убийцу: история серии Assassin’s Creed
Спец > Достать геймпад и плакать: игры, берущие за душу: от Ori and the Blind Forest и This War Of Mine до BioShock Infinite и Life is Strange
Спец > Горячий осенне-зимний сезон Windows Store. Главные игровые новинки
Спец > На скорости 160 км/ч, или Как работают гоночные игры
Поиск по сайту Игровые платформы: PC  |   X360  |   XONE  |   PS3  |   PS4  |   Wii  |   Wii U  |   PSP  |   Vita  |   NDS  |   3DS  |   Android  |   iOS
1997-2017 ООО «Игромедиа». Мнение авторов и посетителей сайта может не совпадать с мнением редакции. Полное или частичное воспроизведение материалов сайта и журнала допускается только с согласия редакции. Для прямого контакта с редакцией пишите на основную почту «Игромании.ру».
Пользовательское соглашение

КОММЕРЧЕСКИЕ ССЫЛКИ:
Механизм выбора платформы позволяет отображать на страницах информационного портала материалы, относящиеся строго к выбранным платформам.

Каждый пользователь индивидуально выбирает для себя интересующие его игровые платформы.
 
Rambler's Top100 Яндекс цитирования