Van Court Tom, Herbordt Martin C
Department of Electrical and Computer Engineering Boston University.
Microprocess Microsyst. 2007 Mar 5;31(2):135-145. doi: 10.1016/j.micpro.2006.04.001.
Dynamic programming for approximate string matching is a large family of different algorithms, which vary significantly in purpose, complexity, and hardware utilization. Many implementations have reported impressive speed-ups, but have typically been point solutions - highly specialized and addressing only one or a few of the many possible options. The problem to be solved is creating a hardware description that implements a broad range of behavioral options without losing efficiency due to feature bloat. We report a set of three component types that address different parts of the approximate string matching problem. This allows each application to choose the feature set required, then make maximum use of the FPGA fabric according to that application's specific resource requirements. Multiple, interchangeable implementations are available for each component type. We show that these methods allow the efficient generation of a large, if not complete, family of accelerators for this application. This flexibility was obtained while retaining high performance: We have evaluated a sample against serial reference codes and found speed-ups of from 150× to 400× over a high-end PC.
用于近似字符串匹配的动态规划是一大类不同的算法,它们在目的、复杂度和硬件利用率方面有很大差异。许多实现都报告了令人印象深刻的加速效果,但通常都是针对性的解决方案——高度专业化,只解决众多可能选项中的一个或几个。要解决的问题是创建一种硬件描述,它能实现广泛的行为选项,同时不会因功能臃肿而降低效率。我们报告了一组三种组件类型,它们分别解决近似字符串匹配问题的不同部分。这使得每个应用程序都可以选择所需的功能集,然后根据该应用程序的特定资源需求充分利用FPGA架构。每种组件类型都有多个可互换的实现方式。我们表明,这些方法能够高效地生成针对该应用程序的大量(即使不是全部)加速器。在保持高性能的同时获得了这种灵活性:我们将一个样本与串行参考代码进行了评估,发现与高端PC相比加速了150倍至400倍。