Natural Language Processing (NLP) is a computationally complex field which strongly benefits from advancements in processing capabilities found in heterogeneous high-performance computing (HPC) systems.  Moreover, these heterogeneous resources are expanding to include reconfigurable computing architectures, such as Field Programmable Gate Arrays (FPGA).  A hurdle presently limiting the rapid adoption and utilization of FPGAs in NLP is knowing how to bridge the gap between domain expert software, such as TensorFlow, and the conventional hardware description languages used to program FPGAs.  Advancements in high-level synthesis (HLS) tool chains allow for higher levels of abstraction and domain specific languages to start targeting FPGAs; however, the current tools only extend to C/C++.  With NLP experts leveraging even higher-level languages and tools and targeting more resource rich FPGA-based HPC systems, a framework is necessary to seamlessly integrate the application domain with the platform.  To address these challenges the University of Southern California’s Information Sciences Institute (USC/ISI) proposes the Scalable Acceleration Platform Integrating Reconfigurable Computing and Natural Language Processing Technologies (SAPIENT) project.  

The SAPIENT project encompasses several capabilities to accelerate Natural Language Processing tasks on Field-Programmable Gate Array based High-Performance Computing systems. Firstly, the SAPIENT framework enhancements for FPGA systems considers the challenges associated with mapping NLP-based algorithms and compute kernels into FPGA-based platforms for high-performance and efficiency while providing end-users productivity tools to quickly implement and evaluate their applications. SAPIENT provides a framework for integrating with NLP and Machine Learning (ML) toolkits, such as Stanford CoreNLP or TensorFlow, with High-Level Synthesis (HLS) tools to target FPGA platforms. SAPIENT’s back-end implementation flow extracts NLP kernels and assemble FPGA-based pipelines for NLP acceleration. Another capability is to accelerate Neural Network (NN) training with FPGAs. Training Neural Networks (NNs) on FPGAs can be orders of magnitude faster than on Graphic Processing Units (GPUs) due to the ability to efficiently map specialized pipelined and parallel architectures to FPGAs. Lastly, SAPIENT’s advance in model search on FPGA-based HPC systems results in a software-managed FPGA system that can efficiently use a network of FPGAs to search and find the best NN for a given data set.