LINUX.ORG.RU

Прототип WebCL для Firefox

 , , ,


0

2

WebCL предоставляет доступ к OpenCL из JavaScript, что позволит использовать GPU и многоядерные процессоры при создании Веб-приложений.
Основными сферами использования озвучиваются обработка фото и видео, визуализация и симуляция.

3 марта 2011. Khronos group начало формирования рабочей группы по WebCL.
4 мая 2011. Nokia Research выпустила прототип WebCL в виде плагина для Firefox.
18 мая 2011. Опубликован текущий билд «WebCL 1.0.1-r12». Он намного более стабильный чем первая версия.

Характеристики:

  • Лицензия: LGPL
  • Билды пока только под x86_32
  • Лично проверялось лишь на стабильном Firefox 4. На Nightly может не работать.
  • Нужны драйверы с поддержкой OpenCL

Примеры использования:

Решил опубликовать новость почитав новые споры относительно bitcoin.
На примере «добытчика BTC» можно увидеть, что технология имеет хорошую производительность, у меня это честные 16-17 Mhash/s.

C моей точки зрения это важнейшая технология для появления качественных игр в браузере.
Сейчас обсчитывать физику с javascript можно только на CPU, и даже скромное 2d работает не очень хорошо.
WebCL в свою очередь позволяет использовать настоящий, сложный физический движок.


Процесс установки:

  • Установить и запустить Firefox 4
  • Установить плагин Nokia WebCL (x86_32 only)
  • Нажать сюда, и проверить работоспособность WebGL.
  • Протестировать Kernel Toy

По ссылкам все равно придется. :)

>>> Официальный сайт

★★★

Проверено: JB ()
Последнее исправление: Zhbert (всего исправлений: 8)

Ну всё, теперь вся рыба наша...

А вообще, очень даже неплохо. Главное, чтобы всегда был fallback mode на случай отсутствия необходимого оборудования. А то может получиться как с WebGl, вроде бы и есть, а вроде бы только на избранных Nvidia картах. Хотя, поддержка только появилась, надеюсь, в будущем доведут до нужной кондиции.

timur_dav ☆☆☆☆☆
()
Ответ на: комментарий от timur_dav

Разве только на избранных? У меня и на 9600, и на 9800 и на 250 работает.

А это, все-таки, самые обычные бюджетные видеокарты.

// а вообще, webGL хорош. Жаль, времени нет свободного в нужном количестве, чтобы в нем поковыряться...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от timur_dav

Там, оказывается, сначала какой-то плагин надо устанавливать...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Так это ж всё нвидиа, а что делать другим? Поддержка OpenGl 2 практически везде есть, WebGl есть его подмножество, но в браузере оно не реализовано должным образом.

timur_dav ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Не могу не согласиться, но степень криворукости писателей от Штеуда, Месы и АТИ в данном случае меньше писателей от Мозиллы.

timur_dav ☆☆☆☆☆
()
Ответ на: комментарий от timur_dav

Intel как было говно, так говном и останется. Я их быдлоподелки вообще за видеокарты не считаю.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от winddos

Да, некоторые драйвера забанены в Firefox, но вероятно подойдут:
https://wiki.mozilla.org/Blocklisting/Blocked_Graphics_Drivers

Ъ:

To force-enable WebGL, go to about:config and set webgl.force-enabled=true.
To force-enable Layers Acceleration, go to about:config and set layers.acceleration.force-enabled=true.
...
In Firefox 4 and 5 (not in Firefox 6 and newer), on X11 platforms (like Linux), the driver blacklist is implemented differently and bypassing it requires you to also define the MOZ_GLX_IGNORE_BLACKLIST environment variable.
You can run Firefox using this command line: MOZ_GLX_IGNORE_BLACKLIST=1 firefox

winddos ★★★
() автор топика

Правильно ли я понимаю, что со временем компьютерные игры могут переехать в браузер, когда технологии позволят использовать ресурсы компьютера на полную? (пускать крайзис в фоксе; читай «вендекапец»)

duott ★★★★★
()
Ответ на: комментарий от timur_dav

Да я сам удивился тому, почему плагин не для Chromium.
Это наверное личные предпочтения программистов, но в лисе WebGL куда более сырой.

winddos ★★★
() автор топика
Ответ на: комментарий от winddos

Установил, проверил - да, работает. Правда, медленновато как-то...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от tailgunner

>Браузеры несет куда-то не туда...

+1, каждый браузер должен стать ОС, как ChromeOS ;)

bohm ★★★★★
()

Это отлично.
Однако, не хотел бы я однажды увидеть ошибку «You're missing WebCL plug-in to display this page».
В онлайн игры-то не все играют, а сделать супер OpenCL-enhaced страницу попытаются наверняка.

blinkenlichten
()
Ответ на: комментарий от duott

