The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз PoCL 5.0 с независимой реализацией стандарта OpenCL

19.12.2023 23:24

Опубликован релиз проекта PoCL 5.0 (Portable Computing Language OpenCL), развивающего реализацию стандарта OpenCL, независимую от производителей графических ускорителей и позволяющую использовать различные бэкенды для выполнения OpenCL-ядер на разных типах графических и центральных процессоров. Код проекта распространяется под лицензией MIT. Поддерживается работа на платформах X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU и различных специализированных ASIP (Application-Specific Instruction-set Processor) и TTA-процессорах (Transport Triggered Architecture) c архитектурой VLIW.

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

В новой версии:

  • Реализован новый бэкенд "Remote", предназначенный для организации распределённых вычислений через вынос обработки команд OpenCL на другие хосты в сети, на которых запущен фоновый процесс pocld.
  • В драйвере CUDA реализованы дополнительные возможности и расширения OpenCL 3.0, такие как атомарные операции, переменные с ограниченной областью видимости, подгруппы intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier и sub_group_ballot.
  • Улучшена поддержка CPU на базе архитектуры RISC-V. Работа PoCL протестирована на плате Starfive VisionFive 2 с загруженным окружением Ubuntu 23.10 с LLVM 17 и GCC 13.2.
  • Реализовано расширение cl_ext_float_atomics с поддержкой FP32 и FP64.
  • Реализация расширения cl_khr_command_buffer обновлена до версии 0.9.4.
  • Предложен экспериментальный бэкенд AlmaIF для FPGA.
  • Удалена незавершённая поддержка промежуточного представления шейдеров SPIR 1.x/2.0. В качестве рекомендованного промежуточного языка шейдеров заявлен SPIR-V.
  • Добавлена поддержка Clang/LLVM 17.0. Объявлена устаревшей поддержка Clang/LLVM 10-13.


  1. Главная ссылка к новости (https://github.com/pocl/pocl/r...)
  2. OpenNews: Релиз PoCL 4.0 с независимой реализацией стандарта OpenCL
  3. OpenNews: Опубликованы финальные спецификации OpenCL 3.0
  4. OpenNews: Vortex - открытый GPGPU на базе архитектуры RISC-V, совместимый с OpenCL
  5. OpenNews: Открытый драйвер Rusticl сертифицирован на совместимость с OpenCL 3.0
  6. OpenNews: Intel открыл код реализации OpenCL, выполняемой на CPU
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/60316-pocl
Ключевые слова: pocl, opencl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (11) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноньимъ (ok), 00:22, 20/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это очень круто всё.

    Но на практике, нужно операции над векторами и тензорами проводить.

    И записывать их в человеческом виде...

    Развелось этих трансляторов шейдеров в шейдеры целый зоопарк.

     
     
  • 2.9, anonymous (??), 10:23, 21/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    это да, всегда бесило. Всякие куды опенсл вместо того чтобы а GCC оптимизатор совершенствовать и код для видях выдавать. В реальности это результат конкуренции производителей железа. Тянут каждый на себя.
     

  • 1.5, Аноним (5), 08:36, 20/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А зачем он нужен?

    Зачем нужен "портативный" opencl? Сам смысл же opencl в том, чтобы быть "портативный API, железо-специфичная реализация", то есть, очень быстрая.

     
     
  • 2.7, inferrna (ok), 10:14, 20/12/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Оно предоставляет OpenCL обёртку для систем, которые могут в параллельное выполнение кода, но вендор не сделал для них OpenCL. Плюс может задёйствовать одновременно несколько бэкендов. Например, есть у тебя видимокарта от AMD и какой-нибудь ускоритель нейронок от невидии - вот оба их и задействует как одно программное устройство.
     
     
  • 3.14, Аноньимъ (ok), 14:12, 21/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > вот оба их и задействует как одно программное устройство.

    Вы уверены? Потому что оно не про это вообще. Это как сказать - сишка задействует 8бит arm и amd64 цп как одно программное устройство - нет. Вообще нет.

     
  • 2.10, Аноним (10), 12:02, 21/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >Зачем нужен "портативный" opencl?

    Чтобы не было палева.

     
  • 2.12, Аноним (12), 12:32, 21/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Так это и есть портируемая реализация стандарта OpenCL. У стандарта может быть не одна реализация.
     

  • 1.8, Аноним (8), 11:30, 20/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Реализован новый бэкенд "Remote", предназначенный для организации распределённых вычислений через вынос обработки команд OpenCL на другие хосты в сети, на которых запущен фоновый процесс pocld.

    То есть в принципе можно поставить виндовые драйвера для видеокарты с работающим OpenCL в виртуальную машину и проксировать на них?

     
     
  • 2.11, Аноним (10), 12:04, 21/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Можно выставить голой попой наружу pocld и на нём жечь электричество.
     
     
  • 3.13, Аноним (12), 12:35, 21/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Устали от разнообразия встроенных майнеров и решили сделать для них стандарт с многоговорящим названием.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру