微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > FPGA是实现绿色搜索技术的关键

FPGA是实现绿色搜索技术的关键

时间:10-18 来源:互联网 点击:
无论为数以百万计的用户搜索请求提供服务还是处理超大量的信息,都需要数量庞大的计算资源,进而消耗大量能源。事实上,用于计算与冷却的能耗费用是数据中心运营的最大成本 。随着数据中心的数量和规模不断增长,如果其能耗保持当前水平的话,那么预计数据中心的二氧化碳排放量到 2020 年将超过航空公司 。因而亟需开发能够处理巨量数据的低能耗解决方案。数据中心的环保化发展是互利共赢的,服务供应商不仅能够显著降低运营成本,同时还能最大限度减少对环境的影响。

FPGA 在加速 Web 搜索及类似信息检索等常见数据中心工作任务方面拥有巨大的潜力,因为它具备固有的并行处理与低功耗优势。充分认识到这一潜力的奥地利公司 Matrixware 购买了 FPGA 平台,但缺乏自身实施复杂信息检索应用的技术,因而公司聘请了我们联合格拉斯哥大学 (University of Glasgow) 计算机系组建的团队开发 FPGA 加速型专利搜索解决方案的概念验证方案。该团队成员包括三名设计人员和兼职助理研究员 Stelios Papanastasious,他们在信息检索、FPGA 以及系统开发领域积累了丰富的专业知识,形成了一个开发原型应用所不可或缺的技能娴熟的组合。经讨论,大家一致同意采用 FPGA 加速型后端进行实时专利过滤应用的开发。

项目资源在人力和时间方面受到很大制约。因此,采用 HDL 实施过滤算法不可行,因而我们决定采用瑞典公司 Mitrionics 开发的高级编程解决方案。

原型应用在去年 11 月于奥地利维也纳举行的信息检索设施研讨会 (Information Retrieval Facility Symposium) 上引起了专利研究人员的极大兴趣。处理数以百万份的专利通常需要几分钟,但若采用 FPGA 加速型后端,几秒钟就能反馈结果。

我们在 2009 年 7 月举行的 ACM SIGIR 国际信息检索研究暨开发大会 (ACM SIGIR International Conference on Information Retrieval Research and Development) 上发布了结果,介绍了相关的性能提升情况 ,并在 FPL 2009 国际现场可编程逻辑大会上对架构设计进行了详细阐述 。

文档过滤的输入与输出

通常情况下,信息过滤任务是指检查传送进来的文档是否与一系列既定的需求信息或配置文件相匹配 。这种任务可在多种情况下出于多种原因而进行,例如,检测传送进入的电子邮件是不是垃圾邮件,比较专利申请是否与现有专利发生重叠,监控是否存在恐怖活动通信,监测并跟踪新闻报道,等等。面对大量涌入的文档,处理工作必须实时完成,从而确保时效性成为重中之重。鉴于此,我们的目标就是采用 FPGA 来实施完成计算强度最大的过滤应用,从而在节约时间和降低能耗的情况下提高文档过滤的效率。

在本文中,我们将采用 Lavrenko 和 Croft 提出的相关性模型 。这一理念适用于信息过滤任务,可通过生成概率语言模型确定传入文档是否与主题配置文件存在差异。如果文档得分超过用户定义的阈值,那么就视为与主题配置文件相关。

在 FPGA 上实施的算法表达如下:文档可以建模为一个“词袋”,即由(t,f )对组成的 D 集,其中 f="n"(t,d),t 表示 t 这个词在文档 d 中出现的次数。配置文件 M 为一组对 p=(t,w),这里的 w 加权为:



给定文档对于给定配置文件的得分计算为:


这里,T 是指在 D 和 M 中都出现的词。该函数是大多数过滤算法的代表性内核算法,不同算法的主要区别在于配置文件中词的加权。

应用架构

文档过滤应用采用客户端—服务器架构,其构成形式为将基于 GUI 的客户端通过 TCP/IP 连接到通信服务器,该服务器可作为不同后端服务器和客户端之间的代理(参见图 1)。在典型的使用案例中,用户首先向查询服务器发出请求,常规搜索系统会返回选中排序列表。用户随后通过从该表中选择相关文档创建配置文件。接下来,配置文件服务器使用所有合并文档的完整文本构建配置文件(即词和加权列表)。配置文件服务器将该配置文件与完整的文档集合进行匹配,并向客户端返回分数流。

模块化的客户端—服务器架构有助于建立系统基准,因为我们可以在主机 CPU 上方便地添加配置文件服务器的 C++ 参考实施。如图 1 所示,应用由 FPGA 加速的部分受限于计算强度最大的任务,也就是文档与配置文件的匹配。主机系统则负责处理所有其他的任务(参见图 2)。



图 1 —— 系统架构以可作为客户端与后端服务器之间代理的通信服务器为中心。 

配置文件服务器根据从客户端获得的配置文件过滤一系列文档,并返回分数流。为了评估性能,我们同时创建了 C++ 参考实施和 FPGA 加速实施方案。两种版本的实施方案基本功能相同,都能通过 TCP/IP 接口接收构成配置文件的文档列表,用相关性模型构建配置文件,并根据该配置文件对存储器缓冲的文档进行评分,从而通过 TCP/IP 向客户端返回文档分数流。可在存储器中缓冲文档流,否则会由于缓慢的磁盘存取影响应用的性能。

我们在具有两个 RC100 刀片的 SGI Altix 4700 设备上实施该应用,其中的每个刀片都包含两个运行频率为 100 MHz 的赛灵思 Virtex?-4 LX200 FPGA;每个 FPGA 都通过 SGI NUMAlink 高速I/O 接口连接到主机平台,并能通过最高速度为每秒 16GB 的 128 位数据总线存取本地 64MB 的SRAM 存储库。主机系统是一套 80 个内核的 64 位 NUMA 设备,运行性能为 64 位 Linux (OpenSuSE)。处理器为双核 Itanium-2,运行频率为 1.6 GHz,其中每个处理器都能直接存取 4GB 的存储器,而且能通过 NUMAlink 存取完整的 320GB 存储器空间。值得注意的是,Itanium 处理器功耗约为 130 瓦特 ,而每个 Virtex-4 FPGA 的功耗仅约 1.25 W 。



图 2 —— 在 FPGA 子系统架构中,Virtex-4 器件通过 SGI 的 NUMAlink 接口与主机平台连接。

对于 C++ 语言应用而言,我们实施 Lemur 信息检索 (IR) 框架,对于与 FPGA 应用的交互,我们则使用 SGI 可配置专用计算 (RASC) 库。Lemur Toolkit(详情访问 www.lemurproject.org)是一套开源工具集,专为 IR 研究而精心设计,可支持索引以及多种相关性和检索模型。RASC 库是 SGI的专有解决方案,能够通过高性能 NUMAlink 互连机制将 FPGA 与主机系统相集成。RASC 库定义的硬件抽象 API 可控制系统中的所有硬件元素。

我们用 Mitrionics 软件开发工具套件 (SDK) 将特定域的 Mitrion-C 语言转换为 VHDL。生成的VHDL 现在能够方便地指向 FPGA 器件架构。我们采用带 XST 合成工具的赛灵思 ISE? 工具链来创建 Virtex-4 比特流。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top