- Formal program verification for a smart network interface controller
- Project Year:
2020
- REU Student (s):
Lance Tan | Yale University CT
- Student 1 Institution:
Yale University
- Project Mentor:
Srinivas Narayana
- Project Mentor Area:
Computer Science
- Project Abstract:
The network interface card (NIC) is the hardware component that connects a computer, such as a laptop, server, or datacenter, to the internet. The NIC sits in the path of the data moving in and out of your machine, allowing it to compute over the data as it transits. For example, a NIC might automatically compress data going in and out of your machine to save bandwidth and reduce download time. With the advent of software-defined networking, along with ever-increasing network bandwidths, NICs have become increasingly flexible in the computations they support, and their architectures more complicated. The Netronome NFP-6000 is one example of these "smart NICs". We present a formal specification of arithmetic and logic instructions for the Netronome NFP-6000, and a programmatic framework for interpreting and formally validating Netronome programs. This work brings us closer to a superoptimizing compiler for Netronome smart NIC programs, and will help further understanding of the capabilities and limitations of hardware acceleration using NICs.