Що пропонує HSA?

AMD вкотре провела Саміт розробників Fusion, який зараз проходить у Вашингтоні. Цьогорічна подія, на відміну від минулого року, стосується не окреслення планів, а дій. За останній рік компанія AMD мріяла про інтерфейс Fusion System Architecture (FSA), який може значно полегшити розробку програмного забезпечення для гетерогенно програмованих систем; відтоді система отримала нову назву, тож цього року її називали Архітектурою гетерогенних систем (HSA). Це було необхідно через партнерів, оскільки всі вже асоціюють назву Fusion з AMD, що було б несприятливо для маркетингових компаній з точки зору маркетингу.

prohardware

Цьогорічна подія розпочалася одразу з великого оголошення, а саме про те, що AMD закінчила проект специфікацій HSA 1.0, тобто система просто повинна бути доопрацьована. З цієї причини було створено Фонд HSA, який офіційно контролюватиме подальший розвиток. Філ Роджерс заявив, що AMD вже розробила проект специфікації з партнерами, тому всі, хто бере участь, задоволені основами, тобто немає перспектив для серйозних змін. Фонд HSA, з іншого боку, візьме під контроль AMD і надалі розвиватиме систему у формі консорціуму.

Філ Роджерс також повідомив, що серед партнерів AMM та перших спонсорів Фонду HSA є ARM, Imagination Technologies, MediaTek та Texas Instruments. Звичайно, залучені компанії чекають більше заявників, і це включає не лише компанії, що розробляють центральні процесори, графічні процесори чи інше обладнання, але також компанії, що розробляють програмне забезпечення, які прагнуть створити нові бібліотеки або нові засоби та пакети розробки. AMD заклала основу з боку програмного забезпечення, тому на додаток до Aparapi та APP була представлена ​​BOLT, стандартна бібліотека шаблонів C ++.

Звичайно, виникає питання, чому ринок та компанії, згадані вище, потребують HSA. Том Маллой, старший інженер-програміст Adobe, спробував відповісти на це у не такій короткій презентації. Багато розробників підходять до проблем, що виникають із швидшим апаратним забезпеченням, що в основному відповідає дійсності, але може бути не у тій формі, яку очікує програміст. У наш час висунуто на перший план, що на розвиток апаратного забезпечення впливають дедалі серйозніші фізичні обмеження, тому для масштабування продуктивності процесорів необхідно змінити їх структуру. Більшість програмістів, навпаки, віддають перевагу зручності, тому не багато хто знає складне обладнання.

Сьогодні розробники діляться на дві основні категорії, згідно з дослідженнями ринку від IDC. Більшість з них просто записують код на центральний процесор, і народжується багато додатків. Менше стає тих, хто також розробляє графічні процесори, і, використовуючи якийсь сленг, на шоу їх називали «програмістами ніндзя», натякаючи на їх спритність. Їх кількість становить близько ста тисяч; в даний час доступно приблизно 200 програм, які використовують потужність графічного процесора. Том Маллой каже, що складність полягає в тому, що OpenCL та CUDA, які є загальними для програмування графічних процесорів, можна вважати досить низькорівневим інтерфейсом, і більшості програмістів ця місцевість не подобається. Це пов’язано не в першу чергу з тим, що OpenCL та CUDA не є зрілими або програми не можуть бути перенесені; Наприклад, у OpenCL це дуже добре вирішено, але що вже є великою проблемою, це портативність продуктивності. Тут виникає слабкість OpenCL, оскільки кожна апаратна частина вимагає багато додаткової оптимізації, щоб зробити програму швидкою в усьому світі. Це одна з причин, чому прискорене стиснення WinZip 16.5 та додаткова якість зображення в останній версії VLC працюють лише з драйвером AMD OpenCL і лише на графічних контролерах Radeon.

Звільнення

Отже, OpenCL є цінною альтернативою для «програмістів ніндзя», але ви повинні думати про більшість. Ось HSA, який народився з метою зробити APU таким же простим для програмування, як і CPU. На думку Тома Маллоя, найважливішою можливістю з точки зору програмістів був би єдиний адресний простір, який значно полегшив би портативність продуктивності та роботи розробників.

Переваги та функціонування HSA

HSA корисний для багатьох областей, оскільки полегшує користування перевагами продуктів, які можна запрограмувати неоднорідно. З одного боку, AMD розраховує на це з точки зору Апарапі, тому компанія має конкретну дорожню карту для використання HSA, і фактично, як кінцева точка, HSA буде конкретно частиною віртуальної машини Java (JVM).

