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
()
Ответ на: комментарий от 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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.