Что такое графический ускоритель для компьютера

Обновлено: 04.07.2024

Графические ускорители – это оборудование, оптимизированное для выполнения вычислений для трехмерной компьютерной графики. В настольных системах графический ускоритель обычно представляет собой графическую карту, но иногда графический ускоритель является частью материнской платы. Современные графические ускорители обладают феноменальной производительностью. Они встроены в смартфоны и смарт-планшеты. Как правило, графический ускоритель управляет системой (системами) отображения. Таким образом, важно, чтобы ускоритель поддерживал необходимые типы операций и функций. Например, некоторые графические ускорители могут поддерживать несколько устройств отображения. Это может быть удобно, если вам нужно иметь больше доступной площади дисплея, чем может вместить один дисплей. Таким образом, если вы используете монитор компьютера в качестве визуального дисплея, с соответствующей графической картой вы можете использовать два дисплея, которые работают вместе, как если бы они были одним большим дисплеем, или вы можете использовать дисплеи в разных конфигурациях. Например, если вам нужно управлять дисплеем, похожим на CAVE, вы можете управлять каждой из разных «стен» с разных дисплеев.

Еще одно соображение относительно графического ускорителя в системе — планируете ли вы отображать стереоскопические изображения. Чтобы отобразить стереоскопические изображения, вам нужно вычислить разные изображения для каждого глаза участника, а затем убедиться, что каждое изображение (каким-то образом) отображается для правильного глаза. Для некоторых схем стереоскопического изображения вам потребуются специальные возможности графического ускорителя. Более подробно это рассматривается в разделе об отображении этой главы. Обратите внимание, что я имею в виду графический ускоритель (ускорители), а не просто графический ускоритель. Это связано с тем, что в некоторых случаях полезно использовать более одного. Например, в случае использования более одного дисплея, в принципе, можно использовать графический ускоритель, способный управлять более чем одним дисплеем, или использовать более одного графического ускорителя (по одному на каждый дисплей) (рис. 3.14).

< бр />

Рисунок 3.14. На этом рисунке показано одно изображение, созданное путем объединения нескольких мониторов. На этом снимке следует отметить еще пару моментов: графика и текст на мониторах выглядят не в фокусе. Это связано с тем, что для каждого глаза участника отображается отдельное изображение. Одно изображение предназначено для левого глаза участника, а другое — для правого. Поскольку они рассчитаны с немного разных точек зрения, они выглядят как двойное изображение, которое не в фокусе. Участник надевает специальные очки, чтобы каждый глаз видел правильное изображение. Конечным результатом является то, что участник видит изображение, которое выглядит сфокусированным и трехмерным. Еще одна вещь, на которую стоит обратить внимание, — это яркие шарики на визоре участника и портативном контроллере. За ними наблюдают камеры системы слежения, чтобы определить местоположение и ориентацию головы и рук участника.

Фото предоставлено Аланом Б. Крейгом.

Введение и обзор

1.5.1 Графические процессоры

Изначально карты графических ускорителей, называемые графическими процессорами (Graphic Processing Units) и используемые для рендеринга визуализационных изображений, иногда использовались для выполнения других вычислений, которые можно было перефразировать с точки зрения API графического программирования. Работа с двумерным изображением — двумерным массивом пикселей — является очень параллельным процессом, поскольку большую часть времени наборы пикселей могут обновляться одновременно. Графическое оборудование и программное обеспечение строго параллельны данным. Графические процессоры сопоставляют графические алгоритмы с большим набором независимых потоков выполнения (потоков), выполняющих одни и те же операции в разных секторах целевого набора данных.

Важный шаг был сделан в 2007 году, когда корпорация NVIDIA осознала заинтересованность программистов в том, чтобы думать о графическом процессоре как о процессоре. Помимо значительного количества аппаратных усовершенствований, призванных сократить разрыв между графическими ускорителями и более стандартными вычислительными механизмами, были введены компилятор CUDA C/C++, библиотеки и программное обеспечение времени выполнения, что позволило программистам получить доступ к базовой модели параллельных вычислений данных и разрабатывать приложения, адаптированные к этому. модель. Графические API-интерфейсы больше не требовались для получения преимуществ от вычислительной среды GPU. С тех пор прогресс, достигнутый на аппаратном и программном уровнях, весьма значителен. Сегодня графические процессоры являются очень мощными вычислительными машинами, и отчасти их успех объясняется тем, что вычислительные ядра, будучи очень легкими, преодолевают стену рассеяния мощности, обеспечивая превосходное соотношение вычислительной мощности (флопс) на рассеиваемый ватт.

