由于图像处理器 (GPU) 具有高度并行的基础架构,所以它可以比传统中央处理器单元 (CPU) 更快地执行某种类型的应用程序。开放计算语言 (OpenCL) 是最流行的语言之一,可驾驭 GPU 的强大功能。一个典型示例就是 Adobe® Premiere® Pro CS6,它通过在用户 GPU 上执行 OpenCL 例程来加速图像和视频的处理。
多家公司都认为 GPU 加速对基于浏览器的应用程序有很大的帮助,于是成立了一个工作组来促进这项技术的发展。在 2012 年 5 月,该工作组发布了 Web 计算语言 (WebCL) 的草案初稿。正如其主页所介绍的,WebCL 工作组旨在 “支持 Web 应用程序驾驭 Web 浏览器中的 GPU 和多核 CPU 处理”。
两家公司都已发布了相关扩展,支持从浏览器内部调用 WebCL 功能。Samsung 发布了一个面向的 WebKit 的 WebCL 扩展,一个可为 Mac OS X 上的 Apple Safari 浏览器提供强大功能的引擎。Nokia 发布了一个 Mozilla Firefox WebCL 插件,可在 Windows® 和 32 位 Linux® 操作系统上运行。由于具有广泛的开发人员基础,本文将重点介绍 Nokia 的实现。本文将会解释如何安装 WebCL,还会介绍 WebCL 编码的基础知识。然后示范如何使用 WebCL 在整个文本进行高速搜索。
安装 WebCL
WebCL 应用程序需要三个组件:OpenCL 软件开发工具包 (SDK)、Firefox 浏览器和 Nokia 的 Firefox 插件。
获得 OpenCL SDK
WebCL 应用程序在主机上调用 OpenCL 功能。因此,必须在运行 WebCL 应用程序之前安装 OpenCL。OpenCL 开发工具包是特定于设备和操作系统的;因此,要在带有 Nvidia GPU 的 Windows 计算机上运行例程,需要安装一个适用于 Windows 的 Nvidia OpenCL SDK。尽管本文不可能为所有 OpenCL SDK 安装都提供指南,但可为您指出正确的方向:
在 AMD CPU 或 GPU 上执行例程,需要下载 AMD Accelerated Parallel Processing (APP) SDK。 在 Nvidia GPU 上执行例程,需要下载 Nvidia GPU Computing SDK。 在 Intel CPU 上执行例程,需要下载用于 OpenCL 的 Intel SDK。
在一台计算机上可以安装多个 OpenCL SDK,并无冲突。
在 Firefox 上安装 WebCL
安装完 OpenCL SDK 后,安装 WebCL 非常简单,步骤如下所示:
从 Mozilla 网站下载 Firefox。 在 Firefox 中,登陆到 Nokia 的 WebCL 的网站。单击 Nokia WebCL 扩展包。 如有需要,可支持下载支持 Firefox 扩展包(一个 *.xpi 文件)。在 Software Installation 对话框中,单击 Install Now,然后重新启动浏览器。 为了测试安装,请登陆 Nokia 的 WebCL 网站,选择 Click here to check that you have WebCL enabled(单击此处查看您是否支持 WebCL)。
如果出现是一个对话框,Excellent! Your system does support WebCL(非常好!您的系统支持 WebCL),则表示 WebCL 就已成功安装。如果对话框显示,Unfortunately your system does not support WebCL(很抱歉,您的系统不支持 WebCL),那么您可能需要重新安装扩展包,或者在另一台计算机上访问 WebCL。
编写 WebCL 应用程序
WebCL 技术对新手来说会很神秘,所以牢记以下总目标非常重要:
向设备递交一个函数。 在设备上执行函数。 从设备向主机传输输出
图 1 显示了这一过程。
图 1. WebCL 应用程序的操作