> > > > AMD Fusion или HSA - краткий ликбез

AMD Fusion или HSA - краткий ликбез

Опубликовано:

AMD Logo 2013Сегодня AMD часто упоминает HSA при обсуждении современных и будущих процессоров, но что скрывается за этой аббревиатурой? Гетерогенная системная архитектура (Heterogeneous System Architecture) была официально представлена в 2011 году на AFDS (AMD Fusion Developer Summit), чтобы ускорить работу программного обеспечения, одновременно использующего графический процессор и CPU. Конечно, существуют задачи, с которыми CPU будет справляться более эффективно, но некоторые задачи лучше выполнять на GPU. С тех пор изменилось многое, AMD представляет уже четвёртое поколение APU (Accelerated Processing Unit). Первое поколение APU содержало CPU и GPU на одном кристалле в классическом понимании, к нему относятся чипы "Llano" и "Bobcat". Там нет поддержки HSA и связанных функций. Но, несмотря на это, данные чипы стали важным этапом для AMD.

alles

Второе поколение было сформировано на основе ядре "Piledriver" - APU "Trinity" и "Richland". В них были добавлены простейшие функции HSA, но это только первые шаги на длинном пути. Только с "Jaguar" и технологией Huma, а также с графическим ядром GCN стал возможен переход на новый уровень. Шейдеры GCN можно программировать с помощью C++, но программные разработчики могут воспользоваться более сложными языками шейдеров, чтобы сэкономить время. После "Kaveri" и "Jaguar" нас ждет преемник "Puma", где будут реализованы самые современные наработки в сфере HSA от AMD.

HSA Foundation

HSA Foundation - консорциум производителей чипов и разработчиков программного обеспечения со всего мира. В консорциум входит много именитых компаний, в том числе Advanced Micro Devices (AMD) из США, ARM Limited из Великобритании, тяжеловес ARM Qualcomm из США и другие компании, занимающиеся, в основном, ARM, в том числе Samsung и MediaTek.

alles

AMD и другие члены HSA Foundation обмениваются опытом и наработками, что позволяет оптимизировать чипы. Также участие тяжеловесов индустрии побуждает программных разработчиков оптимизировать свои продукты под HSA. Для AMD подобный шаг очень важен, поскольку сегодня CPU от Intel по чистой вычислительной производительности x86 ушли далеко вперёд. Компании работают совместно с многими университетами, поддерживая их своим опытом.

HSA Foundation пытается максимально упростить кросс-платформенную разработку приложений, создавая инструментарий для разработчиков, чтобы они могли задействовать возможности архитектуры. Когда инструментарий будет проработан в достаточной степени, будет уже не принципиально, для какой архитектуры компилировать программу: для ARM или для APU на x86. Компилятор будет сам вносить оптимизации, специфичные для архитектуры. Конечно, с помощью определенных наборов команд можно отсылать инструкции RISC напрямую на ядра. Уже довольно давно существуют декодеры, способные преобразовывать сложные инструкции CISC x86 в простые инструкции RISC с той или иной скоростью. Но данный шаг на первых порах можно опустить, чтобы упростить программирование под процессоры ARM и x86, также не будет тратиться время на трансляцию команд декодером.

alles

hUMA

Huma - технология, которая позволяет CPU и GPU обращаться к одинаковым областям памяти. Раньше это не представлялось возможным, поскольку CPU и GPU использовали раздельные области памяти, к чужим областям доступ был закрыт. В случае Huma появляется возможность доступа к одним и тем же областям памяти со стороны CPU и GPU, копирования данных больше не потребуется, и такой подход должен увеличить производительность. Но прирост производительности возможен только в том случае, если данная возможность будет явно поддерживаться программным обеспечением. С помощью Huma можно обойти уровни абстракции, такие как OpenCL и Direct Compute, а также программировать напрямую на высокоуровневом языке C++.

В частности, от новой технологии могут значительно выиграть программы, подобные Photoshop, или другие приложения общего назначения, связанные с процессами вывода графики или рендеринга. Многие задачи данных приложений с помощью шейдеров можно выполнить намного быстрее, чем через ядра CPU, и теперь приложение не будет опираться только на ресурсы CPU. Отметим, что в Adobe Photoshop уже используются фильтры, которые ускоряются через CUDA или OpenCL на видеокарте. Но не все фильтры выигрывают, поскольку, если верить Adobe, процесс копирования данных "съедает" преимущество по производительности, которое дают вычисления на видеокарте.

alles

hQ (Heterogenous Queuing)

Технология hQ (гетерогенная очередь) была объявлена AMD совсем недавно. Данная технология впервые появится в процессорах "Kaveri", которые выйдут в январе 2014, позволяет распределять ресурсы между CPU и GPU более "справедливо". Раньше CPU всегда имел приоритет на GPU при распределении задач. И CPU играл основную роль. Опять же, программное обеспечение тоже должно поддерживать hQ, так как распределение задач выполняется без прямого влияния операционной системы. Так называемые очереди задач (Task queues) выполняются в самом приложении в пользовательском режиме, что позволяет экономить время по сравнению с подходом использования операционной системы и режима ядра. Сама Microsoft предлагает схожий интерфейс в Petto, а именно C++ AMP, но он выполняется через DirectCompute, и Microsoft практически остановила разработку.

alles

Стратегия AMD понятна: пусть нынешние APU и кажутся менее скоростными на первый взгляд, чем конкуренты, но они смогут эффективнее справляться с некоторыми задачами. Опять же, только оптимизированное программное обеспечение сможет воспользоваться данным потенциалом, и в этом отношении AMD сегодня пытается реализовать разные технологии, сотрудничая с другими компаниями на рынке. Время покажет, насколько такая стратегия окажется успешной.