При обсуждении ускорителей GPU важна концепция гетерогенных вычислений, поскольку требования к конструкции вычислительного механизма GPU отличаются от требований, определяющих конструкцию ЦП. Дизайн ЦП основан на задержке: один поток выполнения максимально эффективен. Значительная часть реального состояния кремния в ЦП посвящена управляющей логике, необходимой для реализации параллелизма на уровне инструкций или для обеспечения низкоуровневых интерфейсов, необходимых для запуска операционной системы, или для кэширования памяти, необходимой для оптимизации доступа к памяти. Кроме того, процессоры имеют ограниченное количество ядер. Вместо этого графические процессоры зависят от пропускной способности. Сегодня у них есть десятки тысяч очень легких ядер, каждое из которых использует очень ограниченное реальное состояние кремния, потому что они не предназначены для запуска операционной системы. Действительно, ядра графического процессора выполняют ограниченное количество инструкций для вычислений и синхронизации с другими ядрами. Блоки кода, которые они выполняют, выгружаются из приложения, работающего на основной вычислительной платформе, к которой они подключены. Ядра графического процессора в абсолютном выражении значительно менее эффективны, чем ядра ЦП, но влияние на производительность связано с их важным количеством, упомянутым выше, которое обеспечивает огромную потенциальную пропускную способность. Производительность приложения сильно зависит от его способности использовать значительный объем потенциального параллелизма, предлагаемого графическим процессором. Интерес гетерогенных вычислений заключается в возможности выполнения частей приложения на стандартной платформе и переносе на GPU выполнения блоков кода, адаптированных к его архитектуре.

Фундаментальным фактором, ограничивающим производительность графических процессоров, опять же является стена памяти. Текущие графические процессоры не имеют прямого доступа к основной памяти, и целевой набор данных должен быть выгружен в графический процессор вместе с кодом для запуска. Затем выходные результаты должны быть возвращены мастер-коду, работающему на основной платформе. В этом контексте реальная достигнутая устойчивая производительность сильно зависит от профиля приложения. Превосходная эффективность достигается только в том случае, если значительный объем вычислений может быть выполнен с ограниченным объемом передачи данных в центральный процессор и из него. Тем не менее архитектуры графических процессоров развиваются очень быстро, и сегодня доступна возможность прямого обмена данными между различными графическими процессорами. В будущем ожидается существенное улучшение производительности доступа к основной памяти платформы.

Для программирования на GPU требуются специальные среды программирования (CUDA, OpenCL, OpenACL), способные создавать код и данные и выгружать их на GPU. Эти среды программирования значительно усовершенствовались за последние несколько лет, способствуя распространению и внедрению программирования на GPU. Важной недавней эволюцией являются недавние расширения OpenMP 4.0, включающие директивы для разгрузки данных и блоков кода на ускорители, которые будут рассмотрены в главе 10.

Код, выполняемый на GPU, должен соответствовать возможностям целевой архитектуры. Потоки, выполняемые на ядрах графического процессора, не являются потоками общего назначения, работающими на ЦП общего назначения, которые являются основным предметом этой книги.

Сегодня существует обширная литература по графическим процессорам. Хорошим справочником, обеспечивающим широкое освещение этой темы, является книга Д. Кирка и В. Хву «Программирование массивно-параллельных процессоров» [5]. Другими полезными ссылками являются «Руководство по CUDA» Н. Уилта [6] и «CUDA на примере» Дж. Сандерса и Э. Кандрота [7].

Координация многоагентной системы и ее применение в роботизированном футболе

4 КООРДИНАЦИЯ ДВИЖЕНИЯ МОБИЛЬНЫХ РОБОТОВ

Координация мобильных роботов осуществляется несколькими способами.

В этом документе упоминаются два из них, первое — это программное обеспечение для моделирования «3D Robot Soccer Simulator», а второе — программное обеспечение под названием «Visio». В программах «3D Robot Soccer Simulator» движения мобильных роботов координируются с помощью таблиц, подготовленных в программе Microsoft Excel. Что касается второго способа координации робота, то все через язык программирования C++, когда после этой координации подключается к программе «Visio», где выполняются выполняемые движения.

