|
Что обещают гетерогенные вычисления?
Вряд ли можно сказать, что век CPU заканчивается. В конце концов, компании типа Xilinx всё ещё продают логические устройства, специально запрограммированные под специфические приложения, которые менее функциональны и многозадачны, чем современные вычислительные устройства, но иногда более эффективные. Вероятно, специализированные процессоры продолжат пользоваться успехом в определённых сегментах рынка, особенно там, где необходима высокая производительность. Однако в более широко распространённых средах мы ждём, что гетерогенные вычисления, в которых много вычислительных ресурсов упаковано в одно интегрированное устройство, станут более популярными. И как уже существующие устройства, они будут становиться более сложными.
Логическим завершением гетерогенных вычислений является система на кристалле (SoC), в которой все (или, по крайней мере, большинство) важных систем интегрированы в одно устройство. Например, чипы Geode от AMD (в данные момент используются в проекте One Laptop Per Child) развились из архитектур SoC 90-х годов. Хотя у большинства SoC-чипов до сих пор недостаточно мощности для современного ПК, AMD и Intel продают архитектуры, совмещающие ядра CPU, графические ресурсы и контроллер памяти. AMD называет их устройствами ускоренной обработки данных (APU), которые соответствуют и даже превышают уровень производительности, характерный для рабочих станций. В частности они дополняют знакомые архитектуры процессоров множеством ALU, используемых для ускорения трёхмерной графики. Многие нагрузки по своей природе параллельны, и APU с сотнями процессоров (в отличие от CPU с двумя или четырьмя ядрами) даёт основания для интересной дискуссии на тему потенциала программного обеспечения, оптимизированного под высокоинтегрированные SoC-чипы.
Исторически, встроенные графические решения были интегрированы в микросхемы северного моста чипсета. В какой-то момент стало просто тяжело увеличивать производительность, используя компоненты, которые расположены так далеко друг от друга, и постоянно ограничиваются "узкими местами" и задержками. В результате мы видим, как эти функции мигрировали в CPU, создавая новый ряд продукции, способной не только предложить увеличенную производительность в играх, но и справиться с общими задачами, которые выгодно используют гибридную природу SoC-систем с функциями CPU и GPU.
Для AMD это предзнаменует долгожданное завершение инициативы Fusion, которая предположительно началась в 2006 году, когда AMD выкупила ATI Technologies. AMD видела возможность того, что её процессоры и графические технологии ATI смогут вытеснить чистые CPU из постоянно растущего рынка компьютерных технологий, и компания рассчитывала возглавить этот переход. Конечно, Intel разрабатывала свою собственную встроенную графику, но несколько иным способом. Она определённо уделяла больше внимания вычислительным ядрам и меньше графической части.
В 2011 году мы стали свидетелями появления первого семейства APU серии C и E от AMD, разработанного на техпроцессе 40 нм. Интеграция позволила создать маломощные модели на 9 и 18 Вт, которые устанавливались в ультра тонкие ноутбуки. Сегодня мы знакомы с серией A семейства APU на базе архитектуры Llano. Использование техпроцесса 32 нм позволило установить достаточно ресурсов для полноценной настольной архитектуры с достаточно низкой стоимостью.
Пожалуй, из всего разнообразия характеристик, главной отличительной особенностью между всеми перечисленными моделями является соответствующие графические движки. A8 использует конфигурацию GPU, которую AMD называет Radeon HD 6550D. Она состоит из 400 потоковых процессоров, ядер или шейдеров (как вам удобнее) Radeon. A6 опускается до уровня Radeon HD 6530, использующего 320 потоковых процессоров. И в серии A4 установлены GPU Radeon HD 6410D со 160 потоковыми процессорами.
Мы уже тестировали
Это первый выпуск цикла статей, который будет состоять из девяти частей, и в нём мы подробно рассмотрим постобработку видео. Раньше на эту задачу уходило много времени, даже на многоядерном процессоре. Но поскольку это в большей степени параллельная нагрузка, ускорение при помощи множества ядер графического процессора – это отличный способ улучшить продуктивность и увеличить производительность.
Мы учли помощь AMD при написании данной серии статей, поэтому фокусируемся на аппаратном обеспечении компании, чтобы создать несколько довольно простых сравнений. Как CPU в одиночку справляется с программами, включающими OpenCL? А как насчёт одного APU на базе Llano? После этого мы протестируем более дешёвые APU и дорогие CPU в паре с различными дискретными видеокартами чтобы показать, как будет изменяться производительность каждой конфигурации.
DirectCompute и OpenCL
В течение последних нескольких лет мы пытались оценить усилия AMD по защите Stream против реализации инфраструктуры CUDA от Nvidia. В конечном счёте, сделать сравнение достаточно тяжело. Этому сильно мешают множество других компонентов. Благодаря разработкам CyberLink и Arcsoft нам удалось соединить в одной статье Stream, CUDA и Quick Synс:
С тех пор AMD перешла от собственного подхода к GPU общего назначения (GPGPU), который работает с промышленным стандартом API OpenCL и DirectCompute. С этими стандартами разработчикам проще использовать преимущества программируемой логики GPU, чтобы обрабатывать параллельные задачи быстрее, а часто более эффективно, чем CPU x86 в одиночку. Такие задачи часто присутствуют в интенсивных графических нагрузках, но разработчики постепенно расширяют возможности GPU и APU в других сферах. По сути APU могут оказаться более оптимизированными решениями, поскольку их кристалл идеально подходит как для одиночного потока данных (SISD), так и для множественного потока данных (SIMD), обрабатываемого на одном чипе. Принимая во внимание, что приложения обычно использовали какой-то один тип данных, сейчас мы видим, как графический процессор всё чаще применяется к программному обеспечению обоих типов, что делает гибридный подход более дальновидным. Для сравнения, Nvidia все ещё продвигает CUDA. Но компания не игнорирует OpenCL и включает в драйвер поддержку OpenCL 1.1.
В 2006 году ATI начала сотрудничать с разработчиками, желающими более тесно работать с векторными параллельными задачами, использующими принцип SIMD. Вскоре ATI Stream SDK и Brook+ language стали выпускать инструменты, которые позволили поставщикам ПО, как говорит ATI, "стать ближе к железу" в графических процессорах. Но требовался более широкий подход к стандартам. Здесь в игру вступают Windows DirectX API под названием DirectCompute и её конкурент OpenCL от Khronos Group. Но между DirectX и OpenСL приложения на базе Windows скорее выберут DirectCompute, в то время, как дизайн OpenCL более нейтрален к платформе.
Со стандартными API разработчикам, наконец, будет удобнее оптимизироваться под ускорение GPU/APU, нежели когда AMD и Nvidia, преследует свои личные интересы. Чтобы вам было понятнее, о чём будет идти речь в данном цикле статей, мы приведём список тем, в которых будем изучать аппаратное ускорение:
- Постобработка видео
- Игры
- Персональные приложения smart cloud
- Видеоконференции
- Редактирование видео
- Кодирование медиа файлов
- ПО для бизнеса и безопасности
- Фотография и распознавание лица
- Усовершенствованный дизайн пользовательского интерфейса
Если верить AMD и Nvidia, можно ожидать, что GPU/APU-ускорение распространится на более широкий диапазон приложений и даст существенный прирост производительности. Дадут ли более дорогие видеокарты или более сложные APU лучшие результаты? Возможно. Тысячи потоковых процессоров должны справиться с работой быстрее, чем сотни. Но даже средний APU должен предоставить весомые преимущества.
Не забывайте, что архитектура AMD позволяет APU и некоторым дискретным GPU работать в тандеме также, как CrossFire или SLI. Поэтому существует возможность начать с бюджетной платформы и увеличить производительность с помощью аппаратного ускорения. Сегодня мы не будем затрагивать возможности платформы с несколькими GPU, но в какой-нибудь из частей серии обязательно это сделаем.
Конфигурация и тесты
Планируя данный цикл статей мы спрашивали сами себя, что читателям действительно нужно знать об использовании DirectCompute/OpenCL-ускорения. Это сложно? Нет. Драйверы включают эту функция по умолчанию, и большинство приложений, способных использовать данное улучшение, могут включать и выключать эту функцию на своё усмотрение. И нам не понятно, зачем кому-то её отключать.
Мы будем тестировать два приложения постобработки с функцией OpenCL: Total Media Theater (TMT) 5.2 (пре-релиз)от ArcSoft и vReveal от MotionDSP.
Компонент SimHD программы TMT теперь использует OpenCL и GPU-обработку, чтобы интерполировать видео в стандартном разрешении (480p) ближе к уровню HD (720p) в реальном времени. Чтобы это протестировать, мы проигрываем DVD-копию фильма "Особое мнение" (Minority Report) с включённым OpenCL (GPU) и без него (CPU). Для наглядного сравнения мы проведём тест в режиме раздельного экрана, слева стандартное разрешение, справа близкое к HD. В компоненте SimHD, ArcSoft обеспечивает четыре основных функции: масштабирование, динамическое освещение, подавление шума и сглаживание, но в нашем случае будет включены только первые три на максимальных настройках. Сглаживание недоступно в тестах с одним процессором, поэтому для справедливости мы отключили эту функцию для всех конфигураций. Также мы будем тестировать SimHD только с видеокартой AMD Radeon HD 5870, поскольку на данный момент Total Media Theater не поддерживает AMD Radeon HD 7970. Но нас это нисколько не удивляет, учитывая, что у нас уже возникали проблемы с GPU-ускорением при работе в CyberLink Media Espresso в обзоре
vReveal от компании MotionDSP заработал себе славу одного из первых и лучших потребительских приложений для стабилизации картинки видео-файлов. Количество процессов, необходимое для удаления этого эффекта огромно. Поскольку несколько кадров видеодорожки анализируются одновременно, в этих кадрах отслеживаются и перекомпилируются много функций. На разрешении 1080p эта нагрузка сильно нагружает систему. Сегодня vReveal 3 также включает несколько дополнительных функций, таких как увеличение резкости, осветление и очистка от шумов, все они могут работать одновременно со стабилизацией. В идеале, все эти визуализации должны выполняться в реальном времени.
В наших тестах, мы используем два демонстрационных видеоклипа с загружаемым двоичным файлом vReveal 3: файл "Barcelona" на разрешении 480p и "San Francisco" на разрешении 1080p. Тесты будут проводиться дважды, первый раз с базовой стабилизацией и потом с более требовательной конфигурацией, состоящей из пяти активных эффектов. Программа будет обрабатываться несколькими способами: только CPU, с APU-ускорением и в конфигурациях с двумя различными дискретными GPU.
Тестовая конфигурация | |
Тестовая система 1 | |
Процессор | AMD FX-8150 (Zambezi) 3.6 ГГц, Socket AM3+, 8 Мбайт общего кэша L3 , Turbo Core вкл., 125 Вт |
Материнская плата | Asus Crosshair V Formula (Socket AM3+), AMD 990FX/SB950 |
Память | 8 Гбайт (2 x 4 Гбайт) AMD Performance Memory AE34G1609U2 (1600 MT/s, 8-9-8-24) |
SSD | 240 Гбайт Patriot Wildfire SATA 6 Гбит/с |
Видеокарта | AMD Radeon HD 7970 3 Гбайт AMD Radeon HD 5870 1 Гбайт |
Питание | PC Power & Cooling Turbo-Cool 860 Вт |
Операционная система | Windows 7 Professional, 64 бит |
Тестовая система 2 | |
Процессор | AMD A8-3850 (Llano) 2.9 ГГц, Socket FM1, 4 Мбайт кэша L2, 100 W, Radeon HD 6550D Graphics |
Материнская плата | Gigabyte A75-UD4H (Socket FM1), AMD A75 FCH |
Память | 8 Гбайт (2 x 4 Гбайт) AMD Performance Memory AE34G1609U2 (1600 MT/s, 8-9-8-24) |
SSD | 240 Гбайт Patriot Wildfire SATA 6 Гбит/с |
Видеокарта | AMD Radeon HD 7970 3 Гбайт AMD Radeon HD 5870 1 Гбайт |
Питание | PC Power & Cooling Turbo-Cool 860 Вт |
Операционная система | Windows 7 Professional, 64 бит |
Тестовая система 3 | |
Платформа | Gateway NV55S05u |
Процессор | AMD A8-3500M (Llano), 1.5 ГГц, Socket FS1, 4 Мбайт кэша L2, 35 W, Radeon HD 6620G Graphics |
Память | 4 Гбайт Elpida PC3-10600S-9-10-F2 2 Гбайт Hynix PC3-10600S-9-10-B1 |
HDD | Western Digital Scorpio Blue 640 Гбайт, 5400 RPM, 8 Mбайт Cache, SATA 3 Гбит/с |
Операционная система | Windows 7 Professional, 64-bit |
Тестовая система 4 | |
Платформа | HP Pavillion dv6 |
Процессор | Intel Core i5-2410M (Sandy Bridge), 2.3 ГГц, Socket G2, 3 Мбайт общего кэша L3 , 35 Вт, HD Graphics 3000 |
Память | 4 Гбайт Samsung PC3-10600S-09-10-ZZZ |
HDD | Seagate Momentus 7200.4 500 Гбайт, 7200 об/мин, 16 Мбайт Cache, SATA 3 Гбит/с |
Операционная система | Windows 7 Professional, 64 бит |