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
最新评论