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.
翻译:硬件的发展趋势、云端的普及以及高性能应用的崛起引领了专业化的时代,快速改变了数据处理的规模。这些变化很可能会继续并加速下去,因为新技术的采用和部署:智能网卡、智能存储、智能内存、解聚存储、解聚内存、专门加速器(GPUS,TPUS,FPGA)以及处理计算密集型任务(例如加密或压缩)的大量ASIC。本教程将集中讨论FPGA上的数据处理,这项技术受到的关注比如TPU或GPU少,但是,由于FPGA的架构灵活性以及它们能够以线速处理数据,这些处理无法使用其他类型的处理器或加速器实现,因此它们正在越来越多地在云端用于数据处理任务。在本教程中,我们将介绍什么是FPGA、它们的特点、优点和缺点,以及行业中的部署示例以及它们在各种数据处理任务中的使用方法。我们将通过高级语言介绍FPGA编程,并描述研究人员可以使用的硬件和软件资源。本教程包括通过与公司合作进行的研究中借用的案例研究,展示了FPGA在数据处理中的潜力以及软件和硬件如何发展以利用FPGA提供的可能性。使用案例包括:(1)近似最近邻搜索,这与数据库和机器学习相关,(2)远程解聚内存,展示了云端架构的演变并展示了运算符卸载和线速数据处理的潜力,以及(3)推荐系统作为具有严格延迟限制的应用。