Об этом было объявлено несколько дней назад выпуск новой версии PoCL 5.0 и среди основных новых функций, представленных в новой версии выделяется новый бэкэнд позволяющий загружать команды OpenCL по сети на один или несколько серверов, а также освещая улучшения для CUDA, улучшения поддержки и многое другое.
Тем, кто не знаком с PoCL, следует знать, что это такое. портативная реализация с открытым исходным кодом (под лицензией MIT) стандарта OpenC,Помимо того, что это реализация OpenCL с открытым исходным кодом для нескольких устройств. легко переносится. Основная цель этого проекта — улучшить взаимодействие множества OpenCL-совместимых устройств путем интеграции их в единую, централизованно управляемую платформу.
Кроме того, одной из ключевых долгосрочных целей является повышение производительности и переносимости программ OpenCL на типы устройств, использующих методы выполнения и компиляции.
Основные новые возможности PoCL 5.0
В этой новой версии PoCL 5.0 представлена, как упоминалось вначале, самая важная новинка. это новый бэкэнд «PoCL-Remote» который предназначен загружать команды OpenCL по сети на один или несколько серверов которые запускают демон pcld, включен в PoCL. Включив поддержку OpenCL в других сетевых системах, PoCL-Remote позволяет вам беспрепятственно использовать OpenCL на этих удаленных хостах.
Упоминается, что в отличие от решений Существующие решения сетевой загрузки для OpenCL, PoCL-Remote использует инфраструктуру управления памятью от PoCL выслеживать объектов памяти и просто скопируйте их когда это действительно необходимо. Когда необходима миграция объектов памяти, автоматически выбирается наиболее эффективный путь переноса.
Еще одна новинка который представляет новую версию PoCL 5.0, являются добавлены новые возможности драйвера NVIDIA CUDA обеспечить частичную поддержку OpenCL 3.0. Драйвер CUDA расширена новыми функциями для поддержки дополнительных функций OpenCL 3.0, нескольких важных расширений для оптимизации выполнения в ChipStar, а также добавления атомарных операций OpenCL 2.x/3.x.
Улучшения в поддержке включают поддержку SVM Coarse-Handling, когда устройство CUDA совместимо, а также введение начальной поддержки подгрупп: intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier, sub_group_ballot.
Кроме того, в этой версии Улучшенная поддержка процессоров RISC-V.. PoCL был протестировано на Starfive VisionFive 2 используя предустановленный образ Ubuntu 23.10. С LLVM 17 и GCC 13.2 было пройдено 98% тестов (только 4 теста из 253 провалились).
Из других изменений которые выделяются из этой новой версии:
- В контроллер ЦП было внесено множество дополнительных улучшений, обусловленных, в первую очередь, потребностями ChipStar.
- Реализация cl_ext_float_atomics с поддержкой FP32 и FP64.
- Обновлена реализация cl_khr_command_buffer до версии 0.9.4.
Экспериментальный бэкэнд FPGA, интегрированный в библиотеку ядра. - Был предложен экспериментальный бэкэнд AlmaIF для FPGA, который позволяет прозрачно реконфигурировать FPGA от разных производителей с использованием базы данных битового потока. Эта работа является частью текущих исследований и может считаться значительным достижением. База данных с битовыми потоками создается проектом AFOCL.
- Удалена неполная поддержка промежуточного рендеринга из шейдеров SPIR 1.x/2.0. SPIR-V объявлен рекомендуемым промежуточным языком шейдеров.
- Включите поддержку FP16 и общего адресного пространства, используя запись SPIR-V.
- Добавлена поддержка Clang/LLVM 17.0.
- Реализация cl_ext_float_atomics (на FP32+FP64) при использовании LLVM 17.
- Поддержка Clang/LLVM 10-13 устарела.
Наконец, следует отметить, что PoCL-Remote считается готовым к тестированию вне лаборатории, поскольку он официально интегрирован в новую версию 5.0. Если вам интересно узнать об этом больше, вы можете обратиться к подробности по следующей ссылке.
Для заинтересован в проекте, Следует знать, что код проекта распространяется по лицензии MIT и работа поддерживается на платформах X86_64, MIPS32, ARM v7, AMD HSA APU и различных специализированных процессорах TTA с архитектурой VLIW.