Шаг 1.
Технология CUDA.
История развития GPU

Это раздел основывается на материале, изложенных в следующих источниках:
  1. Боресков А.В., Харламов А.А. Основы работы с технологией CUDA. – М.: ДМК Пресс, 2013. – 232с;
  2. Сандерс Дж., Кэндрот Э. Технология CUDA в примерах: введение в программирование графических процессов. Пер. с англ. Слинкина А.А., научный редактор Боресков А. В. – М.: ДМК Пресс, 2013. - 232с;
  3. Раздел этого сайта "Параллельные алгоритмы";
  4. Онлайн документация.

    Все примеры (если не оговорено особо) разрабатывались в среде NVIDIA Nsight Eclipse Edition Release 6.5 в операционной системе Linux Mint.


    На этом шаге мы рассмотрим истоки зарождения этой технологии.

    В конце 1980 - начале 1990-х годов рост популярности графических операционных систем Microsoft Windows создал рынок для процессоров нового типа. В начале 1990-х годов пользователи начали покупать ускорители двумерной графики для своих персональных компьютеров. Эти устройства позволяли аппаратно выполнять операции с растровыми изображениями, делая работу с графической операционной системой более комфортной.

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

    К середине 1990-х годов спрос на потребительские приложения с трехмерной графикой резко увеличился, что подготовило условия для весьма существенных направлений разработки. Во-первых, выход на рынок игр знаменовал начало гонки на создание все более и более реалистичных трехмерных сцен для игр на персональном компьютере. В то же время такие компании, как NVIDIA, ATI Teсhnologies, начали выпускать доступные по цене графические ускорители, способные заинтересовать широкую публику. Все это закрепило за 3D-графикой место на рынке перспективных технологий.

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

    Выпуск в 2001 году серии GeForce 3 представляет самый важный прорыв в технологии производства GPU (Graphics Processing Unit). Это была первая микросхема, в которой был реализован тогда еще новый стандарт Microsoft DirectX 8.0. Этот стандарт требовал, чтобы совместимое оборудование включало возможность программируемой обработки вершин и пикселей. Впервые разработчики получили средства для частичного контроля на тем, какие именно вычисления будут проводится на GPU.

    Однако, имели место жесткие ограничения на ресурсы. Существовали серьезные ограничения на то, как и в какое место в памяти можно записывать результаты. Наконец, в процессе разработки неизбежно случалось, что программа выдает неправильные результаты, не завершается или попросту подвешивает компьютер, и при этом никакого сколько-нибудь приемлемого способа отладки кода, исполняемого GPU, не существовало. Более того, всякий человек, который хотел использовать GPU для выполнения вычислений общего назначения, должен был выучить OpenGL или DirectX, так как никакого другого способа взаимодействия с GPU не было. Возникла задача облегчить разработку программного обеспечения без необходимости знаний OpenGL и DirectX. Компания NVIDIA решила эту проблему, предоставив свою технологию CUDA.

    На следующем шаге мы рассмотрим основные понятия этой технологии.




Содержание Следующий шаг