The OpenNET Project / Index page

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

Выпуск PoCL 1.0, независимой реализации стандарта OpenCL

19.12.2017 17:27

Доступен релиз проекта PoCL 1.0 (Portable Computing Language OpenCL), развивающего реализацию стандарта OpenCL, независимую от производителей графических ускорителей и позволяющую использовать различные бэкенды для выполнения OpenCL-ядер на разных типах графических и центральных процессоров. Код проекта распространяется под лицензией MIT. Поддерживается работа на платформах X86_64, MIPS32, ARM v7, AMD HSA APUs и различных специализированных 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 (CUDA).

В новой версии добавлена экспериментальная поддержка GPU NVIDIA через новый бэкенд CUDA. В бэкенде, использующем CPU, полностью реализована спецификация OpenCL 1.2, а также поддержка отдельных элементов стандарта OpenCL 2.0. Проведена оптимизация производительности на многоядерных системах при выполнении большого числа мелких ядер OpenCL. Реализована возможность использования выпусков LLVM/Clang 4.0 и 5.0. Обновлён бинарный формат, в котором нарушена совместимость с прошлыми выпусками. Улучшена поддержка инструкций AVX512.

  1. Главная ссылка к новости (http://portablecl.org/pocl-1.0...)
  2. OpenNews: Доступны спецификации OpenCL 2.0 и OpenVX 1.0. AMD развивает альтернативу OpenGL
  3. OpenNews: В Fedora 21 предложено обеспечить "из коробки" поддержку OpenCL на основе открытых технологий
  4. OpenNews: В LibreOffice добавлена поддержка ускорения вычислений с использованием OpenCL
  5. OpenNews: Выход спецификаций OpenGL 4.4 и OpenCL 2.0
  6. OpenNews: Драйвер RadeonSI достиг уровня выполнения простых OpenCL программ
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/47766-pocl
Ключевые слова: pocl, opencl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (32) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 18:49, 19/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А Радеоны планируют?
     
     
  • 2.7, Вся правда (?), 19:43, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Только для nvидеокарт.
     
  • 2.8, Аноним (-), 19:48, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Поверх OpenCL?
     

  • 1.11, letsmac (ok), 22:04, 19/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Пролистал сайт проекта - но никак не нашел ЗАЧЕМ они это делают :-) И как привязанный к бинарным драйверам проект может быть portable?
     
     
  • 2.12, Аноним (-), 22:30, 19/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пока они это писали, слово Portable приобрело другой смысл?
     
  • 2.16, Ordu (ok), 01:30, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > как привязанный к бинарным драйверам проект может быть portable?

    Он не привязан к бинарным драйверам. Он вполне может выполняться на CPU без драйверов вообще. Поэтому и portable.

    > не нашел ЗАЧЕМ они это делают

    Мне это тоже не совсем понятно. Они на сайте, что одна из целей -- экспериментирование с самой идеей подобных вычислений, но, мне кажется, эта цель не объясняет того количества усилий, которое вложено в PoCL. Может быть фишка в том, что имея софтварную реализацию, можно затем использовать любое доступное устройство, для того, чтобы её ускорить? Взять например видяшку, которая не может в OpenCL, но может в OpenGL, и тогда можно использовать шейдеры для того, чтобы часть работы всё же переложить с CPU на GPU?
    Сложно сказать, короче. Я думаю, подобные вопросы надо задавать авторам.

     
     
  • 3.17, EHLO (?), 01:44, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >имея софтварную реализацию, можно затем использовать любое доступное устройство, для того, чтобы её ускорить

    Намекаешь на майнинг на ботнетах?

     
  • 3.18, letsmac (ok), 01:44, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >>Он вполне может выполняться на CPU без драйверов вообще. Поэтому и portable.

    На VLIW ? Без адаптации компилятора под конкретный проц ничего не выйдет. Так умер itanium, так умер Cell, только HP с его спецпроцами и Эльбрус немного дышат. Mac весь в OpenCL, но по прежнему это не помогает против винды с Direct-ами. Они в разы быстрее.

     
     
  • 4.21, pavlinux (ok), 02:02, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Так умер itanium, так умер Cell

    Давно Cell стал VLIW?  

    > Mac весь в OpenCL, но по прежнему это не помогает против винды с Direct-ами. Они в разы быстрее.

    Народ тупеет. Раньше каждый программер хоть на Васике, хоть на Лиспе с Фортраном и Адой знал ассемблер.
    Сейчас они даже не осилят банальные сдвиги: x = 3|3 >> 3|3 << 3|3 >> 3|3; , причём только неделю буду учить приоритеты.

     
     
  • 5.22, letsmac (ok), 02:47, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >>Давно Cell стал VLIW?

    ИМХО фактически оно и есть. Только маршалер мощный прикрутили,  но всю оптимизацию опять свалили на компилятор.  

    >>причём только неделю буду учить приоритеты.

    Да,  а раньше за 6 дней управлялись. Правда и процессоры содержали примерно на 3 порядка меньше транзисторов :-)

     
     
  • 6.24, Аноним (-), 07:37, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >>>Давно Cell стал VLIW?
    > ИМХО фактически оно и есть.

    пруфы давай, а не своё имхо, заменяющее факты

     
     
  • 7.44, letsmac (ok), 21:00, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >>>>Давно Cell стал VLIW?
    >> ИМХО фактически оно и есть.
    > пруфы давай, а не своё имхо, заменяющее факты

    Школьникам в школу - арихитектуру процов смотри в в техманах. Сам PowerPC уже имеет зачатки VLIW с его логикой условных переходов на уровне компилятора. SPE у CELL изначально было VLIW чистым, но потом переделали под гибрида VLIW/SIMD, тк не справлялись к выходу.    PPE фактически хитрожопый блок конвейера с возможностью распределять команды по блокам (таки извращенный VLIW маршалер выходит).

     
     
  • 8.49, pavlinux (ok), 02:34, 21/12/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Початки, йопт Ты будешь теперь любой проц не совместимый с x86 подогонять под ... текст свёрнут, показать
     
     
  • 9.52, Аноним (-), 15:01, 21/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    скобок небыло областей видимости ... текст свёрнут, показать
     
  • 9.53, letsmac (ok), 00:52, 22/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Там вообще-то PPE которым таки компилятор мог отправить несколько команд на SPE ... текст свёрнут, показать
     
  • 4.27, Школьник (ok), 09:36, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Mac весь в OpenCL, но по прежнему это не помогает против винды с Direct-ами. Они в разы быстрее.

    OpenCL или все-таки OpenGL? Если первое, то Вы не теплое ли с мягким сраниваете? Разве на DirectX можно вычисления делать (без костылей)?

     
     
  • 5.47, Аноним (-), 01:51, 21/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Разве на DirectX можно вычисления делать?

    DirectCompute?

     
  • 4.42, Anonim (??), 20:38, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Расскажите подробнее о спецпроцессорах HP. Или такой же пук в лужу как и с Cell?
     
     
  • 5.43, letsmac (ok), 20:51, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    HP EPIC таки и прочее. Тот-же Merced разрабатывался с патентами HP. Хочешь поэкспериментировать см HP VEX.  На текущий момент - полутруп.
     
     
  • 6.46, Anonim (??), 23:49, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Intel EPIC - общее название для процессоров Merced aka Itanium aka Itanic. Да, HP и Intel какое-то время разрабатывали их вместе, но это всё никак не укладывается в Вашу фразу
    > Так умер itanium, так умер Cell, только HP с его спецпроцами и Эльбрус немного дышат

    где Вы перечисляете и Itanium, и некие спецпроцессоры HP как равноправные и независимые продукты, один из которых жив, второй - мёртв.

     
  • 3.40, Аноним (-), 18:36, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Мне это тоже не совсем понятно.

    ну хотят иметь гетерогенную платформу вычислений с подключаемыми back-end'ами. А фронт типа как один)

     
  • 2.19, Агроном (?), 01:45, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это же опесорс. Пишут не то, что нужно остальным, а то что хосется самим.
     
  • 2.26, nuzhny (?), 09:31, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    К каким бинарным драйверам оно привязано? Делается же в первую очередь для выполнения OpenCL на CPU, используют в конце-концов clang+LLVM.
    Плюс в том, что хорошо написанный OpenCL код проще ложится на SIMD. И программист заботится о параллельности, и типы данных соответствуют.
     
     
  • 3.30, ano (??), 10:37, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    делается оно в первую очередь для параллельности и желательно на стороне GPU & FPGA.
     

  • 1.25, Ю.Т. (?), 09:24, 20/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кто сам работал, это действительно portable? Можно без GPU,  и т.д.? По крайней мере, без морей пота и крови?
     
  • 1.29, ano (??), 10:31, 20/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Эх была же BeOS которая умела использовать все вычислительные ресурсы как сопроцессоры, даже DSP из звуковой карты... нет - понавыдумывають всякой фигни и теперь мучаются.
     
     
  • 2.45, letsmac (ok), 21:03, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Эх была же BeOS которая умела использовать все вычислительные ресурсы как сопроцессоры,
    > даже DSP из звуковой карты... нет - понавыдумывають всякой фигни и
    > теперь мучаются.

    До сих пор с теплотой вспоминаю ее интерфейс - ничего не украли, сделали очень красиво и практично. И таки да первая desktop os с полной поддержкой многопроцессорности.

    А многочиповость это смотри AMIGA OS.  Там только не было нормального многозадачного режима.  

     

  • 1.37, Андрей (??), 14:54, 20/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > В бэкенде, использующем CPU, полностью реализована спецификация OpenCL 1.2

    Это не правда. В документации чётко написано, что не полностью:
    http://portablecl.org/docs/html/features.html

    > The known unsupported OpenCL (both 1.x and 2.x) features are listed here as encountered.
    > Frontend/Clang
    >    OpenCL 1.x
    >        OpenGL interoperability extension
    >        SPIR extension

     
     
  • 2.39, Аноним (-), 18:21, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Это не правда. В документации чётко написано, что не полностью:

    Сам смысл релиза 1.0 был в полной поддержке  OpenCL 1.2.
    Может просто документацию ещё не обновили, в анонсе написано, что полностью c отдельными ограничениями:

    Full conformance with OpenCL 1.2 standard on CPU backend (with some
       limitations, see the documentation for details).

    https://sourceforge.net/p/pocl/mailman/message/36162579/

     
     
  • 3.41, Андрей (??), 18:47, 20/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Full conformance ... with some limitations

    Программисты, конечно, не математики, но даже у них такие формулировки не должны быть допустимы: или полная, или неполная.

    > Может просто документацию ещё не обновили

    Было бы неплохо, если так. Потому что выглядит как раз, что в документации эти "ограничения" и остались. Вот только проблема, что это не какие-то ограничения, а полностью отсутствующие фичи.

    Сейчас погрепал 'CL.*GL':
    lib/CL/pocl_opengl.c:  POCL_ABORT_UNIMPLEMENTED("The entire clCreateFromGLTexture call");
    lib/CL/pocl_opengl.c:  POCL_ABORT_UNIMPLEMENTED("The entire clCreateFromGLBuffer call");
    lib/CL/pocl_opengl.c:  POCL_ABORT_UNIMPLEMENTED("The entire clCreateFromGLRenderbuffer call");
    lib/CL/pocl_opengl.c:  POCL_ABORT_UNIMPLEMENTED("The entire clGetGLObjectInfo call");
    lib/CL/pocl_opengl.c:  POCL_ABORT_UNIMPLEMENTED("The entire clGetGLTextureInfo call");
    lib/CL/pocl_opengl.c:  POCL_ABORT_UNIMPLEMENTED("The entire clEnqueueAcquireGLObjects call");
    lib/CL/pocl_opengl.c:  POCL_ABORT_UNIMPLEMENTED("The entire clEnqueueReleaseGLObjects call");
    lib/CL/pocl_opengl.c:  POCL_ABORT_UNIMPLEMENTED("The entire clGetGLContextInfoKHR call");

    :(

     

  • 1.48, Аноним (-), 02:19, 21/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Лучше бы куду поверх opencl запилили, чтобы владельцы любых видеокарт могли запускать tensorflow.
     
  • 1.51, Аноним (51), 11:03, 21/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    где брать бинарники?
     

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



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

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