Trends in hardware, the prevalence of the cloud, and the rise of highly demanding applications have ushered an era of specialization that quickly changes how data is processed at scale. These changes are likely to continue and accelerate in the next years as new technologies are adopted and deployed: smart NICs, smart storage, smart memory, disaggregated storage, disaggregated memory, specialized accelerators (GPUS, TPUs, FPGAs), and a wealth of ASICs specifically created to deal with computationally expensive tasks (e.g., cryptography or compression). In this tutorial, we focus on data processing on FPGAs, a technology that has received less attention than, e.g., TPUs or GPUs but that is, however, increasingly being deployed in the cloud for data processing tasks due to the architectural flexibility of FPGAs, along with their ability to process data at line rate, something not possible with other types of processors or accelerators. In the tutorial, we will cover what FPGAs are, their characteristics, their advantages and disadvantages, as well as examples from deployments in the industry and how they are used in various data processing tasks. We will introduce FPGA programming with high-level languages and describe hardware and software resources available to researchers. The tutorial includes case studies borrowed from research done in collaboration with companies that illustrate the potential of FPGAs in data processing and how software and hardware are evolving to take advantage of the possibilities offered by FPGAs. The use cases include: (1) approximated nearest neighbor search, which is relevant to databases and machine learning, (2) remote disaggregated memory, showing how the cloud architecture is evolving and demonstrating the potential for operator offloading and line rate data processing, and (3) recommendation system as an application with tight latency constraints.
翻译:硬件发展趋势、云计算的普及以及高要求应用程序的兴起,催生了快速改变大规模数据处理方式的专业化时代。随着智能网卡、智能存储、智能内存、解耦存储与内存、专用加速器(GPU、TPU、FPGA)及大量针对计算密集型任务(如加密或压缩)定制的ASIC等新技术的采用和部署,这些变革将在未来几年持续加速。本教程聚焦于FPGA在数据处理领域的应用——这一技术虽相比TPU或GPU关注度较低,却因FPGA的架构灵活性及其线速处理能力(其他处理器或加速器难以实现)而逐步在云端数据处理任务中部署。我们将涵盖FPGA的定义、特性、优劣势,工业部署案例及其在各类数据处理任务中的应用方式。教程将介绍基于高级语言的FPGA编程,并阐述研究人员可用的软硬件资源。通过与企业合作的研究案例,本教程将揭示FPGA在数据处理中的潜力,以及软硬件如何演进以充分利用FPGA特性。应用场景包括:(1)近似最近邻搜索(关联数据库与机器学习)、(2)远程解耦内存(展示云架构演进方向及算子卸载与线速处理能力的潜力),以及(3)具有严格延迟约束的推荐系统。