Что такое векторные компьютеры
Многие условия и задачи в технических и физических областях имеют векторную форму, иначе они имели бы очень сложную структуру. Зачастую они и те же вычислительные системы работают над разными данными одновременно. Структура таких программ разрешает увеличивать скорость работы с помощью параллельной реализации команд. Есть два метода, которые реализуют быстрое выполнение больших задач. Хоть и методы чем-то схожие, однако одна из них расширяет работу одного процессора, а другая параллельным компьютером.
Массивно-параллельный процессор имеет большое количество сходных процессоров, которые реализуют одну и ту же последовательность команд, однако работают с разными наборами данных. Первым в мире таким механизмом был ILLIAC IV (рис.1). Изначально был план создать машину, которая состояла бы из 4 секторов, каждый из которой имела бы решетку 8х8 элементов процессор/память. Каждый сектор имел один блок контроля. Он передавал команды для выполнения процессорами. Из-за большой стоимости был реализован один сектор, с реализацией выполнения 50 млн операций с плавающей точкой в секунду. Если бы машина состояла из 4 таких секторов, она бы выполняла 1 млрд операций с плавающей точкой в секунду, то мощность такой машины превышала бы мощность компьютеров всего мира в 2 раза.
Векторный процессор очень похож на предыдущий метод. В данном методе все операции сложения реализуются в одном блоке суммирования, который имеет конвейерную структуру. Компания Cray Research создала много векторных процессоров, начиная с Cray-1 (1974) и до сих пор. Компания сейчас входит в состав SGI.
Два типа процессоров работают один и те же команды. Однако, если у массивно-параллельного процессора количество суммирующих устройств равно количеству элементов в массиве, то у векторного процессора есть векторный регистр, который имеет набор стандартных регистров. Такие регистры последовательно грузятся из памяти с помощью одной команды.
Сегодня массивно-параллельные процессоры выпускаются и сейчас, однако их назначение узкое и специфическое. Они решают задачи, где нужна одновременная реализация одинаковых вычислений с разными данными.
Паровоз в формате векторного изображения, изначально в формате Windows Metafile, WMF (преобразованный в PNG ). Видно, что изображению не хватает фотографического реализма по сравнению с его эквивалентом в матричном или растровом формате.
Это пример, в котором векторную графику (левый столбец) можно сравнить с растровой (правый столбец) путем увеличения соответствующих изображений. Как видите, при увеличении изображения графика слева сохраняет свое качество, а графика справа постепенно раскрывает пиксели, составляющие изображение. Векторная графика может неограниченно масштабироваться без потери качества. Два примера увеличения при 300% и 600% особенно хорошо иллюстрируют это свойство векторной графики: очертания геометрических фигур (белые полосы за буквой A) не увеличиваются пропорционально на рисунке в случае растровой графики.
Векторное изображение - это цифровое изображение , состоящее из зависимых геометрических объектов (сегментов, многоугольников, дуг, стен и т. Д.), Каждый из которых определяется математическими атрибутами формы, положения и т. Д. Например, красный круг будет определяться положением его центра, радиусом, толщиной линии и цветом.
Этот формат изображения полностью отличается от формата растровых изображений , также называемых матричными изображениями, которые состоят из пикселей . Основной интерес векторной графики заключается в том, чтобы иметь возможность увеличивать размер изображения по своему желанию без потери качества, которое страдают растровые изображения. Таким же образом они позволяют относительно легко перемещать, растягивать и скручивать изображения. Его использование также широко распространено при создании динамических и статических трехмерных изображений.
Все современные компьютеры преобразуют векторную графику в растровые изображения, чтобы представить их на экране , поскольку они физически состоят из пикселей.
Основные приложения
Векторное изображение Wii U Remote , полученное путем максимального использования возможностей языка SVG .
История
С момента появления компьютера в 1950–1980 - х годах для создания графики использовалась векторная система, отличная от нынешней. В этой «каллиграфической» системе электронный луч от электронно-лучевой трубки на экране направлялся напрямую, чтобы рисовать необходимые формы, линейный сегмент за линейным сегментом, оставляя остальную часть экрана черным. Этот процесс повторялся на высокой скорости, чтобы получить изображение без прерываний или почти полное их отсутствие. Эта система позволяла визуализировать неподвижные и движущиеся изображения хорошего разрешения (для тех дат) без использования невообразимого количества памяти . это потребовалось бы для достижения эквивалентного разрешения в системе растеризации, позволяя последовательности изображений создавать ощущение движения и даже заставляя их мерцать, изменяя только некоторые слова кода графа в соответствующем файле отображения . Эти векторные мониторы также назывались дисплеями XY .
Одно из первых применений векторов в процессе визуализации было сделано ВВС США . Система генерации векторной графики использовалась до 1999 года в управлении воздушным движением и, вероятно, до сих пор используется в различных военных системах. Иван Сазерленд использовал ту же систему на TX-2 для запуска своей программы Sketchpad в лаборатории Линкольна Массачусетского технологического института в 1963 году.
Последующие системы векторной графики включали GT40 от Digital; была консоль Vectrex , которая использовала векторную графику для показа видеоигр, таких как Asteroids и Space Wars; и такое оборудование, как Tektronix 4014, могло генерировать динамические векторные изображения.
Термин вектор обычно используется в контексте двумерной компьютерной графики. Это один из многих способов, которыми художник может создать изображение с растровым превью. Другие формы использования могут быть в текстах, в мультимедиа и при создании трехмерных сценариев . Практически во всех программах 3D-моделирования используются методы создания векторной 2D-графики. Плоттеры , используемые в техническом рисовании, продолжают рисовать векторы прямо на бумаге.
Потоковые процессоры и GPU
Следующим шагом в развитии идеи SIMD стали потоковые мультипроцессоры (Streaming Multiprocessor, SM), в которых имеются массивы, состоящие из отдельных процессорных устройств, каждое со своим набором регистров размером с машинное слово — все процессоры автономны, но работают синхронно, выполняя одну и ту же команду над различным содержимым регистров [4].
Рис. 1. Потоковый процессор |
Потоковые мультипроцессоры (рис. 1) были разработаны в Стэнфордском университете исключительно для медийных приложений, а исследования финансировались агентством DARPA. Сразу после первых публикаций в судьбе SM произошел поворот — обнаружилось их новое применение в графических процессорах (Graphicsl Processing Unit, GPU), используемых для игр, хотя в первых публикациях разработчики вообще не упоминали игры как потенциальные сферы приложений.
Первые потоковые GPU на основе SM, Nvidia GeForce 8 и ATI FireStream, переименованного в AMD Stream Processor, вышли на рынок в 2006 году. Сначала появилась возможность создавать программируемые GPU, давшие заметный импульс игровой индустрии и, как следствие, большие прибыли, что открыло возможности для быстрого развития GPU — удвоение их производительности происходит сейчас каждые полгода. Вскоре открылась перспектива применения GPU и для вычислений, это дало жизнь новому направлению, известному как графические процессоры универсального назначения (General-Purpose Graphics Processing Unit, GPGPU).
Форматы векторной графики
Privative - Некоторые из них имеют полностью или частично открытые спецификации
-
® (PS, EPS [инкапсулированный PostScript])
- SWF Adobe Flash ® и DWG , форматы AutodeskAutoCAD . : ( Графический язык HP ), де-факто стандарт для плоттеров (плоттеров). от Adobe Illustrator de Paint Tool SAI ® от Corel Draw (WMF)
- af.design de Affinity Designer
-
® (PDF) Масштабируемая векторная графика SVG (ODG) Язык векторной разметки VML ®
Языки описания документов
Векторная графика позволяет описать внешний вид документа независимо от разрешения устройства вывода. Самые популярные форматы - PostScript и PDF . В отличие от матричных изображений, эти документы можно просматривать и распечатывать без потерь при любом разрешении.
Видео игра
В трехмерных видеоиграх широко используется векторная графика.
Основные геометрические фигуры
-
и полилинии и эллипсы
- Текст (обычно TrueType или FreeType или другой шрифт, использующий кривые Безье).
Приведенный выше список не включает другие типы кривых ( сплайн Катмулла-Рома , NURBS , . ), которые полезны для других типов приложений.
Растровые изображения часто считаются несколько примитивными форматами [ необходима цитата ] с концептуальной точки зрения, поскольку их способ хранения информации в пикселях не обеспечивает такой же гибкости, которая достигается с векторным изображением. Однако у растровых изображений есть преимущества в других областях, таких как цифровая фотография и видео .
GPGPU и гетерогенность
С появлением шестого и седьмого поколений GPU произошла полная конвергенция потоковых и графических процессоров (показательно, что ведущий разработчик графического процессора Imagine, профессор Стэнфордского университета Уильям Далли занял пост главного ученого Nvidia) в объединенное направление универсальных вычислений на графических процессорах.
Успех GPU на поле универсальных вычислений оказал серьезное влияние на гетерогенные системы, состоящие из более чем одного типа процессоров — к CPU добавляют графические процессоры, сигнальные процессоры DSP, программируемые логические матрицы FPGA, процессоры с фиксированными функциями, например видеодекодеры и еще какие-либо ускорители.
Еще совсем недавно одинаковые шансы на признание были у двух разных гетерогенных систем — наиболее перспективными казались асимметричные мультипроцессоры (Asymmetric Multiprocessing, AMP) и FPGA. Самым ярким образцом AMP был процессор Cell, разработанный альянсом Sony, Toshiba и IBM. Проект стартовал в марте 2001 года и обошелся почти в полмиллиарда долларов, а в 2009 году, когда стала ясна бесперспективность 32-разрядных процессоров, работы над начальной версией Cell приостановились, хотя IBM утверждает, что на уровне исследований они продолжаются. FPGA задумывались как платформа для специальных процессоров, но с появлением межпроцессорных соединений QuickPath Interconnect и Hyper-Transport стало возможным использовать FPGA в качестве ускорителей для процессоров x86-архитектуры. Сегодня FPGA занимают определенную нишу с монопольным положением Xilinx и Altera, а еще пять-шесть компаний сосредоточены на производстве специализированных массивов. После 2010 года все внимание в сфере гетерогенных процессоров сосредоточилось исключительно на GPU.
Сегодня гетерогенность становится одним из важнейших направлений развития индустрии. Важно подчеркнуть, что гетерогенность не достигается формальным суммированием в одной установке сотен ядер CPU с тысячами ядер GPU, как это делается в суперкомпьютерах типа Tianhe-2, — каким бы большим ни был суперкластер, он остается группой машин, связанных между собой, но при этом работающих по классической схеме SISD. Гетерогенные компьютеры отличаются от кластеров тем, что все их процессоры должны иметь доступ к унифицированной общей памяти. Однако при решении этой задачи возникают сложности, поскольку принципы, по которым организован доступ к памяти CPU и GPU, радикально различаются. В первых компьютерах арифметико-логическое устройство общалось непосредственно с памятью, содержимое ячеек загружалось в регистры и обратно, в 70-е годы возникла идея кэш-памяти, которая расширялась, и в современных CPU применяются многоуровневые кэши, обеспечивающие эффективное использование тракта CPU — память. GPU умеют работать с ограниченным объемом данных, предварительно загруженных в локальную графическую память процессора. Сегодня используются два подхода к унификации памяти для GPGPU — Nvidia в CUDA 6 предлагает программное решение, а AMD применяет аппаратное решение hUMA (heterogeneous Uniform Memory Access).
К 2014 году завершился двадцатилетний период эволюции потоковых и графических процессоров и сложились условия для полноценного развития GPGPU на базе гетерогенных архитектур, позволяющих строить системы обработки в реальном времени больших потоков данных.
Интернет
Векторная графика, доступная в Интернете, обычно представляет собой открытые форматы VML и SVG или SWF в проприетарном формате. Последние можно просмотреть с помощью Adobe Flash Player .
Литература
Основы SM
Функционирование SM основывается на двух «слонах»: локализация (locality), или привязка к вычислительным узлам (к программным операциям), и согласованный между узлами параллелизм действия (concurrency). Локализация и параллелизм воплощены в программной модели потока (Stream Programming Model, SPM), а сама SPM строится на разделении приложений на две составляющие: на потоки — записи из данных одного типа (числа и более сложные структуры) и ядра — операции, выполняемые над входными потоками. SPM работает на процессоре предельно упрощенной архитектуры (рис. 2), который отличается от традиционного CPU наличием набора регистров для потоков данных (Stream Register File, SRF) и устройства для исполнения ядер (Kernel Execution Unit, KEU). В архитектуре SM локализация и параллелизм поддерживаются непосредственно на уровне набора команд, а SRF служит средством коммуникации между потоками KEU и памятью.
Рис. 2. Архитектура потокового процессора |
Процессор приложений (Application Processor) имеет собственный набор команд, архитектурно напоминает RISC и служит для управления прохождением потоков — для этого имеются интерфейсы с SRF, KEU и памятью. Команды, обращенные к памяти, позволяют загрузить (load_stream) и сохранить (store_stream) поток, а обращенные к KEU — загрузить ядро (load_kernel) и выполнить ядро (run_kernel). После того как ядро загружено, KEU обрабатывает поток с использованием своего собственного набора команд. Этот набор команд тоже аналогичен RISC, но управляет только функциональностью, которая находится внутри KEU.
Над потоками могут быть выполнены следующие типы операций:
- Map-Apply («отобразить и применить») — применяется ко всем элементам потока;
- Gather and Scatter («собрать и распределить») — применяется к адресуемой с помощью вектора части потока;
- Reduce («сократить») — выделение потока меньшей мощности из большего по размерам потока;
- Filter («фильтровать») — выделение части потока по какому-то признаку;
- Sort («сортировать») — превращение потока в упорядоченный набор данных;
- Search («искать») — выделение определенных элементов потока.
В SPM есть два типа локальности: ядерная (kernel locality) и локализация связи между источником и получателем данных (producer-consumer locality). Локальность — ключ к желаемому параллелизму. При ядерной локализации ссылки на переменные ограничены только ядром, за исключением чтения входного потока и записи в выходной поток. Локализация связи распространяется на обмен данными между ядрами — для того чтобы SM мог работать, необходимо, чтобы поток, порожденный ядром-поставщиком, был немедленно поглощен ядром-потребителем. Исполнение локализовано в ядрах, а передача потоков осуществляется через связи между парами ядер. Наличие локализации гарантирует три типа коммуникаций: местные — скалярные внутри ядра; потоковые — между ядрами; глобальные — обмен с устройствами ввода-вывода.
Описанные подходы к локализации данных и их обработке открывают возможности для нескольких типов параллелизма:
- на уровне команд (Instruction Level Parallelism): параллельное выполнение скалярных операций в ядре;
- параллелизм данных (Data Parallelism): одни и те же шаблоны вычислений применяются параллельно к различным элементам потоков;
- параллелизм задач (Task Parallelism): традиционное распараллеливание вычислений.
Первым SM был медийный процессор Imagine Media Processor, разработанный в Стэнфорде и изготовленный компанией Texas Instruments в 2001 году. В Imagine было восемь KEU, собранных в кластер, работающий в режиме SIMD. Каждый из KEU состоит из шести устройств для выполнения операций с плавающей точкой, в их числе три сумматора, два устройства умножения и одно — для деления и извлечения квадратного корня. В отличие от идеальной схемы (рис. 2), в нем нет встроенного процессора приложений — Imagine был задуман как сопроцессор. При такой схеме за выполнение скалярных команд отвечает хост-процессор, а потоковые команды передаются через потоковый контроллер в Imagine. Все входные и выходные потоки передаются через SRF.
Система программирования для Imagine Media Processor состоит из двух Cи-подобных языков KernelC и StreamC, каждый из них имеет свой собственный компилятор. Таким образом обеспечивается управление исполнением и управление потоками данных. Ядро, написанное на KernelC, оперирует содержимым потоков, образованным вычислительным циклом с итерацией, обрабатывающим входной поток и создающим выходной поток. Управляющая потоками программа пишется на StreamC. Однако система программирования из двух связанных языков программирования не может быть жизнеспособной, поэтому в Лаборатории машинной графики Стэнфордского университета в 2003 году был разработан язык BrookGPU, ставший родоначальником современных потоковых языков программирования. Под влиянием Imagine были созданы экспериментальные компьютеры Merrimac и 64-битный FT64. Особо стоит отметить IBM Cell, в котором внутренний кластер собран из полноценных CPU, что позволяет им обрабатывать разные потоки.
В результате коммерциализации проекта Imagine в 2007 году была создана компания Stream Processors, выпустившая семейство процессоров Storm-1, рассчитанное на системы для обработки цифровых сигналов (Digital Signal Processing, DSP). И примерно тогда же началось постепенное заимствование идей потоковой обработки двумя основными производителями GPU, компаниями AMD и Nvidia.
Программы для редактирования векторных изображений
-
от Adobe . , де Corel Corporation .
- Affinity Designer , де Зериф.
- CleverBrush , de CleverBrush Inc. , de Macromedia . , де Microsoft Corporation .
- Gravit
-
, Фонд программного обеспечения Apache . , консорциум The Document Foundation . от Equipo Inkscape. , del desarrollador Lauris Kaplinski. из Team Skencil. , от Xara Group Ltd (английский) . , из проекта GNOME . из команды Kivio. , de Systemax (английский) .
Этапы развития GPU
Историю GPU можно условно разделить на семь поколений, появлению которых предшествовала некоторая предыстория. Начиная с 1979 года компания Ikonas выпускала мелкими сериями графические ускорители, предназначенные для полетных тренажеров. Тогда еще не было мощных тиражируемых микропроцессоров, поэтому такие системы были доступны только для специальных приложений. А первые дешевые ускорители графики появились в составе персональных компьютерах Atari и Amiga, на которых работали шейдеры. Для IBM PC была создана карта IBM Professional Graphics Controller (PGA) на процессоре Intel 8088.
Поколение 1. В 1993 году компания SGI выпустила графическую плату RealityEngine, а вскоре компании 3DFX, Nvidia, ATI и Matrox начали производить графические контроллеры 2D и 3D для популярных в то время игр Quake и Doom.
Поколение 2. В 1996 году компания 3DFX, купленная позже Nvidia, выпустила первую игровую карту Voodoo, а в 1999-м появились ее аналоги — GeForce256 от Nvidia и Radeon 7500 от ATI.
Поколение 3. Раньше других в 2001 году программируемый конвейер был внедрен в Nvidia GeForce 3, в котором появились небольшие ядра, программируемые на языке, подобном Ассемблеру. То же самое появляется в ATI Radeon 8500 и Microsoft X Box.
Поколение 4. В 2002 году на рынок были выпущены первые полностью программируемые карты Nvidia GeForce FX и ATI Radeon 9700.
Поколение 5. В 2004 году выпущены GPU GeForce 6 и Radeon X800 с интерфейсом PCI-Express и возможностью программировать на языках высокого уровня Brook и Sh, которые до сих пор существуют в виде открытого ПО.
Поколение 6. В 2006 году Nvidia GeForce 8 стал первым GPU с массовым параллелизмом — его справедливо будет назвать потоковым или GPU общего назначения с поддерживаемым языком программирования CUDA (Compute Unified Device Architecture). С небольшим отставанием появился процессор ATI Stream.
Поколение 7. К 2010 году усилилась тенденция к программируемости GPU — процессоры становятся похожи на CPU, выпускается Nvidia Fermi GPU, предназначенный для GPGPU, а GTX480 Fermi имеет 15 потоковых процессоров по 32 ядра в каждом, то есть всего 480 ядер CUDA. Компания AMD ответила линейкой Fusion, «ускоренное процессорное устройство» (Advanced Processing Unit, APU) которого сочетает в себе CPU и GPU, а корпорация Intel выпустила процессор Larrabee.
Распечатать
Ключевым моментом векторных изображений является их практическая настройка во время печати, поскольку их можно масштабировать и увеличивать их разрешение неограниченным образом. Например: вы можете взять один и тот же векторный логотип, распечатать его на визитной карточке, а затем увеличить его и распечатать на заборе, сохранив при этом одинаковый уровень качества для обоих изображений. Самыми популярными примерами форматов документов для печати являются PDF и PostScript.
Еще одно приложение, в котором важна векторная графика, - это плоттер или принтер для резки винила, поскольку он, как следует из названия, вырезает созданные пользователем цветные области из цифрового файла. Эти фигуры построены из векторов, которые интерпретируются плоттером как ограничительные линии, через которые лезвие, разрезающее материал, должно пройти [ требуется цитата ] . Очень распространено в этикеточной индустрии, для украшения плоских поверхностей или кузовов транспортных средств.
Векторный процессор является одним из двух различных типов компьютерных процессоров: векторные и скалярные.Векторный процессор отличается от скалярного процессора в том,что он выполняет вычисления вектора в целом.Вектор-это одномерный массив, или один ряд значений,таких как список номеров. Скалярный процессор работает с каждым из чисел по отдельности;он может делать разные вещи с многими разными номерами.Векторный процессор,с другой стороны,выполняет ту же самую процедуру для всех сразу номеров.
Этот тип процессора,является более специализированным,чем скалярный процессор,что делает его менее популярным выбором для среднего компьютера.Средний компьютер выполняет широкий спектр задач,и самый быстрый способ сделать много разных типов задач с помощью скалярных процессоров.Это потому, что процессор может переключаться между задачами гораздо быстрее.Векторный процессор используется в высококвалифицированной специализированной электронике,такой как супер-компьютеры.Эти процессоры являются гораздо более эффективными,когда используются для крупномасштабных проблем.Небольшие задачи,такие как открытие документа word или воспроизведение видео,могут быть выполнены с помощью скалярного процессора быстрее, чем векторный процессор.
Помимо суперкомпьютеров,есть и другое широкое применение для векторных процессоров.Векторные процессоры используются в военных целях.Они очень хороши для кодирования и декодирование ультразвуковых локаторов и радарных сигналов и, как правило,могут обработать сигнал гораздо быстрее,чем скалярный процессор.Эти процессоры также хорошо симулируют различные события,такие,как тип погоды,физические тесты,и всё остальное,для чего требуется огромное количество скорости выполнения задач.
Часто существует большое количество векторных процессоров,которые используются в сочетании.Эти процессоры хорошо работают вместе,и с большим количеством процессоров, для решения же задач,при этом затраченное время резко сокращается. Такая работа как супер-ЭВМ имеет огромное количество процессоров соединённых вместе, чтобы решить общие проблемы.
Векторные процессоры являются примером того,как специализированные устройства работают над конкретной задачей, чем многофункциональное устройство. Векторный процессор был специально построен для обработка больших объёмов данных и является очень эффективным в этом.Улучшения в скалярной технологии,особенно с точки зрения микропроцессоров влечёт за собой общее снижение в использовании векторных процессоров, даже в супер-компьютерах.
[share-locker locker_id=»4161e690f6eaad9ad» theme=»blue» message=»Если Вам понравилась эта статья,нажмите на одну из кнопок ниже.СПАСИБО!» facebook=»true» likeurl=»CURRENT» vk=»true» vkurl=»CURRENT» google=»true» googleurl=»CURRENT» tweet=»true» tweettext=»» tweeturl=»CURRENT» follow=»true» linkedin=»true» linkedinurl=»CURRENT» ][/share-locker]
Часть компьютера,которая позволяет ему функционировать, выполняя указания различных программ — центральный процессор (Процессор).Центральный процессор,также называемый процессор, это программа которая получает инструкции,декодирует эти инструкции,разбивая их на отдельные части,выполняет данные инструкции и делает отчеты о результатах,записывая их обратно в память.Процессор поставляется в одном из двух основных типов: векторные и скалярные процессоры.Разница между ними в том, что скалярные процессоры работают только на одну точку данных одновременно,в то время как векторные процессоры работают на массив данных.
Скалярный процессор самый простой тип процессора.Этот процесс имеет по одному объекту,как правило,целые числа или числа с плавающей точкой,которые являются числами слишком большими или малыми,что бы быть представлены целыми числами. Так как каждая команда обрабатывается последовательно,основная скалярная обработка может занять некоторое время.Большинство современных компьютеров имеют тип скалярного процессора.
В отличие от этого, векторный процессор работает на массив точек данных.Это означает,что вместо обработки каждого элемента по отдельности,векторный процессор обрабатывает сразу несколько элементов,имеющих одинаковые инструкции,которые могут быть обработаны одновременно.Это может сэкономить время по сравнению с скалярной обработкой,но также добавляет сложности к системе,которая может замедлить другие функции.Векторная обработка данных работает лучше всего, когда есть большой объем данных,подлежащих обработке групп,которые могут обрабатываться одной инструкцией.
Векторные и скалярные процессоры различаются также и в их времени запуска.Векторный процессор зачастую требует длительной загрузки компьютера,поскольку он выполняет много задач,которые нужно выполнить.Скалярные процессоры запускают компьютер в гораздо более короткий промежуток времени, поскольку выполняются только одна задача.
Суперскалярный процессор имеет элементы каждого типа и объединяет их для еще более быстрой обработки.Использование параллелизма на уровне инструкций,позволяет суперскалярную обработку выполнять за несколько операций одновременно.Это позволяет процессору выполнять гораздо быстрее задачи,чем обычный скалярный процессор,без дополнительных сложностей и других ограничений векторного процессора.Но с этим типом процессора могут быть проблемы,так как он должен определить, какие задачи могут выполняться параллельно,которые зависят от других задач, на стадии завершения первой задачи.
Векторные и скалярные процессоры по прежнему используются на ежедневной основе.Некоторые игровые приставки, например,используют сочетание обоих и векторных и скалярных процессоров.Векторная обработка данных рассматривается в перспективе при работе с мультимедийными задачами, в которой одна команда может решить большой объем данных, необходимых для видео и аудио.
[share-locker locker_id=»ead8c8d037f1fbbd8″ theme=»blue» message=»Если Вам понравилась эта статья,нажмите на одну из кнопок ниже.СПАСИБО!» facebook=»true» likeurl=»CURRENT» vk=»true» vkurl=»CURRENT» google=»true» googleurl=»CURRENT» tweet=»true» tweettext=»» tweeturl=»CURRENT» follow=»true» linkedin=»true» linkedinurl=»CURRENT» ][/share-locker]
Для работы с большими потоками данных, поступающими в реальном времени, требуются гетерогенные процессоры, сочетающие в себе возможности CPU и GPU.
- Ключевые слова / keywords:
- Data-Intensive Computing
- GPGPU
- GPU
- Streaming Multiprocessor
- потоковые процессоры
- Платформы
Для работы с большими потоками данных, поступающими в реальном времени, требуются гетерогенные процессоры, сочетающие в себе возможности CPU и GPU.
Символами нового времени становятся Интернет вещей, взаимодействие машин (Machine-to-Machine, M2M), киберфизические системы, многочисленные формы цифрового искусства, геоинформационные системы, аналитика во всех ее видах и многое другое. Миллиарды устройств по всему миру генерируют, собирают и распределяют огромное количество данных в режиме 24x7 — мы становимся свидетелями такого невиданного прежде явления, как конвергенция цифрового и физического миров. Основным средством, обеспечивающим соприкосновение этих миров, станут, конечно, компьютеры, но не те, какими они были на протяжении предшествующих семидесяти лет; теперь их главная способность будет состоять в возможности справляться с большими потоками поступающих из внешней среды данных.
Какими будут эти компьютеры? Для решения проблем, порожденных конвергенцией миров, на компьютеры из Top500 надежды нет. Одна из возможных альтернатив — Data-Intensive Computing (DIC) [1], которые отличаются такими качествами, как связь с окружающей средой и работа в ее контексте. Поэтому DIC еще называют Context-Aware Computing (CAC) [2], имея в виду способность компьютеров воспринимать извне большие объемы данных, поступающих по сетям и от разнообразных датчиков. К компьютерам, поддерживающим CAC, предъявляется ряд требований, среди которых способность обрабатывать в параллельном режиме большие потоки входных данных и энергетическая эффективность.
А на каких процессорах можно построить такие компьютеры? На данный момент одним из важнейших компонентов процессорной базы систем DIC могут стать графические процессоры. Благодаря прибыльности индустрии развлечений, за более чем тридцатилетнюю историю они прошли путь от простых графических ускорителей до полноценных потоковых процессоров, сменив векторные процессоры, более 40 лет использовавшиеся в высокопроизводительных системах.
Векторные процессоры
Идея о возможности обработки одной командой более чем одного машинного слова далеко не нова — еще в 60-е годы компанией Westinghouse был начат проект Solomon, переросший в ILLIAC IV, в котором предполагалось 256 арифметико-логических устройств, хотя реально было 64. В 70-е годы Сеймур Крей сначала в CDC, а затем в собственной компании создавал векторные суперкомпьютеры, такие как Thinking Machines CM-2, которая могла за один такт умножать 64 тыс. пар чисел. В СССР под руководством Михаила Карцева примерно в то же время создавались машины М-9 и М-10 с векторной архитектурой, способные конкурировать, например, с CDC-7600. Попытка Intel вывести на рынок SIMD-процессор Intel i860 оказалась неудачной — процессор явно опередил время. В дальнейшем элементы SIMD появились в системах векторных команд ряда популярных процессоров: VIS в UltraSPARC I, MDMX в MIPS, MMX/SSE в x86 и AltiVec в PowerPC. При объединении в кластеры машин на базе многоядерных процессоров образуются системы класса много потоков команд, много потоков данных (Multiple Instruction Multiple Data, MIMD), и любой современный настольный компьютер попадает в категорию машин MIMD, способных выполнять команды типа SIMD над короткими векторами.
Отдельную страницу истории занимают транспьютеры. В 80-е годы под руководством Тони Хоара была разработана теория ускоренных параллельных вычислений на базе приборов, способных быстро обмениваться данными и производить вычисления (само слово transpute образовано от transmit и compute). Для поддержки транспьютеров были разработаны язык Occam и операционные системы Minix и Idris. Привлекшая к себе на короткий момент широкое общественное внимание, транспьютерная инициатива сошла на нет по экономическим причинам: рентабельное производство полупроводниковых приборов не может быть мелкосерийным. Кроме этого, были и сугубо технические причины: низкая эффективность последовательного обмена данными и сложность программирования транспьютеров.
Векторные процессоры и команды в стандартных центральных процессорах (Central Processing Unit, CPU) могут работать только с массивами, состоящими из единообразных компонентов, последовательно хранимых в памяти. Векторы считываются из памяти порциями данных с регулярным интервалом. Теоретически возможно расширить возможности векторных систем, принудительно записывая данные в регистры, но это долго, неудобно и ко всем данным, размещенным в регистрах, применяется одна и та же команда. Эти ограничения дают основание утверждать, что векторные процессоры остаются по сути теми же CPU, но с расширенными способностями арифметико-логического устройства.
Стоит отдельно отметить терминологическую коллизию — архитектуру SIMD не следует путать с одновременной многопоточностью (simultaneous multithreading), реализованной в большинстве современных CPU [3]. В первом случае речь идет о множестве потоков данных, а во втором — о разбиении потока команд на несколько меньших по мощности потоков.
Шрифты
Большинство современных приложений используют текст, состоящий из векторных изображений. Наиболее распространенными примерами являются TrueType , OpenType и PostScript.
Генерация графики
Они используются для создания логотипов , которые могут быть расширены по желанию, а также для технического проектирования с помощью программ типа CAD ( Computer Aided Design ) . Очень популярен для создания 3D-сцен.
Читайте также: