JavaScript использующий ресурсы GPU
Опубликовано TermiT Янв 28, 2010 в JavaScript, Web 2.0 |
Я уважаю таких программистов как Алексей Митцев (Россия, Москва). Он победил на контесте Mozilla Jetpack 0.5, его проектом был прототип позволяющий JavaScript использовать ресурсы GPU.
Работа Алексея — это альфа-прототип, демонстрирующий потенциал проекта. Для работы нужна специальная сборка Firefox, потому показать работу проекта в действии тяжело. Однако, можно продемонстрировать принцип работы. Вот пример транспонирования матрицы со скоростью света:
-
jetpack.statusBar.append({
-
html: «Transpose!»,
-
onReady: function(widget){
-
$(widget).click(function(){
-
var myStorage = jetpack.cuda-storage;
-
var matrix = new Array();
-
var size = 32;
-
for(var i=0; i
-
array[i] = i;
-
var transposedMatrix = myStorage.transpose(size, matrix);
-
transposedMatrix.forEach(function (v) { console.log( v ); })
-
});
-
});
Алексей рассказывает почему это проект важен:
Сейчас люди используют интернет для совместной работы очень активно. Инструменты, позволяющие этому осуществится, в быстром темпе наращивают функционал и удобство. Но с ростом удобства увеличиваются и требуемые ресурсы, которые использует браузер и его среда. На сегодняшней день взаимодействие людей в интернете ограничивается текстовыми документами, музыкой, видео и изображениями, но существует потребность в других формах представления и обработки данных в браузере, которые требуют большей производительности:
- стриминг цифрового видео и аудио потоков в высоком качестве.
- распознавание речи
- манипуляции и обработка больших изображений природы и космоса
- локальная обработка больших массивов данных
- анимация DOM-элементов (через DirectX или OpenGL)
- исследование 3D-миров, таких как SecondLife или OpenSim Grid
- редактирование видео и аудио файлов в реалтайме
- IDE работающие прямо в браузере
Это список можно перечислять до бесконечности. Разработчики пытались преодолеть ресурсные проблемы используя такие client-server технологии как ActiveX, Netscape Plugins, Java Applets, но они не получили массового распространения. Возможно этот проект изменит данную ситуацию, но не стоит забывать о кроссбраузерности, придется проделать большую работу по стандартизации. Возможно в ближайшем будущем, все те инструменты разработчиков, которые позволяли обеспечить приложения богатыми возможностями, такие как JavaScript, ActionScript, плагины и те что упоминались ранее перестанут страдать от нехватки процессорного времени.