4.1 Программное обеспечение для моделирования мобильных роботов «3D Robot Soccer Simulator»

Это программа для моделирования игры роботов в футбол, разработанная группой студентов из Австралии (Университет Гриффита, Австралия). По категориям лиги МироСот была сыграна игра, которая в этой программе средней лиги (5 против 5), (Рисунок 5).

Рисунок 5 . Рабочее окно «3D Robot Soccer Simulator»

Были две команды, синяя и желтая, которые использовали стратегии, созданные ранее с помощью простого текста (Lingo) и языка программирования C++. Правила игры такие же, как и в реальной игре этой категории. Эта программа была очень важна, так как стратегия, прежде чем она применялась в реальной игре, была проверена.

Pentium III 600 МГц

256 МБ ОЗУ

Ускоритель 3D-графики TNT2 с 32 МБ

Разрешение экрана 800 × 600

16-битная звуковая карта

Майкрософт Windows 98

10 МБ свободного места на диске.

4.2 Робот танцует (Парад)

Чтобы реализовать танец роботов (парад), используется другой метод (стратегия). Этот метод танцующих роботов разработан в IHRT в Австрии (Han, 2003). Движения робота не общие, а скоординированные. Это означает, что когда один робот движется, другой робот ожидает приказа. Программирование может развиваться и у студентов, не владеющих знаниями C++. Это реализуется за счет использования листа в Microsoft Excel (рис. 6).

Рисунок 6. Лист Excel со стратегией парада

Есть пять различных функций:

ParadeWait — Робот ждет надлежащее время (время измеряется в миллисекундах).

Положение парада — робот перемещается в определенную позицию.

ParadeRotate — Робот поворачивается на определенный угол (в абсолютных координатах).

ParadeCircle — Робот движется по определенному кругу.

ParadeTimeRotate — Робот вращается в течение определенного времени.

Кроме того, приведены некоторые примеры программирования скоординированных движений робота. Запрограммированы движения трех роботов для короткого парада.

При таком программировании вначале должна быть написана первая функция (ParadeWait). Затем использовалась функция 2 (ParadePosition), в которой были заданы начальные координаты положения роботов.

Согласно координатам, указанным в предыдущей таблице, в программе «3D Robot Soccer Simulator» положение роботов следующее:

Рисунок 7. Начальные траектории роботов

4.3 Программа, обеспечивающая реальное перемещение роботов Visio

С помощью программы «Visio» можно настроить цвета роботов и мяча, модификацию картинки (просмотра), определение размера робота, определение размера игровой площадки, тестирование робота (скорость каждого колеса указана отдельно) и т. д.

Графические ускорители – это оборудование, оптимизированное для выполнения вычислений для трехмерной компьютерной графики. В настольных системах графический ускоритель обычно представляет собой графическую карту, но иногда графический ускоритель является частью материнской платы. Современные графические ускорители обладают феноменальной производительностью. Они встроены в смартфоны и смарт-планшеты. Как правило, графический ускоритель управляет системой (системами) отображения. Таким образом, важно, чтобы ускоритель поддерживал необходимые типы операций и функций. Например, некоторые графические ускорители могут поддерживать несколько устройств отображения. Это может быть удобно, если вам нужно иметь больше доступной площади дисплея, чем может вместить один дисплей. Таким образом, если вы используете монитор компьютера в качестве визуального дисплея, с соответствующей графической картой вы можете использовать два дисплея, которые работают вместе, как если бы они были одним большим дисплеем, или вы можете использовать дисплеи в разных конфигурациях. Например, если вам нужно управлять дисплеем, похожим на CAVE, вы можете управлять каждой из разных «стен» с разных дисплеев.

Еще одно соображение относительно графического ускорителя в системе — планируете ли вы отображать стереоскопические изображения. Чтобы отобразить стереоскопические изображения, вам нужно вычислить разные изображения для каждого глаза участника, а затем убедиться, что каждое изображение (каким-то образом) отображается для правильного глаза. Для некоторых схем стереоскопического изображения вам потребуются специальные возможности графического ускорителя. Более подробно это рассматривается в разделе об отображении этой главы. Обратите внимание, что я имею в виду графический ускоритель (ускорители), а не просто графический ускоритель. Это связано с тем, что в некоторых случаях полезно использовать более одного. Например, в случае использования более одного дисплея, в принципе, можно использовать графический ускоритель, способный управлять более чем одним дисплеем, или использовать более одного графического ускорителя (по одному на каждый дисплей) (рис. 3.14).

