- Что такое искусственный интеллект?
- Нейросетевой интеллект миф или реальность?
- Защита доступа к информации
- Жизнь в «облаке»
- Облачные» вычисления
- Анонимайзер как средство защиты электронных денег
- Создание блога компании
- Вирусы на сайтах
- Бескрайние просторы Интернета. Электронная почта.
- Введение в OpenCL
- Информационная безопасность малой организации
- Системы видеоконференции
Кретов Николай Николаевич: Введение в OpenCL
Разработку возглавляет небезызвестная Khronos Group. Та самая, что продвигает OpenGl и OpenAL. Более того, OpenGL и OpenCL по сути из одной программной инфраструктуры и очень тесно могут взаимодействовать.
Суть идеи заключается в том, что нам совершенно без разницы - процессор перед нами или видеокарта. Мы абстрагируемся от платформы как таковой и считаем, что у нас есть N вычислительных устройств. OpenCL как стандарт описывает правила вычислений на этих устройствах. Таким образом мы получаем единый код, который будет абсолютно переносим на любую платформу. AMD или Intel у вас процессор, nVidia или ATI видеокарта, или Blade-сервер с Cell-ядрами - совершенно не важно. Приложение будет работать везде, где устройства поддерживают стандарт OpenCL.
Стоит отметить, что про параллельные вычисления мы говорим про SIMD-инструкции.
OpenCL - это расширение языка C. У нас есть хост-приложение и OpenCL-приложение. Хост подготавливает набор доступных устройств к использованию и передает задачу на выполнение OpenCL-частью. После чего OpenCL отрабатывает и возвращает результат на хост.
OpenCL-код хранится в файлах с расширением *.cl, компилируется в рантайме под заданную архитектуру. За счет этого достигается переносимость приложения.
Apple пошла дальше, выпустив поддержку OpenCL на уровне ядра в своей операционной системе Snow Leopard, добившись тем самым существенного увеличения производительности.
Для чего нужен?
OpenCL хорошо кушает SIMD-алгоритмы. Он для этого и создан. А это различная криптография, различные post-processing эффекты, обработка звука и различных математических моделей, кодирование видео.
Для разработчиков
На данный момент доступны версии nVidia OpenCL SDK, AMD OpenCL SDK. Вы всегда можете их скачать с официальных сайтов данных компаний.
В дальнейших статьях я расскажу как использовать данную технологию на практике в ваших собственных приложениях.