Elevating JavaScript Performance Through GPU Power

My name is Alex. I am one of developers who helped make it possible to utilize CUDA from within Jetpack. (See the Jetpack-to-CUDA project) Andrey is Ph.D. at Moscow Institute of Physics and Technology, his interests include parallel computing and distributed algorithm development. The goal of this article is to share our ideas of how to elevate JavaScript performance by utilizing the GPU’s parallel processing power. Some of these ideas formed the basis for the “Jetpack-to-CUDA” project.

So, Why does this matter?

People are using the internet to collaborate more than ever before. Collaboration on the internet has been evolving at a rapid pace, and the applications and technology that will drive the next wave of internet collaboration will require even greater technical complexity and more significant computing resources than is currently available through the browser environment today. While text documents, videos, music, and image-base forms of collaboration are now common place, there are many needs require a level of compute performace beyond the web platform as it exists today, such as:

  • consumption of high-quality digital video or music streams,
  • complex image or speech recognition,
  • manipulation and processing large pictures of nature or space,
  • processing large sets of tabular data locally in the browser,
  • complex animations with DOM elements (via DirectX or OpenGL),
  • exploring 3D worlds, such as SecondLife or an OpenSim Grid,
  • real-time audio and video editing,
  • having an integrated development environment that runs entirely in the browser

There are endless examples of such complex uses of the internet platform that are just not feasible with the status quo web platform. Developers have tried to overcome such barriers in the past with client-side enhancements like ActiveX, Netscape Plugins, Java Applets, but each in its own way was flawed and failed to gain mass adoption. It is possible that the Native Client project will change all this, but standardization of such initiatives across the browser landscape is a lengthy endeavor. For the near future the tools that the developer uses to provide a rich user experience remain JavaScript and ActionScript, plug-ins, such as the ones previously mentioned, are significantly limited by the architectural mismatch of performance requirements they place on the CPU.

Read more…

3 responses

  1. Hofferic wrote on :

    @geeknik:
    I suppose that limitation is due to CUDA giving much more flexibility right now, but I am not that smart about graphics cards 😉

  2. woody wrote on :

    Great development, its all moving fast in this area eh?

  3. geeknik wrote on :

    Why limit this to CUDA? Why not involve STEAM and/or OpenCL? It’s not like Nvidia has the market cornered on GPUs, especially considering the GPU in my PC, the HD 5870 is currently the most powerful in the world and it was made by AMD/ATI and not Nvidia. 🙂