З точки зору логічної моделі, система розташована між OpenCL, C ++ AMP або іншим інтерфейсом та графічним процесором. Він складається із середовища виконання HSA, за яким стоїть так званий фіналізатор і драйвер ядра. Важливо пояснити, що основи забезпечуються віртуальною ISA (Архітектура набору інструкцій) або віртуальною архітектурою інструкцій угорською мовою, яка включає компілятор JIT (Just-In-Time). З програмного коду останній генерує код HSAIL, який по суті є віртуальною архітектурою інструкцій. Це додається до фіналізатора, який є вторинним компілятором, який компілює отриманий програмний код в архітектуру інструкцій фізичного обладнання, роблячи програму виконуваною.

Переваги відчутні, це означає, що розробникам буде простіше. В основному паралелізація здійснюється середнім рівнем, а модель пам'яті розроблена AMD для підтримки C ++, Java та .NET. Оскільки це віртуальна архітектура інструкцій, по суті, фізичне обладнання є взаємозамінним внизу. Як приклад, теоретична операція дуже схожа на байт-код Java, лише AMD розробив HSAIL, спеціально орієнтований на продуктивність.

Для компаній, що займаються підтримкою, система також дуже проста, на практиці потрібно лише надати фіналізатор, пристосований до власного обладнання та драйвера ядра, інші елементи HSA можна сказати універсальними.

Звичайно, HSA можна розширювати, тому члени фонду можуть додавати конкретні розширення, що підкреслюють переваги певного апаратного забезпечення. AMD вже працює над низкою розширень, а драйвер HSA MMU (блок управління пам'яттю) вже допрацьовується як частина нещодавно представленого APU Trinity. Це робить всю системну пам’ять доступною для центрального процесора та IGP.

Філ Роджерс підкреслив, що справді великий кидок настане лише наступного року, коли IGP, заснований на архітектурі GCN, перейде в APU Kaveri. Це відображає уніфікований адресний простір, тому IGP обробляє ті самі вказівники, що процесор і графічний контролер зможуть отримати доступ до віртуального адресного простору процесора, уникаючи трудомісткого копіювання даних. Крім того, центральний процесор та IGP мають спільну цілісну пам’ять. AMD з часом піде ще далі, і в подальшому розвитку IGP придбає переважні можливості багатозадачності, що, на думку компанії, надзвичайно важливо, оскільки в майбутньому набагато більше додатків буде базуватися на потужності графічного контролера, ніж на процесорних ядрах., тому дуже важливо, щоб ця система добре працювала з низькою затримкою. Відповідно з'являється також QoS (Якість обслуговування), що забезпечує безперебійний доступ до ресурсів графічного контролера для паралельних додатків та паралельних запитів користувачів.

AMD також вимірювала практичні переваги HSA у різних завданнях. Мобільний APU Trinity A10-4600M використовував алгоритм розпізнавання облич, написаний на OpenCL, при цьому HSA працював у два з половиною рази швидше і вимагав у два з половиною рази менше енергії на кадр. Роблячи це, компанія намагається звернути увагу на той факт, що HSA може бути не тільки корисним з точки зору продуктивності, але також позитивно впливає на споживання.

Ситуацію також аналізували з програмної точки зору. AMD писав один і той же код на декількох інтерфейсах, тож можна було порівняти, скільки рядків ввести в кожному випадку. Перше зображення показує, що ситуація легка з однією ниткою, але з більшою кількістю ниток потрібно зробити більше роботи. OpenCL не дуже хороший у цьому відношенні, хоча OpenCL 1.2 дещо покращує ситуацію, але C ++ AMP є більш прийнятним. HSA здається найлегшим, але принаймні дуже схожим на роботу, вкладену в одну нитку.

Друга картина показує продуктивність, яка показує, що OpenCL є найкращою в цьому відношенні, але якщо ми дивимось на результат з точки зору вкладеної роботи, HSA виграє конкуренцію.

На даний момент переговори щодо HSA можуть здійснюватися лише з точки зору AMD, оскільки інші учасники фонду ще не окреслили своє бачення. Звичайно, не важко зрозуміти, від чого хочуть нажитися ARM та Imagination Technologies, оскільки споживання є першорядним на ринку ультрамобільних продуктів, а IGP виконують високопаралелізовані завдання з високою енергоефективністю. Texas Instruments також зацікавлена ​​в цьому ринку, і крім того, платформи OMAP використовують власні апаратні блоки, і HSA, ймовірно, також буде перевагою тут. MediaTek є другим за величиною гравцем на телевізійному ринку, і за допомогою HSA він може стати лідером на ринку, і компанія вже зазначила, що незабаром вона також орієнтується на сегмент смартфонів.

Пізніше картина, швидше за все, буде чіткішою, і, знаючи систему, є ймовірність, що більше компаній увійде, оскільки проблеми торкнуться всіх однаково. NVIDIA здатна розробити CUDA у правильному напрямку для Tegra, але іншим гравцям ARM потрібен власний інтерфейс, який, якщо вони раніше не починали розробку, є єдиним можливим варіантом приєднання до Фонду HSA, отримуючи таким чином право на використовувати HSA.