>

Пакеты Conan>

opencl-headers

opencl-headers

Официальный набор заголовочных файлов C для OpenCL (Open Computing Language), поддерживаемый Khronos Group. Эти заголовки определяют API для гетерогенных вычислений, позволяя программам на C взаимодействовать с вычислительными устройствами, такими как GPU, CPU и другими ускорителями. Библиотека представляет собой "unified headers", которые поддерживают все версии OpenCL в одном наборе файлов, что упрощает разработку и поддержку кода.

Особенности

  • унифицированные заголовки (unified headers), работающие со всеми версиями OpenCL;
  • поддержка C и C++ (через отдельный пакет opencl-clhpp-headers);
  • возможность выбора целевой версии OpenCL через макрос CL_TARGET_OPENCL_VERSION;
  • минимальные зависимости, простая интеграция в проекты;
  • широкая поддержка в пакетных менеджерах (Debian, NetBSD, openSUSE, FreeBSD и др.).

Основные компоненты

OpenCL-Headers предоставляет набор заголовочных файлов, которые определяют типы, константы и функции OpenCL API (подробнее с документацией можно ознакомиться здесь).

Структура заголовочных файлов

Репозиторий содержит унифицированное дерево заголовков, расположенное в директории CL/. Основные файлы включают:

  • cl.h — основной заголовок OpenCL API;
  • cl_platform.h — платформозависимые определения и типы;
  • cl_version.h — определения версий OpenCL;
  • cl_ext.h и cl_ext_intel.h — расширения OpenCL;
  • cl_gl.h, cl_egl.h, cl_d3d11.h — заголовки для взаимодействия с графическими API;
  • opencl.h — удобный заголовок, включающий все основные определения.

Управление версиями OpenCL

Унифицированные заголовки позволяют разработчикам выбирать целевую версию OpenCL с помощью макроса препроцессора CL_TARGET_OPENCL_VERSION. Значение задаётся трёхзначным десятичным числом, представляющим версию API.

Пример использования:

#define CL_TARGET_OPENCL_VERSION 120  // Использовать OpenCL 1.2 API
#include <CL/opencl.h>

Поддержка экосистемы

OpenCL-Headers является фундаментальным компонентом для сборки других частей экосистемы OpenCL:

  • opencl-icd-loader — загрузчик установленных реализаций OpenCL (требует заголовки для сборки);
  • opencl-clhpp-headers — заголовки C++ для OpenCL, предоставляющие более удобный интерфейс;
  • Mesa — реализация OpenCL (RustiCL, Clover) использует заголовки для совместимости.

Установка и распространение

Заголовки OpenCL распространяются через пакетные менеджеры большинства операционных систем:

  • Debian/Ubuntu: opencl-c-headers (C заголовки), opencl-headers (метапакет);
  • NetBSD: parallel/opencl-headers;
  • openSUSE: opencl-headers;
  • FreeBSD: devel/opencl;
  • Buildroot: пакет opencl-headers.

Версии обычно следуют тегам официального репозитория KhronosGroup.

Интеграция с другими языками

Помимо C и C++, заголовки OpenCL используются для создания привязок к другим языкам программирования:

  • Python: через модули pyopencl или clmath;
  • Java: через JOCL (Java bindings for OpenCL);
  • Rust: через крейты ocl или rust-opencl.

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "opencl-headers/2023.12.14@aurora",
    )    

Процесс локальной сборки описан в документации.

opencl-headers

C language headers for the OpenCL API
Лицензия
Apache-2.0
Версия
Домашняя страница
Скачать
package
53.04 Kb
MD5: 6495a7de4121b99d3cc4a263c0287672
Updated: 03.09.2025, 15:24:34
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.