WebCL 为浏览器带来并发能力

阅读数:2532 2011 年 7 月 11 日

话题:架构语言 & 开发

WebCL 为浏览器带来了并发支持,允许 JavaScript 开发人员编写数据密集型 Web 应用。诺基亚针对 Firefox 开发了原型系统,三星则针对 WebKit 浏览器提供支持。

WebCL是一个对OpenCL(Open Computing Language) 的 JavaScript​语言绑定​,支持​开发人员为浏览器编写密集计算型并发应用并运行于异构环境中(包括 OpenCL 支持的 GPU 和 CPU)。OpenCL 最初由 Apple 开发,但随后被非盈利组织 Khronos 接收,该组织管理着若干标准,包括 OpenGL 和WebGL。​OpenCL 通过FireStream得到了 AMD/ATI 和​NVIDIA 的支持,有点类似于 NVIDIA 的CUDA和 Microsoft 的DirectCompute 。​OpenCL 可以充分利用最新显卡的并发计算支持,​也可以运行在支持 OpenCL 的 CPU 上,如带有APP(Accelerated Parallel Processing)支持的 AMD 芯片。​

WebCL 有两种实现。其中一个是诺基亚针对 32 位 Windows 和 Linux 机器上 Firefox 4 的研究型实现,​另一个是三星针对 Mac OS X 和 NVIDIA GPU 的 WebKit 浏览器的原型实现。​ 诺基亚提供了一个 Firefox 的 XPI 插件,源代码​基于​GNU Lesser General Public License version 2.1 授权,文档见这里。诺基亚的demo演示了 WebCL 如何用于把颜色转化为灰色,另一视频显示了如何通过浏览器绘图。​

三星研究中心发布了两段视频展示N 个物体之间的引力相互作用模拟身体的变形,​从而比较了使用纯 JavaScript 和 WebCL/JavaScript 代码的运行结果。根据研究结果,WebCL 把性能提高了 100 倍​。有关源代码采用New BSD License授权。​

虽然最近有些技术支持 GPU 的并发计算,如微软宣布C++ AMP支持数百万芯片的大规模并行计算,​但是 WebCL 能够为浏览器带来并发性,支持开发人员编写复杂、数据密集型 web 应用。

查看英文原文:​WebCL Brings Parallelism to the Browser