< бр />

Рисунок 3.14. На этом рисунке показано одно изображение, созданное путем объединения нескольких мониторов. На этом снимке следует отметить еще пару моментов: графика и текст на мониторах выглядят не в фокусе. Это связано с тем, что для каждого глаза участника отображается отдельное изображение. Одно изображение предназначено для левого глаза участника, а другое — для правого. Поскольку они рассчитаны с немного разных точек зрения, они выглядят как двойное изображение, которое не в фокусе. Участник надевает специальные очки, чтобы каждый глаз видел правильное изображение. Конечным результатом является то, что участник видит изображение, которое выглядит сфокусированным и трехмерным.Еще одна вещь, на которую стоит обратить внимание, — это яркие шарики на визоре участника и портативном контроллере. За ними наблюдают камеры системы слежения, чтобы определить местоположение и ориентацию головы и рук участника.

Фото предоставлено Аланом Б. Крейгом.

Введение и обзор

1.5.1 Графические процессоры

Изначально карты графических ускорителей, называемые графическими процессорами (Graphic Processing Units) и используемые для рендеринга визуализационных изображений, иногда использовались для выполнения других вычислений, которые можно было перефразировать с точки зрения API графического программирования. Работа с двумерным изображением — двумерным массивом пикселей — является очень параллельным процессом, поскольку большую часть времени наборы пикселей могут обновляться одновременно. Графическое оборудование и программное обеспечение строго параллельны данным. Графические процессоры сопоставляют графические алгоритмы с большим набором независимых потоков выполнения (потоков), выполняющих одни и те же операции в разных секторах целевого набора данных.

Важный шаг был сделан в 2007 году, когда корпорация NVIDIA осознала заинтересованность программистов в том, чтобы думать о графическом процессоре как о процессоре. Помимо значительного количества аппаратных усовершенствований, призванных сократить разрыв между графическими ускорителями и более стандартными вычислительными механизмами, были введены компилятор CUDA C/C++, библиотеки и программное обеспечение времени выполнения, что позволило программистам получить доступ к базовой модели параллельных вычислений данных и разрабатывать приложения, адаптированные к этому. модель. Графические API-интерфейсы больше не требовались для получения преимуществ от вычислительной среды GPU. С тех пор прогресс, достигнутый на аппаратном и программном уровнях, весьма значителен. Сегодня графические процессоры являются очень мощными вычислительными машинами, и отчасти их успех объясняется тем, что вычислительные ядра, будучи очень легкими, преодолевают стену рассеяния мощности, обеспечивая превосходное соотношение вычислительной мощности (флопс) на рассеиваемый ватт.

При обсуждении ускорителей GPU важна концепция гетерогенных вычислений, поскольку требования к конструкции вычислительного механизма GPU отличаются от требований, определяющих конструкцию ЦП. Дизайн ЦП основан на задержке: один поток выполнения максимально эффективен. Значительная часть реального состояния кремния в ЦП посвящена управляющей логике, необходимой для реализации параллелизма на уровне инструкций или для обеспечения низкоуровневых интерфейсов, необходимых для запуска операционной системы, или для кэширования памяти, необходимой для оптимизации доступа к памяти. Кроме того, процессоры имеют ограниченное количество ядер. Вместо этого графические процессоры зависят от пропускной способности. Сегодня у них есть десятки тысяч очень легких ядер, каждое из которых использует очень ограниченное реальное состояние кремния, потому что они не предназначены для запуска операционной системы. Действительно, ядра графического процессора выполняют ограниченное количество инструкций для вычислений и синхронизации с другими ядрами. Блоки кода, которые они выполняют, выгружаются из приложения, работающего на основной вычислительной платформе, к которой они подключены. Ядра графического процессора в абсолютном выражении значительно менее эффективны, чем ядра ЦП, но влияние на производительность связано с их важным количеством, упомянутым выше, которое обеспечивает огромную потенциальную пропускную способность. Производительность приложения сильно зависит от его способности использовать значительный объем потенциального параллелизма, предлагаемого графическим процессором. Интерес гетерогенных вычислений заключается в возможности выполнения частей приложения на стандартной платформе и переносе на GPU выполнения блоков кода, адаптированных к его архитектуре.