WebGL конечно имеет ограничения, и WebCL скорее всего будет иметь.
Но на качество графики уровня PS3 вполне можно расчитывать.
Сейчас я вижу проблему лишь в огромном потреблении оперативной памяти, и повальной криворукости авторов демок.
Большинство доступных демок делают кодеры, потому модели и текстуры вызывают рвотные позывы.
С другой стороны есть красивые демки которые ужастно тормозят, т.к их авторы не имеют понятия о том, что такое оптимизация в 3D графике.

http://helloracer.com/webgl/ - Самая красивая и простая.
http://ro.me/ - Самая ресурсоемкая.

Там можно найти наглядное применение WebGL:
http://tapio.github.com/alawid/game/ - Простой рогалик.
http://nicolas-bonnel.github.com/WARPG/index.html - Работающая RPG с графикой из 1999
http://www.biomotionlab.ca/Demos/webgl_walker/webgl_walker.php - Скелетная анимация
http://johndrinkwater.name/examples/webgl/minecraft/ - Просмотр моделей из Minecraft
http://github.com/ithkuil/MC-Chunk-Loader - Визуализатор мира из MineCraft
http://web.chemdoodle.com/demos - Визуализация по химической теме
http://veditor.plopbyte.net/ - Редактор машинок
Много их, но это те которые я запомнил.

Весь список здесь, надо много времени чтобы найти все:
http://pastebin.com/Mi4QBvwr

На Сhrome Experiments вешают в основном красивые демки.
А ведь та же скелетная анимация невероятно крута.

winddos ★★★
() автор топика

Не проще ли адаптировать JavaScript-движок для исполнения на OpenCL? Таким образом и сущностей будет меньше и быстродействие должно подскочить на всех веб-приложениях, а не только на горстке избранных.

spoilt ★★★
()
Ответ на: комментарий от Eddy_Em

Да, на CPU. Профит в распараллеливании на все ядра. А их поделки в sandy bridge вполне себе могут и аппаратно потянуть.

timur_dav ☆☆☆☆☆
()
Ответ на: комментарий от spoilt

Думаю, это очень труднореализуемо и попахивает большими накладными расходами.

timur_dav ☆☆☆☆☆
()
Ответ на: комментарий от winddos

Меня текущая ситуация с WebGL пугает своим ресурсопотреблением, особенно загрузкой процессора, для элементарных вещей.

timur_dav ☆☆☆☆☆
()
Ответ на: комментарий от blinkenlichten

Ну логично, что когда будет принят стандарт, то поддержка будет без плагинов, как уже работает WebGL.
Сейчас же нету даже предварительной версии, а данный плагин - прототип.

Очень надеюсь, что этот стандарт они родят быстрее, чем WebGL (более 4 лет).
Google с их Chrome OS он необходим как воздух, а потому надеюсь на быстрое продвижение.

Просто я очень очень ленив чтобы нормально изучить С/С++, но поиграться с 3D и распараллеленными вычислениями хочется.
Делать это из уютного браузера намного проще, т.к нет нужды ловить ошибки из за не знания основ.

winddos ★★★
() автор топика

За майнер BTC спасибо! Он очень вовремя. Я в гостях у сестры, дома на 9800GT генерируются биткойны. Здесь я тоже захотел это задействовать: 9900 и всегда включенный комп! Раздает торренты. За лето должно было нагенерироваться много.

Сделал гашение экрана 25 минут, скринсейвер-генератор через 30 минут простоя. Потому что они панически боятся консоли. Предпромотр работает. Такое ощущение, что при отключении экрана эта видеокарта обесточивается физически. Потому что ничего не работает. А твоя новость меня спасла! Браузер там тоже всегда включен и хотя бы пара вкладок мои - на ночь включу.

Дома на линуксе и с моей видеокартой все работает. Но у них в программе разгона обнаружилось три профиля видеокарты, а у меня только один. Думаю проблема где-то здесь.

Wormik
()
Ответ на: комментарий от timur_dav

Профит в распараллеливании на все ядра.

Дык, то же самое проще реализовать на pthreads, чем париться с дебильным синтаксисом openCL.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от timur_dav

В частности для хромиума:
chromium-browser --ignore-gpu-blacklist И работает всё и везде на ати (3d в частности), вот почему то разработчики боятся разрешать по-умолчанию такие вещи пользователям ati, хотя всё работает, такие же предрассудки как и у посетителей лора.

alltiptop ★★★★★
()
Ответ на: комментарий от timur_dav

Ничего подобного. Демка со скелетами напрягает процессор меньше, чем на 1% (по всем ядрам).

Eddy_Em ☆☆☆☆☆
()

Всем кто боится проблем в Linux:

1). NVidia уже очень давно поставляет вместе с видеодрайвером библиотеку OpenCL

