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

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

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

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

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

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

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

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

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

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

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

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

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

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

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

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

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

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

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

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

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

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

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

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

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

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

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

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

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

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

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

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

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

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

12.03.2018г.
Просмотров: 4212
Комментарии: 0
Глубокое обучение с точки зрения практика

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

12.03.2018г.
Просмотров: 3004
Комментарии: 0
Изучаем pandas

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

12.03.2018г.
Просмотров: 3806
Комментарии: 0
Программирование на языке Rust (Цветное издание)

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

19.12.2017г.
Просмотров: 3818
Комментарии: 0
Глубокое обучение

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

19.12.2017г.
Просмотров: 6314
Комментарии: 0
Анализ социальных медиа на Python

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

19.12.2017г.
Просмотров: 3166
Комментарии: 0
Основы блокчейна

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

19.12.2017г.
Просмотров: 3459
Комментарии: 0
Java 9. Полный обзор нововведений

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

16.02.2017г.
Просмотров: 7275
Комментарии: 0
Опоздавших не бывает, или книга о стеке

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

17.05.2016г.
Просмотров: 10644
Комментарии: 0
Теория вычислений для программистов

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

30.03.2015г.
Просмотров: 12363
Комментарии: 0
От математики к обобщенному программированию

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

18.02.2014г.
Просмотров: 13998
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

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

13.02.2014г.
Просмотров: 9122
Комментарии: 0
Читайте, размышляйте, действуйте

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

12.02.2014г.
Просмотров: 7077
Комментарии: 0
Рисуем наши мысли

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

10.02.2014г.
Просмотров: 5386
Комментарии: 3
Страна в цифрах

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

18.12.2013г.
Просмотров: 4613
Комментарии: 0
Большие данные меняют нашу жизнь

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

18.12.2013г.
Просмотров: 3426
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

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

04.12.2013г.
Просмотров: 3153
Комментарии: 0
Паутина в облаках

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

03.12.2013г.
Просмотров: 3399
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

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

02.12.2013г.
Просмотров: 3024
Комментарии: 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-45
E-mail: sa@samag.ru