Фундаментальным фактором, ограничивающим производительность графических процессоров, опять же является стена памяти. Текущие графические процессоры не имеют прямого доступа к основной памяти, и целевой набор данных должен быть выгружен в графический процессор вместе с кодом для запуска. Затем выходные результаты должны быть возвращены мастер-коду, работающему на основной платформе. В этом контексте реальная достигнутая устойчивая производительность сильно зависит от профиля приложения. Превосходная эффективность достигается только в том случае, если значительный объем вычислений может быть выполнен с ограниченным объемом передачи данных в центральный процессор и из него. Тем не менее архитектуры графических процессоров развиваются очень быстро, и сегодня доступна возможность прямого обмена данными между различными графическими процессорами. В будущем ожидается существенное улучшение производительности доступа к основной памяти платформы.

Для программирования на GPU требуются специальные среды программирования (CUDA, OpenCL, OpenACL), способные создавать код и данные и выгружать их на GPU. Эти среды программирования значительно усовершенствовались за последние несколько лет, способствуя распространению и внедрению программирования на GPU. Важной недавней эволюцией являются недавние расширения OpenMP 4.0, включающие директивы для разгрузки данных и блоков кода на ускорители, которые будут рассмотрены в главе 10.

Код, выполняемый на GPU, должен соответствовать возможностям целевой архитектуры.Потоки, выполняемые на ядрах графического процессора, не являются потоками общего назначения, работающими на ЦП общего назначения, которые являются основным предметом этой книги.

Сегодня существует обширная литература по графическим процессорам. Хорошим справочником, обеспечивающим широкое освещение этой темы, является книга Д. Кирка и В. Хву «Программирование массивно-параллельных процессоров» [5]. Другими полезными ссылками являются «Руководство по CUDA» Н. Уилта [6] и «CUDA на примере» Дж. Сандерса и Э. Кандрота [7].

Координация многоагентной системы и ее применение в роботизированном футболе

4 КООРДИНАЦИЯ ДВИЖЕНИЯ МОБИЛЬНЫХ РОБОТОВ

Координация мобильных роботов осуществляется несколькими способами.

В этом документе упоминаются два из них, первое — это программное обеспечение для моделирования «3D Robot Soccer Simulator», а второе — программное обеспечение под названием «Visio». В программах «3D Robot Soccer Simulator» движения мобильных роботов координируются с помощью таблиц, подготовленных в программе Microsoft Excel. Что касается второго способа координации робота, то все через язык программирования C++, когда после этой координации подключается к программе «Visio», где выполняются выполняемые движения.

4.1 Программное обеспечение для моделирования мобильных роботов «3D Robot Soccer Simulator»

Это программа для моделирования игры роботов в футбол, разработанная группой студентов из Австралии (Университет Гриффита, Австралия). По категориям лиги МироСот была сыграна игра, которая в этой программе средней лиги (5 против 5), (Рисунок 5).

Рисунок 5 . Рабочее окно «3D Robot Soccer Simulator»

Были две команды, синяя и желтая, которые использовали стратегии, созданные ранее с помощью простого текста (Lingo) и языка программирования C++. Правила игры такие же, как и в реальной игре этой категории. Эта программа была очень важна, так как стратегия, прежде чем она применялась в реальной игре, была проверена.

Pentium III 600 МГц

256 МБ ОЗУ

Ускоритель 3D-графики TNT2 с 32 МБ

Разрешение экрана 800 × 600

16-битная звуковая карта

Майкрософт Windows 98

10 МБ свободного места на диске.

4.2 Робот танцует (Парад)

Чтобы реализовать танец роботов (парад), используется другой метод (стратегия). Этот метод танцующих роботов разработан в IHRT в Австрии (Han, 2003). Движения робота не общие, а скоординированные. Это означает, что когда один робот движется, другой робот ожидает приказа. Программирование может развиваться и у студентов, не владеющих знаниями C++. Это реализуется за счет использования листа в Microsoft Excel (рис. 6).

Рисунок 6. Лист Excel со стратегией парада

Есть пять различных функций:

ParadeWait — Робот ждет надлежащее время (время измеряется в миллисекундах).

