The OpenNET Project / Index page

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



"Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от opennews (??) on 19-Дек-17, 18:49 
Доступен (https://sourceforge.net/p/pocl/mailman/message/36162579/) релиз проекта PoCL 1.0 (http://portablecl.org/)  (Portable Computing Language OpenCL), развивающего  реализацию стандарта OpenCL, независимую от производителей графических ускорителей и позволяющую использовать различные бэкенды для выполнения OpenCL-ядер на разных типах графических и центральных процессоров. Код проекта распространяется (https://github.com/pocl/pocl/) под лицензией MIT.
Поддерживается работа на платформах X86_64, MIPS32, ARM v7, AMD HSA APUs и различных специализированных TTA-процессорах (Transport Triggered Architecture (https://ru.wikipedia.org/wiki/Transport_triggered_architecture)) c архитектурой VLIW (https://ru.wikipedia.org/wiki/VLIW).

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

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

URL: http://portablecl.org/pocl-1.0.html
Новость: http://www.opennet.dev/opennews/art.shtml?num=47766

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от Аноним (??) on 19-Дек-17, 18:49 
А Радеоны планируют?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от Вся правда on 19-Дек-17, 19:43 
Только для nvидеокарт.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

8. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +1 +/
Сообщение от Аноним (??) on 19-Дек-17, 19:48 
Поверх OpenCL?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

11. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +3 +/
Сообщение от letsmac (ok) on 19-Дек-17, 22:04 
Пролистал сайт проекта - но никак не нашел ЗАЧЕМ они это делают :-) И как привязанный к бинарным драйверам проект может быть portable?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

12. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +1 +/
Сообщение от Аноним (??) on 19-Дек-17, 22:30 
Пока они это писали, слово Portable приобрело другой смысл?
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

16. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от Ordu email(ok) on 20-Дек-17, 01:30 
> как привязанный к бинарным драйверам проект может быть portable?

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

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

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

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

17. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от EHLO on 20-Дек-17, 01:44 
>имея софтварную реализацию, можно затем использовать любое доступное устройство, для того, чтобы её ускорить

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

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

18. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от letsmac (ok) on 20-Дек-17, 01:44 
>>Он вполне может выполняться на CPU без драйверов вообще. Поэтому и portable.

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

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

21. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +1 +/
Сообщение от pavlinux (ok) on 20-Дек-17, 02:02 
> Так умер itanium, так умер Cell

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

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

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

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

22. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от letsmac (ok) on 20-Дек-17, 02:47 
>>Давно Cell стал VLIW?

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

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

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

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

24. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +2 +/
Сообщение от Аноним (??) on 20-Дек-17, 07:37 
>>>Давно Cell стал VLIW?
> ИМХО фактически оно и есть.

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

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

44. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от letsmac (ok) on 20-Дек-17, 21:00 
>>>>Давно Cell стал VLIW?
>> ИМХО фактически оно и есть.
> пруфы давай, а не своё имхо, заменяющее факты

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

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

49. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +3 +/
Сообщение от pavlinux (ok) on 21-Дек-17, 02:34 
> Сам PowerPC уже имеет зачатки VLIW

Початки, йопт. Ты будешь теперь любой проц. не совместимый с x86 подогонять под VLIW?  
Cell обычный SIMD - куча SSE регистров/команд в одной коробке.
Программирование под Cell - есть линейная алгебра.
Чтоб сложить два вектора или вектор с матрицей нужно определить все их элементы.
От этого он не становиться VLIW.  


> SPE у CELL изначально было VLIW чистым.

Хватит уже фантазий, не было ни изначально, ни первоначально.
Был IBM Cell BE, в плейстейшоне и в блейдах. Всё.
Остальное - лабораторные метания, которые никто не видел.    

> условных переходов на уровне компилятора.

Я те открою тайну if (a == 1) { goto label; }... появилось ещё в 40-е годы.
Переход по адресу программили ещё в MSDOS, для драйверов это обычная практика.

Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

52. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от Аноним (??) on 21-Дек-17, 15:01 
> Я те открою тайну if (a == 1) { goto label; }... появилось ещё в 40-е годы.

скобок небыло (областей видимости) ;)...

Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

53. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от letsmac (ok) on 22-Дек-17, 00:52 
>>Cell обычный SIMD - куча SSE регистров/команд в одной коробке.

Там вообще-то PPE которым таки компилятор мог отправить несколько команд на SPE и он распределял их по блоком. Прямая упаковка команд минуя конвейер. Не было реализовано фактически.

>>Cell обычный SIMD - куча SSE регистров/команд в одной коробке.

Там вообще был общий доступ к памяти всех узлов - полностью когерентный и не потокобезопастный. Это уже не SIMD - он может только когерентный доступ предоставить, а RISC так вообще про оперативную память знать не должен.

>>Я те открою тайну if (a == 1) { goto label; }... появилось ещё в 40-е годы.

ты не путай пусторылый jump с вычислением вероятности перехода. Еще и скажи, что тогда ret выходил сразу на хвост рекурсии и не шаманил стэк.  

Я тебя тайну открою - While и for в компиляторе для Power имели доп признак условного перехода, до того как Intel вылизало свой предсказатель ветвлений на уровне декодера. Фактически каждый вызов содержал две команды для проца.


ЗЫ: Спасибо за разговор, приятно поспорить.  

Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

27. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +3 +/
Сообщение от Школьник (ok) on 20-Дек-17, 09:36 
>Mac весь в OpenCL, но по прежнему это не помогает против винды с Direct-ами. Они в разы быстрее.

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

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

47. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +1 +/
Сообщение от Аноним (??) on 21-Дек-17, 01:51 
> Разве на DirectX можно вычисления делать?

DirectCompute?

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

42. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от Anonim (??) on 20-Дек-17, 20:38 
Расскажите подробнее о спецпроцессорах HP. Или такой же пук в лужу как и с Cell?
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

43. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от letsmac (ok) on 20-Дек-17, 20:51 
HP EPIC таки и прочее. Тот-же Merced разрабатывался с патентами HP. Хочешь поэкспериментировать см HP VEX.  На текущий момент - полутруп.
Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

46. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от Anonim (??) on 20-Дек-17, 23:49 
Intel EPIC - общее название для процессоров Merced aka Itanium aka Itanic. Да, HP и Intel какое-то время разрабатывали их вместе, но это всё никак не укладывается в Вашу фразу
> Так умер itanium, так умер Cell, только HP с его спецпроцами и Эльбрус немного дышат

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

Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

40. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +1 +/
Сообщение от Аноним (??) on 20-Дек-17, 18:36 
>> Мне это тоже не совсем понятно.

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

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

19. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +1 +/
Сообщение от Агроном on 20-Дек-17, 01:45 
Это же опесорс. Пишут не то, что нужно остальным, а то что хосется самим.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

26. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +1 +/
Сообщение от nuzhny on 20-Дек-17, 09:31 
К каким бинарным драйверам оно привязано? Делается же в первую очередь для выполнения OpenCL на CPU, используют в конце-концов clang+LLVM.
Плюс в том, что хорошо написанный OpenCL код проще ложится на SIMD. И программист заботится о параллельности, и типы данных соответствуют.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

30. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +3 +/
Сообщение от ano (??) on 20-Дек-17, 10:37 
делается оно в первую очередь для параллельности и желательно на стороне GPU & FPGA.
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

25. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от Ю.Т. on 20-Дек-17, 09:24 
Кто сам работал, это действительно portable? Можно без GPU,  и т.д.? По крайней мере, без морей пота и крови?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

29. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +4 +/
Сообщение от ano (??) on 20-Дек-17, 10:31 
Эх была же BeOS которая умела использовать все вычислительные ресурсы как сопроцессоры, даже DSP из звуковой карты... нет - понавыдумывають всякой фигни и теперь мучаются.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

45. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от letsmac (ok) on 20-Дек-17, 21:03 
> Эх была же BeOS которая умела использовать все вычислительные ресурсы как сопроцессоры,
> даже DSP из звуковой карты... нет - понавыдумывають всякой фигни и
> теперь мучаются.

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

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

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

37. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от Андрей (??) on 20-Дек-17, 14:54 
> В бэкенде, использующем 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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

39. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от Аноним (??) on 20-Дек-17, 18:21 
> Это не правда. В документации чётко написано, что не полностью:

Сам смысл релиза 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/

Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

41. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от Андрей (??) on 20-Дек-17, 18:47 
> 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");

:(

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

48. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  –1 +/
Сообщение от Аноним (??) on 21-Дек-17, 02:19 
Лучше бы куду поверх opencl запилили, чтобы владельцы любых видеокарт могли запускать tensorflow.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

51. "Выпуск PoCL 1.0, независимой реализации стандарта OpenCL "  +/
Сообщение от Аноним email(??) on 21-Дек-17, 11:03 
где брать бинарники?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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