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 应用。
评论