Положение парада — робот перемещается в определенную позицию.

ParadeRotate — Робот поворачивается на определенный угол (в абсолютных координатах).

ParadeCircle — Робот движется по определенному кругу.

ParadeTimeRotate — Робот вращается в течение определенного времени.

Кроме того, приведены некоторые примеры программирования скоординированных движений робота. Запрограммированы движения трех роботов для короткого парада.

При таком программировании вначале должна быть написана первая функция (ParadeWait). Затем использовалась функция 2 (ParadePosition), в которой были заданы начальные координаты положения роботов.

Согласно координатам, указанным в предыдущей таблице, в программе «3D Robot Soccer Simulator» положение роботов следующее:

Рисунок 7. Начальные траектории роботов

4.3 Программа, обеспечивающая реальное перемещение роботов Visio

С помощью программы «Visio» можно настроить цвета роботов и мяча, модификацию картинки (просмотра), определение размера робота, определение размера игровой площадки, тестирование робота (скорость каждого колеса указана отдельно) и т. д.


< /p>

Графические ускорители, которые разрабатывались в то время, включали аппаратное ускорение для многих операций синтеза изображений, аппаратное панорамирование и масштабирование, сглаживание, альфа-каналы для композитинга, преобразование сканирования и т. д. Концепция добавления сопроцессора для обработки графики операции вне ЦП сыграли важную роль в распространении сложных графических изображений в массы. Первые буферы кадров и более поздние платы ускорителей, связанные с ними, теперь используются в графических картах современных компьютеров, таких как карты производства NVIDIA, 3Dlabs и ATI.

Как помогают графические платы

С первых дней существования персональных компьютеров большинство графических плат выполняли роль трансляторов, которые брали полностью развернутое изображение, созданное ЦП компьютера, и преобразовывали его в электрические импульсы, необходимые для работы монитора компьютера.Этот подход работает, но всю обработку изображения выполняет ЦП — вместе со всей обработкой звука, вводом данных игроком (для игр) и прерываниями для системы. Из-за всего, что должен делать компьютер для создания современных трехмерных игр и мультимедийных презентаций, даже самые быстрые современные процессоры легко перегружаются и не могут выполнять различные требования программного обеспечения в режиме реального времени. Именно здесь помогает графический сопроцессор: он разделяет работу с ЦП, чтобы общий мультимедийный опыт мог перемещаться с приемлемой скоростью.

Как мы видели, первым шагом в создании трехмерного цифрового изображения является создание каркасного мира треугольников и многоугольников. Затем каркасный мир трансформируется из трехмерного математического мира в набор паттернов, которые будут отображаться на двумерном экране. Преобразованное изображение затем покрывается поверхностями или визуализируется, освещается из некоторого количества источников и, наконец, преобразуется в узоры, отображаемые на экране монитора. Однако наиболее распространенные графические сопроцессоры в графических платах текущего поколения берут на себя задачу рендеринга от ЦП после того, как каркас создан и преобразован в двумерный набор полигонов. Графический сопроцессор, используемый в таких платах, как VooDoo3 и TNT2 Ultra, на этом этапе заменяет центральный процессор. Это важный шаг, но современные графические процессоры разгружают ЦП еще на более ранних этапах процесса.

Один из подходов к тому, чтобы взять на себя больше ответственности за ЦП, был реализован в GeForce 256 от NVIDIA (первый графический процессор или GPU). В дополнение к рендерингу, выполняемому платами более раннего поколения, GeForce 256 добавила преобразование каркасных моделей из трехмерного пространства в двухмерное пространство отображения, а также работу, необходимую для расчета освещения. Поскольку как преобразования, так и рендеринг требуют значительных математических вычислений с плавающей запятой (называемых «с плавающей запятой», поскольку десятичная точка может перемещаться по мере необходимости для обеспечения высокой точности), эти задачи требуют большой вычислительной нагрузки на ЦП. Поскольку графическому процессору не приходится справляться со многими задачами, ожидаемыми от ЦП, его можно спроектировать так, чтобы он выполнял эти математические задачи очень быстро.