2). AMD не ATi, и создавая с нуля поддержку OpenCL в драйверах, не наломала дров. Все работает, в том числе с 8 GPU, Windows так не может, только с 4-мя. Библиотека OpenCL лежит в AMD APP SDK 2.4. Могу научить из этого bin/x86 bin/x86_64 lib/x86 lib/x86_64 делать пакеты. Надо кому?

Wormik
()
Ответ на: комментарий от timur_dav

Оптимизация меня тоже пока пугает, но я верю что нагрузку на процессор можно сильно снизить.
RAM у меня 6GB (с PAE), и это заботит меньше. Но для начала должен появится бенчмарк, тогда будет понятно как изменяется ситуация со временем.

Вообще существует самописный дебаггер:
http://benvanik.github.com/WebGL-Inspector/
Он вроде как брошен, и иногда крашит браузер, но годится как прототип инструмента отладки.
Скоро, я думаю, что то подобное появится в Chromium.

Просто память и процессорное время исчезают в пустоту только в Firefox (WebGL пока невероятно сильно течет).
В Chromium баги фиксят и пилят очень мощные инструменты для разработчиков.

PS: Дублирую свой пост из толксов:

Очень хорошее видео по оптимизации приложений c Google I/O:
http://www.youtube.com/watch?v=rfQ8rKGTVlg
Примеры из видео здесь:
http://webglsamples.googlecode.com/hg/google-io/2011/
На оптимизированном варианте с 40000 объектов у меня постоянно 60 fps (8800 gts, последний Chromium).

winddos ★★★
() автор топика
Ответ на: комментарий от duott

Для большинство демок нужен Chrome c включенным WebGL, а лучше последний Chromium.
Firefox тоже тянет, но утечек памяти слишком много.

Opera под Linux пока не умеет вообще никак, только под Win32 (11.50 alpha c webgl).

winddos ★★★
() автор топика
Ответ на: комментарий от Wormik

Ты только учитывай, что я не автор сервиса, и не гарантирую его честность :)
Лучше стыбзить код (если можно) или написать свой.

winddos ★★★
() автор топика

Наконец-то розовая мечта интернета осуществится и пользователь сможет посещать только один сайт за раз?

Deleted
()
Ответ на: комментарий от Deleted

NoScript всех спасет!
А без него повесить браузер может и обычный JS, что и так регулярно случается.

Включение/отключение WebGL/CL будет как плагин или по дефолту.
Например как оно сейчас с «Geolocation API».

winddos ★★★
() автор топика

Теперь для майнинга биткоинов через ваш браузер могут использовать не только ваш процессор, но и вашу видеокарту!

anonymous
()
Ответ на: комментарий от Wormik

кстати, биткоины лучше генерить на Ati, их карточки в несколько раз быстрее на этой задаче.

vasaka ★★★
()

Годно!

Только не понял причем тут Нокия 0_о

И ещё не понял почему на ГПУ все сработало за 3ms, а при попытке запустить на CPU напечатало: «Error: No CPU devices available on this system.» 0_о

FedeX ★★
()
Ответ на: комментарий от timur_dav

>А то может получиться как с WebGl, вроде бы и есть, а вроде бы только на избранных Nvidia картах.

4.2, на ATI с блобом идеально работает

anonymous
()

> технология для появления качественных игр в браузере.

нахрена они нужны? это какой-то странный виток истории, сделали ОС, в ней сделали недоОС, в ней пускать игры. для большей радости firefox надо перепиать на жабку, чтоб было OC --> OC --> OC --> игра. и каждый слой чтоб кроссплатформеннее и кроссплатформенее.

Rastafarra ★★★★
()
Ответ на: комментарий от timur_dav

>Меня текущая ситуация с WebGL пугает своим ресурсопотреблением, особенно загрузкой процессора, для элементарных вещей.

есть версия, что проц грузит не сам GL, а анимирующий его жабоскрипт. С другой стороны, если использовать WebGL по назначению и не пытаться писать в браузере аналог крызыса, то технология вполне работая

anonymous
()

WebCL предоставляет доступ к OpenCL из JavaScript

Лучше бы это была реализация CL, встроенная в браузер.

ugoday ★★★★★
()
Ответ на: комментарий от Rastafarra

нахрена они нужны? это какой-то странный виток истории,

Считай, что виндузятники открыли для себя Х11, а чтобы было куда утилизировать ресурсы, реализовали недо-Х window system в браузере.

ugoday ★★★★★
()

> то позволит использовать GPU и многоядерные процессоры при создании Веб-приложений


Ну наконец-то!!11

LamerOk ★★★★★
()
Ответ на: комментарий от Deleted

>Наконец-то розовая мечта интернета осуществится и пользователь сможет посещать только один сайт за раз?

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

AVL2 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.