графические процессоры — GPU

2 месяца ago admin 0
html> html>

Сообщество разработчиков графических устройств и компьютерных игр имело несколько иные цели, чем сообщество разработчиков микропроцессоров, и выработало свой собственный стиль обработки данных и свою собственную терминологию. Как только графические процессоры стали мощнее, их начали называть графическими прои/ессорными устройствами (Graphics Processing Unit, GPlf), чтобы отличать их от центральных процессорных устройств, CPU. Рассмотрим некоторые ключевые характеристики, благодаря которым графические процессоры — GPU отличаются от центральных процессоров — CPU:

♦ GPU являются ускорителями, дополняющими CPU, поэтому им не нужно уметь выполнять все задачи, присущие CPU. Эта роль позволяет им посвятить все свои ресурсы [-рафике. Для GPU вполне нормально выполнять некоторые задачи недостаточно хорошо или вообще не выполнять, при условии, что в системе, где есть и CPU, и GPU. CPU может при необходимости эти задачи выполнить. Таким образом, комбинация CPU-GPU является одним из примеров гетерогенной мультипроцессорной обработки, где не все процессоры являются идентичными. (Еще одним примером может послужить архитектура IBM Cell, рассматриваемая в разделе 7.11, которая также была разработана для ускорения 2D- и ЗП-графикн.)

♦ Интерфейсами программирования GPU являются высокоуровневые интерфейсы прикладного программирования (application programming interface, API), такие как OpenGL и разработанный компанией Microsoft DirectX, в совокупности с высокоуровневыми языками графического затенения, или шейдинга (shading), такими как разработанный компанией NVIDIA язык С для графики (Cg) и разработанный компанией Microsoft язык высокого уровня для программирования шейдеров High Level Shader language (HLSL). Компиляторы языков предназначены не для машинных инструкций, а для промежуточных языков, отвечающих промышленным стандартам. Программный драйвер GPU генерирует оптимизированные машинные инструкции, подходящие к конкретному GPU. Хотя эти API и языки развиваются довольно быстро, охватывая все новые GPU-ресурсы, допускаемые законом Мура, отсутствие необходимости соблюдения обратной совместимости по двоичным инструкциям позволяет GPU-разработчикам исследовать новые архитектуры, не испытывая опасения за постоянные неудачи с реализацией. Такая среда способствует более быстрому появлению нововведений в GPU, чем в CPU.

♦ Обработка графики предполагает рисование точек (вершин) трехмерных геометрических примитивов, таких как линии и треугольники, и затенение (shading) или прорисовку, или рендеринг (rendering), пиксельных фрагментов геометрических примитивов. В видеоиграх, к примеру, рисуется в 20-30 раз больше пикселов, чем вершин.

♦ Каждая точка (вершина) может быть нарисована независимо, и прорисовка каждого пиксельного фрагмента также может быть произведена независимо. Чтобы быстро прорисовать миллионы пикселов на кадр, создается GPU, способный параллельно выполнять множество потоков от программ, рисующих вершины и пиксельные затенения.

К типам графических данных относятся точки (вершины), состоящие из координат (х, у, z, w), и пикселы, состоящие из цветов (красный — red, зеленый — green, синий — blue, альфа alpha). Графические процессоры представляют каждый компонент точки в виде 32-разрядного числа с плавающей точкой. Каждый из четырех компонентов пикселов сначала был 8-разрядным беззнаковым целым числом, но новые графические процессоры теперь представляют каждый компонент в виде числа с плавающей точкой одинарной точности в диапазоне между 0,0 и 1,0.

Рабочий набор может иметь объем в сотни мегабайт, и он не отличается такой же локальностью, связанной со временем, которая присуща данным в обычных приложениях. Более того, графические задачи отличаются большим уровнем параллелизма данных.

Комментарии (0)

Нет комментариев. Ваш будет первым!

[ comments ]


Source: mintlinux.ru