Компания 3dfx представила свой графический процессор Voodoo в 1996 году. Voodoo5 взял на себя еще один набор задач от центрального процессора. 3dfx назвала эту технологию Т-буфером. Эта технология направлена ​​на улучшение процесса рендеринга, а не на добавление дополнительных задач процессору. Т-буфер был разработан для улучшения сглаживания за счет рендеринга до четырех копий одного и того же изображения, каждая из которых немного смещена относительно других, а затем их объединения для легкого размытия краев объектов, чтобы свести к минимуму «неровности», которые могут мешать работе компьютера. сгенерированные изображения. Тот же метод использовался для создания размытия в движении, размытых теней и размытия фокуса по глубине резкости. Все это создавало более плавные и реалистичные изображения, которых хотели аниматоры и графические дизайнеры. Цель дизайна Voodoo5 заключалась в том, чтобы выполнять полноэкранное сглаживание при сохранении высокой частоты кадров.

Техническое определение графического процессора — это «одночиповый процессор со встроенными механизмами преобразования, освещения, настройки/отсечения треугольников и рендеринга, способный обрабатывать не менее 10 миллионов полигонов в секунду». (NVIDIA)

Появление очень сложных графических процессоров значительно усложнило процесс создания изображений. Программирование для использования преимуществ аппаратного обеспечения требовало знания конкретных команд в каждой карте. Стандартизация стала первостепенной задачей при внедрении этих технологий. Одним из наиболее важных достижений в этой области стал графический API.

Интерфейс прикладного программирования (API) – это более старая компьютерная технология, упрощающая обмен сообщениями или данными между двумя или более различными программными приложениями. Другими словами, API был виртуальным интерфейсом между двумя взаимодействующими программными функциями, например, между текстовым процессором и электронной таблицей. Эта технология была расширена от простых вызовов подпрограмм до включения функций, обеспечивающих совместимость и возможность изменения системы в соответствии с требованием обмена данными между несколькими приложениями.

API – это набор правил для написания вызовов функций или подпрограмм, которые обращаются к функциям в библиотеке. Программы, использующие эти правила или функции в своих вызовах API, могут взаимодействовать с любыми другими программами, использующими этот API, независимо от их специфики. В случае с графическими API они, по сути, предоставляли доступ к аппаратному обеспечению рендеринга, встроенному в видеокарту. Ранние API включали X, Phigs, Phigs+ и GL. В 1992 году SGI представила OpenGL, который стал наиболее широко используемым API в отрасли. Другими подходами были Direct3D и подходы конкретных поставщиков, такие как Quartz для Macintosh и Windows API.

Фильм 15.2 Рассвет

Раздел 404 Закона Сарбейнса-Оксли (SOX) требует, чтобы все публичные компании установили внутренний контроль и процедуры.

Закон о защите конфиденциальности детей в Интернете от 1998 года (COPPA) – это федеральный закон, который налагает особые требования на операторов доменов .

План North American Electric Reliability Corporation по защите критически важной инфраструктуры (NERC CIP) представляет собой набор стандартов.

Взаимная аутентификация, также называемая двусторонней аутентификацией, представляет собой процесс или технологию, в которой оба объекта обмениваются данными .

Экранированная подсеть или брандмауэр с тройным подключением относится к сетевой архитектуре, в которой один брандмауэр используется с тремя сетями .

Метаморфное и полиморфное вредоносное ПО – это два типа вредоносных программ (вредоносных программ), код которых может изменяться по мере их распространения.

Медицинская транскрипция (МТ) – это ручная обработка голосовых сообщений, продиктованных врачами и другими медицинскими работниками.

Электронное отделение интенсивной терапии (eICU) — это форма или модель телемедицины, в которой используются самые современные технологии.

Защищенная медицинская информация (PHI), также называемая личной медицинской информацией, представляет собой демографическую информацию, медицинскую .

Снижение рисков – это стратегия подготовки к угрозам, с которыми сталкивается бизнес, и уменьшения их последствий.

Отказоустойчивая технология — это способность компьютерной системы, электронной системы или сети обеспечивать бесперебойное обслуживание.

Синхронная репликация — это процесс копирования данных по сети хранения, локальной или глобальной сети, поэтому .

API облачного хранилища — это интерфейс прикладного программирования, который соединяет локальное приложение с облачным хранилищем.

Интерфейс управления облачными данными (CDMI) – это международный стандарт, определяющий функциональный интерфейс, используемый приложениями.

Износ флэш-памяти NAND — это пробой оксидного слоя внутри транзисторов с плавающим затвором флэш-памяти NAND.

Читайте также: