Компьютерная графика на основе OpenGL. Часть 5. Использование OpenCL::Журнал СА 12.2013
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Архив номеров
Контакты
   

  Опросы
  Статьи

Электронный документооборот  

5 способов повысить безопасность электронной подписи

Область применения технологий электронной подписи с каждым годом расширяется. Все больше задач

 Читать далее...

Рынок труда  

Системные администраторы по-прежнему востребованы и незаменимы

Системные администраторы, практически, есть везде. Порой их не видно и не слышно,

 Читать далее...

Учебные центры  

Карьерные мечты нужно воплощать! А мы поможем

Школа Bell Integrator открывает свои двери для всех, кто хочет освоить перспективную

 Читать далее...

Гость номера  

Дмитрий Галов: «Нельзя сказать, что люди становятся доверчивее, скорее эволюционирует ландшафт киберугроз»

Использование мобильных устройств растет. А вместе с ними быстро растет количество мобильных

 Читать далее...

Прошу слова  

Твердая рука в бархатной перчатке: принципы soft skills

Лауреат Нобелевской премии, специалист по рынку труда, профессор Лондонской школы экономики Кристофер

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 9886
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 8100
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 8200
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5195
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 5873
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

Друзья сайта  

 Компьютерная графика на основе OpenGL. Часть 5. Использование OpenCL

Архив номеров / 2013 / Выпуск №12 (133) / Компьютерная графика на основе OpenGL. Часть 5. Использование OpenCL

Рубрика: Разработка /  Графика

Алексей Верижников АЛЕКСЕЙ ВЕРИЖНИКОВ, системный архитектор в филиале ЗАО «Корпорация ГРИНН», г. Орел, туристический многофункциональный комплекс «ГРИНН», mail_aw@mail.ru

Компьютерная графика на основе OpenGL
Часть 5. Использование OpenCL

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

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

OpenGL как система, использующая конечный автомат для обработки задач, по своей сути, является линейной. Технология OpenCL создана для работы с параллельными вычислениями. Рассмотрим некоторые аспекты многозадачности и возникающие при этом проблемы, а также их преимущество перед последовательно выполняемыми процессами.

Что такое OpenCL?

Название OpenCL похоже на OpenGL, отличается лишь одной буквой. OpenCL можно расшифровать как Open Computing Language, что переводится на русский как «Открытый язык вычислений». Похожая технология разрабатывалась NVIDIA для своих продуктов, и назвали ее CUDA. Чтобы заново не переделывать уже имеющуюся базу, была сделана надстройка для CUDA для возможности обработки команд OpenCL. То есть программы, написанные на OpenCL, в процессе компиляции переводятся в код для CUDA и затем выполняются. Возникает резонный вопрос: зачем это нужно – CUDA, OpenCL?

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

Как же ускоряется работа программы? Для этого посмотрим на структурную схему видеокарты (см. рис. 1). Помимо GPU, там имеются конвейерные процессорные элементы, которые отвечают за обработку пиксельных и вершинных шейдеров. Считается, что чем больше этих процессорных элементов, тем мощнее видеокарта. Конечно же, первичные и самые важные параметры – это частоты GPU и работы памяти, но уже сейчас принимаются во внимание частота работы шейдерного конвейера и количество процессорных элементов.

Почему я называю их именно «процессорные элементы», а не «процессоры»? Дело в том, что набор команд каждого процессорного элемента не очень большой и гораздо меньше набора команд ЦПУ. В последнее время получили распространение унифицированные шейдерные конвейеры, у которых набор команд одинаков и позволяет проводить операции как с пиксельными, так и с вершинными программами или шейдерами. Ускорение достигается за счет параллельного выполнения определенной простой команды. То есть за такт времени выполняется сразу несколько команд, по количеству теоретически равные числу процессорных элементов. OpenCL, по сути, является языком для этих команд.

На данный момент все новые ресурсоемкие системы (например, программы для моделирования химических процессов, системы расчета погодных явлений, перекодировщики видео и т.д.) основаны на технологии CUDA от NVIDIA. Но OpenCL развивается быстрыми темпами. Уже готова спецификация OpenCL 2.0, но нет пока в продаже устройств, которые ее поддерживают.

Когда и зачем это придумали?

Сейчас OpenCL и CUDA – новые развивающиеся технологии, но, как часто бывает, «новое – это хорошо забытое старое». Многопроцессорные параллельные вычисления были придуманы на заре процессорной эпохи.

В 1975 году один из руководителей компании CDC Seymour Cray (Сеймур Крей), организовавший собственную фирму, известную под названием Cray-1, один из первых продемонстрировал конвейерный компьютер с быстродействием, превосходящим 150 млн операций в секунду или 150 МГц.

У него было 12 конвейеров с множеством регистров и процессорных элементов по обработке команд. Так как время на такт обработки команды составляло 12,5 нс (80 МГц) и более (ну не могли еще тогда делать быстрее), то, чтобы быстро выполнять необходимые задачи, их надо было распараллеливать. Теоретически суммарная частота работы должна быть 12 х 80 = 960 МГц.

К заслуге инженеров и программистов, они смогли получить среднюю частоту работы около 150 МГц. Читатель может сказать, что сейчас считается уже мощность в гигагерцах и калькулятор работает быстрее. Это, конечно же, так. И тем не менее.

Теоретически увеличивать частоту работы можно до уровней, сравнимых с уровнями частот колебаний световой волны. Сегодня, по моему мнению, транзисторная полупроводниковая технология дошла до отметки 7 ГГц (частота обработки команд) и далее сможет расти уже с чрезвычайно большими усилиями.

В скором будущем ожидается новая технология, которая должна значительно увеличивать частоты выполнения команд. А уже сейчас сложность задач только увеличивается как по ресурсоемкости, так и по мощности необходимого оборудования для их выполнения. Соответственно если нельзя сделать быстрее один процессор, то приходится распараллеливать задачи на несколько процессоров с определенной конечной частотой.

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

Рисунок 1. Структурная схема видеокарты

Рисунок 1. Структурная схема видеокарты

Описание технологии OpenCL

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

  • Первая – код для инициализации устройства, на котором будут производиться вычисления, также создание и выделение областей обрабатываемой памяти, отправка в память GPU и получения итоговых результатов.
  • Вторая – программный код, который будет выполняться на GPU.

Статью целиком читайте в журнале «Системный администратор», №12 за 2013 г. на страницах 53-57.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru