PoCL 1.6, автономная реализация стандарта OpenCL

Запуск новая версия проекта ПОКЛ 1.6 (Portable Computing Language OpenCL), из основных моментов версии 1.6 - это поддержка Clang / LLVM 11.0, а также проделанная работа по улучшению производительности и функций CUDA, улучшенная совместимость с PowerPC и улучшенное использование отладки OpenCL.

Тем, кто не знаком с PoCL, следует знать, что это такое. портативная реализация с открытым исходным кодом (под лицензией MIT) стандарта OpenCL (1.2 с поддержкой некоторых функций 2.0). Помимо того, что это реализация OpenCL с открытым исходным кодом для нескольких устройств (действительно разнородные) легко переносимые, основная цель этого проекта - улучшить функциональную совместимость множества OpenCL-совместимых устройств путем их интеграции в единую централизованно управляемую платформу.

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

Компилятор ядра OpenCL основан на LLVM, а Clang используется в качестве интерфейса для OpenCL C. Для обеспечения надлежащей переносимости и производительности компилятор ядра OpenCL может генерировать комбинированные функции, которые могут использовать различные аппаратные ресурсы для распараллеливания выполнения кода, такие как VLIW, суперскаляр. , SIMD, SIMT, многоядерные и многопоточные. Есть поддержка драйверов ICD (Installable Client Driver). Существуют бэкенды для обеспечения работы через CPU, ASIP (TCE / TTA), GPU на основе архитектуры HSA и NVIDIA GPU (CUDA).

Основные новые возможности PoCL 1.6

Эта новая версия PoCL 1.6 подчеркивает возможность скомпилировать эту реализацию с драйверами устройств, включенными во время компиляции, а также доступность устройства будет проверяться при запуске (ранее системы, на которых построен и запускается PoCL, они должны были иметь такая же поддержка контроллера). Реализована возможность использования диспетчера пакетов conda для распространения двоичных пакетов PoCL с поддержкой CUDA для систем Linux-x86_64 и Linux-ppc64le.

Еще одно важное изменение - это поддержка LLVM 11 наряду с расширенными возможностями отладки кода OpenCL при использовании контроллера ЦП.

Кроме того, подчеркивается, что была проведена оптимизация производительности бэкэнда CUDA, что позволило значительно ускорить операции, связанные с использованием локальной памяти (FFT, GEMM).

Тесты с использованием тестов SHOC (которые сейчас постоянно тестируются, показывают, что эти оптимизации привели к гораздо более высокой производительности, особенно для тестов с использованием локальной памяти, таких как FFT и GEMM, по сравнению с предыдущим эталоном. PoCL теперь часто достигает конкурентоспособной производительности с помощью проприетарного OpenCL от Nvidia. Водитель). Мы приветствуем вклады для выявления и устранения коренных причин остающихся проблемных областей. Мы также приветствуем вклад в улучшение охвата функций стандартов OpenCL 1.2 / 3.0.

  • Производительность PoCL во многих тестах теперь близка к проприетарному драйверу OpenCL NVIDIA.
  • Добавлен параметр компиляции HARDENING_ENABLE, позволяющий параметрам компилятора создавать более безопасный libpocl.so за счет снижения производительности.
  • Возвращена поддержка систем PowerPC 8/9, для которых уровень реализации OpenCL при использовании устройств pthread и CUDA соответствует уровню CUDA в системах x86_64.
  • Изменен ABI для ядер CUDA, использующих __ локальные блоки. После обновления пользователям необходимо очистить кеш pocl.
  • Поддержка параметра сборки SINGLE_LLVM_LIB была удалена, вместо использования STATIC_LLVM и llvm-config для определения библиотек для привязки.

Наконец, если вы хотите узнать больше об этой новой версии, вы можете проверить подробности в исходном объявлении. 

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

Код проекта распространяется по лицензии MIT и работа поддерживается на платформах X86_64, MIPS32, ARM v7, AMD HSA APU и различных специализированных процессорах TTA с архитектурой VLIW.


Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.