Начав в 2011 году выпускать микропроцессоры со встроенным графическим сопроцессором, компания AMD отказалась от того, чтобы называть их центральными процессорами (Central Processing Unit, CPU), сохранив это наименование за традиционными процессорами. Новые микропроцессоры получили название Accelerated Processing Unit (APU) — процессор для ускоренных вычислений.
С момента основания HSA Foundation до выпуска первой спецификации прошел год |
В выборе такого названия заключается нечто большее, чем простое указание на ускорение графических построений. Графические процессоры уже на протяжении десяти лет используются не только для вывода изображений, но и для других вычислительных задач, в первую очередь требующих параллельных вычислений. AMD же намерена разработать стандартизованную программную инфраструктуру, дающую программистам универсальные средства доступа к вычислительным ресурсам процессоров, будь то ядра общего назначения, графические ядра или прочие специализированные вычислительные модули.
С этой целью в июне 2012 года AMD вместе с ARM, Imagination Technologies, Mediatek и Texas Instruments основали консорциум HSA Foundation (HSA — Heterogeneous System Architecture), к которому позднее присоединились Samsung Electronics и Qualcomm. Участники поставили перед собой задачу разработать единую архитектурную спецификацию процессоров и одновременно упростить их программную модель, чтобы помочь разработчикам ПО лучше использовать возможности современных центральных и графических процессоров, а также «высвободить потенциал быстродействия и энергосбережения параллельных вычислительных средств, кроющийся в гетерогенных процессорах».
Программист, работающий с такой архитектурой, не должен заботиться о том, как взаимодействовать с конкретными реализациями тех или иных сопроцессоров. Эту задачу решает промежуточный транслятор языка HSAIL (HSA Intermediate Language), с одной стороны, достаточно гибкий для того, чтобы взаимодействовать с языком высокого уровня, с другой — достаточно низкоуровневый, чтобы каждый производитель оборудования мог оптимизировать его для своих вычислительных средств. Высокоуровневое программирование может осуществляться, например, на OpenCL, OpenMP, C++ и Java. Стандарт HSAIL открытый, его использование не требует лицензионных отчислений.
Чтобы оптимизировать совместную работу центрального и графического процессоров (Graphics Processing Unit, GPU), необходимо сблизить механизмы их работы, в том числе дать им общее адресное пространство, предоставить в распоряжение графического процессора виртуальную память и средства переключения контекста. В процессорах, выпускаемых сейчас AMD, эта стратегия последовательно реализуется. Так, в 2012 году были выпущены процессоры Trinity с поддержкой программирования GPU на C++, доступом GPU ко всей системной памяти через специализированный модуль управления памятью и общей системой распределения питания. На 2013 год запланирован выпуск процессора Kaveri, где будут реализованы основные принципы HSA: общее адресное пространство для центрального и графического процессоров с возможностью свободного обмена указателями; когерентность кэша между процессорами; общий доступ к виртуальной памяти и страничный доступ к памяти для GPU. В моделях 2014 года должны быть реализованы переключение контекста, вытеснение задач и обеспечение заданного уровня обслуживания (для оптимального распределения ресурсов в многозадачных и многопользовательских средах).
Спустя почти год после образования, 29 мая, HSA Foundation выпустила свою первую техническую спецификацию — «Справочное руководство по программированию HSA: виртуальная система команд и программная модель HSAIL, руководство для разработчиков компиляторов и формат объектов» (HSA Programmer's Reference Manual: HSAIL Virtual ISA and Programming Model, Compiler Writer’s Guide, and Object Format), которое можно загрузить с сайта консорциума HSAFoundation.com.