Гетерогенная среда что это
гетерогенная среда
Смотреть что такое «гетерогенная среда» в других словарях:
гетерогенная среда — įvairialytė terpė statusas T sritis fizika atitikmenys: angl. heterogeneous medium vok. heterogenes Medium, n rus. гетерогенная среда, f pranc. milieu hétérogène, m … Fizikos terminų žodynas
гетерогенная вычислительная среда — Термин, используемый для описания вычислительной среды, состоящей из компьютеров, выполненных различными фирмами продавцами, обычно с разными операционными системами. [http://www.morepc.ru/dict/] Тематики информационные технологии в целом EN… … Справочник технического переводчика
Коэффициент размножения на быстрых нейтронах — μ показатель, учитывающий влияние деления ядер 238U быстрыми нейтронами на ход цепной реакции в реакторе на тепловых нейтронах. Содержание 1 Размножение на быстрых нейтронах 1.1 Гомогенная среда … Википедия
heterogeneous medium — įvairialytė terpė statusas T sritis fizika atitikmenys: angl. heterogeneous medium vok. heterogenes Medium, n rus. гетерогенная среда, f pranc. milieu hétérogène, m … Fizikos terminų žodynas
heterogenes Medium — įvairialytė terpė statusas T sritis fizika atitikmenys: angl. heterogeneous medium vok. heterogenes Medium, n rus. гетерогенная среда, f pranc. milieu hétérogène, m … Fizikos terminų žodynas
milieu hétérogène — įvairialytė terpė statusas T sritis fizika atitikmenys: angl. heterogeneous medium vok. heterogenes Medium, n rus. гетерогенная среда, f pranc. milieu hétérogène, m … Fizikos terminų žodynas
įvairialytė terpė — statusas T sritis fizika atitikmenys: angl. heterogeneous medium vok. heterogenes Medium, n rus. гетерогенная среда, f pranc. milieu hétérogène, m … Fizikos terminų žodynas
Общие термины, бетон — Термины рубрики: Общие термины, бетон Активация Активность поверхностная Активность пуццолановая Активность термодинамическая … Энциклопедия терминов, определений и пояснений строительных материалов
ДИСПЕРСНЫЕ СИСТЕМЫ — (от лат. disper gere рассеивать), системы, состоящие из двух (или нескольких) фаз, при чем одна из них рассеяна или распылена в другой в виде мельчайших (микроскопич. или ультрами кроскопич.) частиц. Основные понятия. Каждая на всем своем… … Большая медицинская энциклопедия
Гетерогенная система
Смотреть что такое «Гетерогенная система» в других словарях:
ГЕТЕРОГЕННАЯ СИСТЕМА — макроскопически неоднородная физико химическая система, состоит из различных по своим свойствам частей, разграниченных поверхностями раздела … Большой Энциклопедический словарь
ГЕТЕРОГЕННАЯ СИСТЕМА — (от греч. heterogenes разнородный), неоднородная термодинамич. система, состоящая из различных по физ. св вам или хим. составу частей (фаз). Смежные фазы Г. с. отделены друг от друга физ. поверхностями раздела, на к рых скачком изменяется одно… … Физическая энциклопедия
ГЕТЕРОГЕННАЯ СИСТЕМА — неоднородная физ. хим. система, состоящая из различных по физ. свойствам или хим. составу частей (различных фаз) в разных состояниях и разделённая поверхностью раздела фаз, на которой скачком изменяется одно или несколько свойств (состав,… … Большая политехническая энциклопедия
гетерогенная система — макроскопически неоднородная физико химическая система; состоит из различных по своим свойствам частей, разграниченных поверхностями раздела. * * * ГЕТЕРОГЕННАЯ СИСТЕМА ГЕТЕРОГЕННАЯ СИСТЕМА, макроскопически неоднородная физико химическая система … Энциклопедический словарь
Гетерогенная система — (от греч. ἕτερος разный; γένω рождать) неоднородная система, состоящая из однородных частей (фаз), разделенных поверхностью раздела. Однородные части (фазы) могут отличаться друг от друга по составу и свойствам. Число веществ… … Википедия
гетерогенная система — heterogeninė sistema statusas T sritis chemija apibrėžtis Sistema, susidedanti daugiau negu iš vienos fazės. atitikmenys: angl. heterogeneous system rus. гетерогенная система … Chemijos terminų aiškinamasis žodynas
гетерогенная система — įvairialytė sistema statusas T sritis fizika atitikmenys: angl. heterogeneous system vok. heterogenes System, n rus. гетерогенная система, f pranc. système hétérogène, m … Fizikos terminų žodynas
Гетерогенная система — система, состоящая из реагирующих веществ, разделенных поверхностями раздела (например, твердое тело, раствор или раствор газ и т. д.). Примером гетерогенной системы может быть вода и находящийся над ней водяной пар (различие в агрегатном… … Начала современного естествознания
гетерогенная система — Система, состоящая из различных по своим свойствам частей, разграниченных поверхностями раздела … Политехнический терминологический толковый словарь
гетерогенная система — [heterogeneous system] макроскопическая неоднородная система, состоящая из разных фаз, разграниченных поверхностями раздела; Смотри также: Система универсальная система калибровки система скольжения система … Энциклопедический словарь по металлургии
Гетерогенная система
Гетероге́нная систе́ма (от греч. ἕτερος — разный; γένω — рождать) — неоднородная система, состоящая из однородных частей (фаз), разделенных поверхностью раздела. Однородные части (фазы) могут отличаться друг от друга по составу и свойствам. Число веществ (компонентов), термодинамических фаз и степеней свободы связаны правилом фаз. Примерами гетерогенных систем могут служить: жидкость — насыщенный пар; насыщенный раствор с осадком; многие сплавы. Твердый катализатор в токе газа или жидкости тоже гетерогенная система (гетерогенный катализ). В технике гетерогенной системой является кирпичная и каменная кладка, состоящая из кладочных элементов (кирпича, природных или искусственных камней, бетонных блоков и др.) и строительного раствора.
См. также
Смотреть что такое «Гетерогенная система» в других словарях:
ГЕТЕРОГЕННАЯ СИСТЕМА — макроскопически неоднородная физико химическая система, состоит из различных по своим свойствам частей, разграниченных поверхностями раздела … Большой Энциклопедический словарь
ГЕТЕРОГЕННАЯ СИСТЕМА — (от греч. heterogenes разнородный), неоднородная термодинамич. система, состоящая из различных по физ. св вам или хим. составу частей (фаз). Смежные фазы Г. с. отделены друг от друга физ. поверхностями раздела, на к рых скачком изменяется одно… … Физическая энциклопедия
ГЕТЕРОГЕННАЯ СИСТЕМА — неоднородная физ. хим. система, состоящая из различных по физ. свойствам или хим. составу частей (различных фаз) в разных состояниях и разделённая поверхностью раздела фаз, на которой скачком изменяется одно или несколько свойств (состав,… … Большая политехническая энциклопедия
гетерогенная система — макроскопически неоднородная физико химическая система; состоит из различных по своим свойствам частей, разграниченных поверхностями раздела. * * * ГЕТЕРОГЕННАЯ СИСТЕМА ГЕТЕРОГЕННАЯ СИСТЕМА, макроскопически неоднородная физико химическая система … Энциклопедический словарь
гетерогенная система — heterogeninė sistema statusas T sritis chemija apibrėžtis Sistema, susidedanti daugiau negu iš vienos fazės. atitikmenys: angl. heterogeneous system rus. гетерогенная система … Chemijos terminų aiškinamasis žodynas
гетерогенная система — įvairialytė sistema statusas T sritis fizika atitikmenys: angl. heterogeneous system vok. heterogenes System, n rus. гетерогенная система, f pranc. système hétérogène, m … Fizikos terminų žodynas
Гетерогенная система — система, состоящая из реагирующих веществ, разделенных поверхностями раздела (например, твердое тело, раствор или раствор газ и т. д.). Примером гетерогенной системы может быть вода и находящийся над ней водяной пар (различие в агрегатном… … Начала современного естествознания
гетерогенная система — Система, состоящая из различных по своим свойствам частей, разграниченных поверхностями раздела … Политехнический терминологический толковый словарь
гетерогенная система — [heterogeneous system] макроскопическая неоднородная система, состоящая из разных фаз, разграниченных поверхностями раздела; Смотри также: Система универсальная система калибровки система скольжения система … Энциклопедический словарь по металлургии
Гетерогенная система — (от греч. heterogenes разнородный) неоднородная физико химическая система, состоящая из различных по физическим свойствам или химическому составу частей (различных фаз (См. Фаза)). Одна фаза Г. с. отделена от смежной с ней фазы физической … Большая советская энциклопедия
Heterogeneous System Architecture или о встрече CPU и GPU
Долгое время развитие микроэлектроники проходило под девизом «меньше и быстрее». Уменьшался техпроцесс, вводились новые элементы архитектуры x86 (наборы расширений инструкций), увеличивалась тактовая частота вычислительного ядра. Когда рост «грубой» производительности упёрся в экономические и физические факторы, популярными стали различные способы параллелизации вычислений. В то же время развивались не только CPU, показывавшие хорошую производительность в однопоточных и сложных вычислениях, но и GPU, способные быстро выполнять большое количество однотипных и простых задач, которые с трудом поддавались обычным процессорам.
Сегодня мы вступаем в новую эпоху развития чипов, отвечающих за проведение вычислений в сердцах десктопов, серверов, мобильных девайсов и носимой электроники. Объединив подходы к обработке информации на CPU и GPU мы разработали новую, открытую архитектуру, без которой дальнейшее исполнение того же закона Мура представляется трудновыполнимым. Встречайте HSA — Гетерогенную Системную Архитектуру.
Минутка истории
Для того, чтобы полностью осознать, насколько HSA, с одной стороны, близка, а с другой стороны — превосходит архитектуру современных решений, давайте обратимся к истории. Даже если отбросить десятилетия ламповой техники, и начать с 1950-х, с момента появления в микроэлектронике транзисторов, история получится такая, что отдельную статью можно написать. Пройдёмся очень коротко по основным «вехам» процессоростроения, и совсем чуть-чуть по истории видеокарт.
На заре компьютеростроения CPU были достаточно просты. По сути, все операции сводились к сложению чисел в двоичной системе. Когда требовалось вычитать — применялись т.н. «обратные коды»: они были просты и легко укладывались «в железо», не требуя сложнейших архитектурных изысков, реализовывающих «честное» вычитание чисел. Под каждую модель компьютера программы писались отдельно, пока не настал 1964 год.
IBM System/360
В 1964 году компания IBM выпустила System/360, компьютер, который изменил подход к созданию процессоров. Скорее всего, именно ему принадлежит честь внедрения такого понятия, как системная архитектура. Просто потому, что до него никакой «системы» не было. Дело в том, что до System/360 все компьютеры 50-х и 60-х годов работали только с тем программным кодом, что был написан именно для них. IBM же разработали первый набор инструкций, который поддерживался в различных по конфигурации (и производительности), но одинаковых по архитектуре System/360. К слову, в этом же компьютере байт впервые стал 8-битным. До этого почти во всех популярных компьютерах он состоял из шести бит.
Вторым крупным нововведением в 60-х была разработка компании DEC. В своём компьютере PDP-8 они применили крайне простую для того времени архитектуру, содержащую всего четыре регистра по 12 бит каждый и чуть больше 500 блоков CPU. Тех самых «транзисторов», которые в 1970-х уже измерялись тысячами, а в 2000-х — миллиардами. Эта простота и создание компанией IBM такого понятия, как «набор инструкций» и определили дальнейшее направление развития вычислительной техники.
В 70-х начался бум микроэлектроники. Всё началось с производства первых однокристалльных процессоров: многие компании тогда производили чипы по лицензии, а затем совершенствовали их, добавляя новые инструкции и расширяя возможности.
С середины 70-х рынок 8-битных процессоров был переполнен и ближе к концу десятилетия в компьютерах появились доступные 16-битные решения, принёсшие с собой архитектуру х86, которая (пусть и со значительными улучшениями) жива и здорова до сих пор. Основным бичом, останавливающим развитие 16-битных процессоров в то время была «заточенность» производителей на производстве т.н. микросхем поддержки под 8-битные архитектуры. Вместе они составляли то, что в последствии называлось «северным» и «южным» мостами.
В начале 80-х, устав бороться с инертностью рынка, многие производители перенесли часть управляющих «микросхем поддержки» внутрь самого процессора. В последствии что-то из процессора уйдёт в чипсеты материнской платы и затем вернётся обратно, но уже тогда подобная архитектура была чем-то похожа на современные SoC’и.
Середина и конец 80-х годов прошли под знамёнами перехода на 32-битную адресацию памяти и 32-разрядные процессорные ядра. Закон Мура работал как и раньше: число транзисторов росло, росла тактовая частота и «грубая» производительность процессоров.
В 1991 году свет увидели процессоры AMD Am386DX и Am386SX, производительность которых была сравнима со следующим поколением систем (486). Именно Am386SX многие считают первой самостоятельной разработкой компании и отправной точкой для почти 15-и летнего доминирования на рынке высокопроизводительных домашних ПК и рабочих станций. Да, архитектурно он был клоном чипа i368SX, но обладал меньшим техпроцессом, на 35% лучшей энергоэффективностью и при этом работал на более высокой тактовой частоте, чем его прародитель, а стоил дешевле.
Сами девяностые были достаточно богаты как на события в области микроэлектроники, так и на бурный рост рынка. Именно в 90-е годы компанию AMD начали рассматривать как одного из серьёзных игроков на рынке, так как наши процессоры по соотношению цены и производительности часто оставляли не у дел своих конкурентов в лице Intel Pentium, особенно в домашнем сегменте. Расширенные набор инструкций (MMX / 3DNow!), появление кэш-памяти второго уровня, агрессивное уменьшение техпроцесса, рост тактовых частот… и вот уже на дворе новое тысячелетие.
В 2000-м году процессоры AMD впервые в мире перешагнули рубеж в 1 ГГц, а чуть позже всё та же архитектура К7 взяла и новую высоту — 1.4 ГГц.
В конце 2003 года мы выпустили новые процессоры на архитектуре К8, которая содержала три важных нововведения: 64-битная адрессация памяти, встроенный контроллер памяти, и шину HyperTransport, которая обеспечивала потрясающую на тот момент пропускную способность (до 3.2 Гбайт/с.).
В 2005 году появились первые двухъядерные процессоры (у Intel — два отдельных кристалла-ядра на одной подложке, у AMD — два ядра внутри одного кристалла, но с раздельной кеш-памятью).
Через пару лет естественного развития архитектура K8 сменилась новой (K10). Количество ядер на одном кристалле в максимальной конфигурации выросло до шести, появилась общая кэш-память третьего уровня. А дальнейшее развитие было скорее количественным и качественным, чем революционным. Больше мегагерц, больше ядер, лучше оптимизация, ниже энергопотребление, тоньше техпроцесс, доработанные внутренние блоки вроде предсказателя ветвлений, контроллера памяти и декодера инструкций.
То, что нас интересует в эволюции GPU (в рамках статьи о HSA) можно описать совсем коротко. С распространением компьютеров в качестве универсальных домашних решений для работы и развлечений популярность компьютерных игр росла. Вместе с ней росли и возможности 3D-графики, требуя всё новые и новые «вливания» мускулов в лице видеоускорителей. Применения специальных микропрограмм, шейдеров, позволило реализовать в 3D-графике реалистичное освещение относительно малой кровью. Первоначально шейдерные процессоры делились на вершинные и пиксельные (первые отвечали за работу с геометрией, вторые — с текстурами), позже появилась унифицированная шейдерная архитектура и, соотвественно, универсальные шейдерные процессоры, которые могли выполнять код как вершинных, так и пиксельных шейдеров.
Реализовывать GPGPU, вычисления общего назначения на графическом ускорителе, можно было с использованием открытого стадарта и OpenCL, или несколько упрощенного диалекта языка С.
С тех про из ключевых нововведений в GPU можно упомянуть только появление низкоуровневого API Mantle, позволяющего обращаться к видеокартам AMD примерно на том же уровне, на каком осуществляется доступ к графическим ускорителям внутри консолей PS4 и Xbox One) и взрывной рост объёмов памяти у GPU в последние два года.
На этом с историей покончено, настало время переходить к самому интересному: HSA.
Что такое HSA?
Начать хочется с того, что HSA, в первую очередь, является открытой платформой, на основе которой производители микроэлектроники могут построить свои продукты (независимо от используемого набора инструкций), соответствующие определённым принципам и общим правилам.
В то же время, HSA — это процессорная архитектура, объединяющая скалярные вычисления на классических CPU-ядрах, массовые параллельные вычисления на GPU и работу с обработкой сигналов на DSP-модулях, и связывающая их с помощью когерентного доступа к оперативной памяти. То есть вся история процессоро- и видеокартостроения в HSA сходится в одну точку: почти 50 лет прогресса в области микроэлектроники привели к созданию того, что логичным образом сочетает лучшие стороны систем различного назначения.
Развитие архитектуры х86 и процессоров позволили создать высокоэффективные процессорные модули, которые обеспечивают выполнение общих задач и низкое энергопотребление.
Унификация шейдерных процессоров внутри GPU-ядра и общее упрощение программирования под систему с огромным количеством параллельных исполняющих модулей дали путь GPGPU и применению вычислительной мощности видеокарт в тех областях, где раньше использовались отдельные аппаратные ускорители, так и не завоевавшие сколько-нибудь ощутимую долю рынка, чтобы остаться на плаву.
Интегрированный контроллер памяти, шины PCIe и системы ввода-вывода обеспечил прозрачный доступ к памяти для различных модулей HSA.
Наконец, встроенный DSP позволяет снять нагрузку с CPU и GPU при работе с видео- и аудиоконтентом, так как аппаратно заточен на работу по кодированию и декодированию соответствующих сигналов.
Все эти модули вместе покрывают весь спектр современных задач, а HSA позволяет прозрачно и легко научить программы работать со всем многообразием имеющихся аппратных возможностей используя такие классические инструменты, как языки как Java и C++.
Причины создания HSA
Современные реалии (распространение носимой и мобильной электроники, вопросы экономики и экологии) создали определённые тренды в развитии микроэлектроники: снижение энергопотребления всех устройств, будь то смартфоны или серверы, увеличение производительности, улучшение работы с распознаванием образов.
Первое, в принципе, понятно. Всем хочется, чтобы гаджет работал дольше, корпус при этом не был толщиной с БигМак, и не грелся, как сковородка на плите. Владельцам же дата-центров хватает хлопот по отведению тепла и обеспечению бесперебойного питания, нагружать их лишними ваттами теплопакета означает увеличивать стоимость их услуг. Дороже хостинг — больше рекламы на ваших любимых ресурсах, больше нагрузка на CPU устройств, выше энергопотребление, меньше автономной работы.
Увеличение производительности сегодня просто воспринимается как данность. Люди привыкли к тому, что с 70-х годов каждый год процессоры бьют рекорды по производительности, игры становятся красивее, системы и софт сложнее (и при этом не теряют в визуальной скорости работы), а современые инструменты программиста содержат всё больше слоёв абстракции от железа, каждый из которых забирает частичку реальной производительности.
Ну а современные разработки в области интеллектуальных помощников, виртуальных ассистентов и перспективы развития искусственного интеллекта просто таки требуют нормального распознавания человеческой речи, мимики, жестов, что, в свою очередь, требует увеличения как прямой производительности, так и оптимизации выполняемых операций по декодированию аудио- и видео-потока.
Все эти проблемы позволила бы решить универсальная аппаратная архитектура, реализованная в виде SoC, и соединяющая в себе прелести классических CPU и GPU, грамотно распределяющая последовательные и параллельные операции между теми модулями, которые способны выполнять соответствующие задачи наиболее эффективно.
Но как научить софт работать со всем этим великолепием вычислительных возможностей?
Ключевые особенности гетерогенной системы
У программистов не должно быть проблем с доступом к вычислительным возможностям такой системы. Для этого HSA имеет ряд ключевых особенностей, упрощающих работу разработчиков ПО с ней и приближающих HSA к классическим системам с точки зрения разработки:
Роль унифицированной адресации памяти так и вовсе сложно переоценить. Формально, без неё никакой HSA не было бы. Не важно где в памяти находятся данные, сколько у вас ядер, модулей, вычислительных блоков. Вы переносите указатель и производите вычисления, а не занимаетесь «переливанием» байт с одного исполнительного устройства на другое. Снижается нагрузка на кэш-память, упрощается управление самим процессором. Абстракция памяти на уровне платформы позволит использовать один и тот же код для разных платформ, упрощая жизнь разработчикам ПО.
Сложности OpenCL и C++ AMP
Программирование под параллельные системы — задача не из лёгких. Для облегчения разработчикам жизни мы разработали библиотеку Bolt, которая предоставляет эффективные паттерны для наиболее часто используемых шаблонов сортировки, сокращения, сканирования и преобразования данных с использованием параллельных вычислений.
Для ускорения Java-кода без переписывания его на OpenCL применяется специальная библиотека AparApi (с открытым исходным кодом), которая позволяет конвертировать байт-код Java в OpenCL с поддержкой параллельных вычислений на CPU и GPU-ядрах.
В последствии планируется доработать Aparapi, сначала связав его с HSAIL, затем добавив специальный оптимизатор. В конце концов HSA должна работать с гетерогенным ускорением напрямую через Java-машину, прозрачно для пользователя и программиста.
Открытый стандарт и аппаратная независимость
Мы уже говорили о том, что HSA — это открытая платформа. API и спецификации предоставляются разработчиком бесплатно, а сама HSA не зависит от набора инструкций CPU или GPU.
Аппаратная составляющая
Не AMD единым жив HSA. Разработчикам важно, чтобы написанный единожды код одинаково хорошо работал на разных устройствах. Кто-то применяет для этого языки программирования высокого уровня, вроде C++ или Java, мы же предлагаем работать на более низком уровне. С одной стороны, классические приложения смогут работать на HSA-устройствах так, словно ничего не менялось. Операционные системы будут предоставлять старым приложениям понятный и простой доступ к процессору, памяти, видеоядру. С другой стороны, HSAIL позволяет извлечь всю мощь из новых SoC, и разработчики могут создавать высокопроизводительные и экономно относящиеся к ресурсам приложения так же просто, как и для классических связок ОС и «железа».
Сейчас HSA Foundation насчитывает семь компаний, которые являются основателями данной организации: AMD, ARM, Imagination Technologies, MediaTek, Texas Instruments, Samsung Electronics and Qualcomm®.
Стандартизация в области распределения задач по вычислительным ядрам, передачи данных и указателей памяти, работы основных элементов платформы с помощью HSAIL позволяет вендорам использовать их наработки в области железа, а разработчикам не заботиться о том, что находится под капотом. Приложения, заточенные под HSAIL будут работать на любой платформе.
Плюсы и минусы аппаратных решений на базе HSA
Гетерогенная архитектура позволяет соединить возможности CPU и GPU, и в этом заключается её основной плюс. В то же время HSA бережно относится к потребляемой электроэнергии, не нагружая процессор вычислениями, которые куда эффективней запускать на GPU.
Симуляция физики твёрдых тел сегодня используется повсеместно: начиная с компьютерных игр и 3D-пакетов, заканчивая САПР, тренажёрами для медиков, военных и спортсменов. Работа на CPU подобной системы зачастую неоптимальна, т.к. требует многочисленных, но простых вычислений. А когда количество взаимодействующих объектов превышает сотни или даже тысячи, классические CPU просто не способны обеспечить соотвествующее количество вычислений. Зато архитектура GPU подходит для таких расчётов как нельзя лучше. А унифицированная адресация, страничная память, и полная когерентность позволяют перенести расчёты на соотвествующее железо с минимальными затратами ресурсов и сил разработчика.
Производительность HSA на задачах общего плана зачастую выше, чем у классических CPU и выше, чем у связки CPU + GPU за счёт того, что какими бы идеальными не были драйвера, от копирования данных из общей памяти в память GPU и отправка результатов вычислений назад может занимать больше времени, чем сами вычисления.
HSA уже сейчас быстрее классических систем, но может работать ещё лучше. Собственно, единственный текущий минус системы в том, что она новая. Популярность только начинает расти, новые модели железа в не самых благоприятных экономических условиях выходят на рынок медленнее, и популярность HSA растёт не такими темпами, как всем нам хотелось бы. Как только разработчики войдут во вкус, поймут преимущества HSA и простоту разработки под новую систему и начнут нативно поддерживать возможности гетерогенной архитектуры в своих приложениях нас ждёт расцвет новых, высокопроизводительных приложений для серверов, классических компьютеров и мобильных устройств.