Intel is in the process of making a big push into the IPU space with the release of the Mount Evans silicon. It’s looking like this is the place to be for building out what will probably become the infrastructure glue that ties together the server platforms in on-prem installations and “cloudy” infrastructures. To that end, beyond the power of the hardware involved, there is also a strong orientation towards ensuring that the developer community has the required tools to leverage these new capabilities.
Intel is an active participant and sponsor of multiple projects all in line with their networking and storage initiatives that support directly and indirectly the IPU product line:
- Data Plane Development Kit (DPDK)
- Open vSwitch (development release integrated into the DPDK)
- Storage Performance Development Kit (SPDK)
- Infrastructure Programmer Development Kit (IPDK)
- Programming Protocol-independent Packet Processors (P4)
P4
P4 is a “domain-specific language for network devices, specifying how data plane devices (switches, NICs, routers, filters, etc.) process packets”. As such, it is entirely vendor and platform agnostic.
P4 is a mature project with the original design paper dating back to 2014, and integrated into the Barefoot Tofino ASIC in 2017. Intel acquired Barefoot Networks in 2018 and leveraged their experience into extending the implementation out from the switch to the IPU, giving us a common programmable fabric that covers the core to the edge. There are a number of projects working on normalizing the use of P4 with the Open vSwitch (OVS) which will give the language pretty much universal coverage for programming.
The language and runtime are active projects with consistent updates in an approximately annual rhythm. It’s looking more and more like this is going to be the industry standard moving forward for dynamic network programming.
Toolkits
Boy there are a lot of them! Continuing on the network side of the house, there is the DPDK with all of the tooling for packet processing acceleration that are leveraged in the Mount Evans IPU to squeeze every last bit of performance out of the pipeline. This is a long-running project getting on 12 years old now that has proven its worth but is still pushing the envelope forward.
This isn’t a static project, but rather a constantly evolving one, taking into account new hardware and new use cases with an aggressive cycle of 4 major releases per year in order to keep pace with the changes in the marketplace. Intel has been a good steward of the project, taking it from a small relatively closed community to one that encompasses all of the actors that are interested in performance optimization that all take active roles in moving things forward. This includes players from across the IT spectrum with competitors like ARM, Marvell, AMD, Broadcom and Nvidia, making it one of the most successful and widely used cross-platform and cross-industry projects in the networking space.
SPDK
The Storage Performance Development Kit is a key tool in the development of the user- space NVMe stack. Intel has considerable contributions in this space coming from their experience in pushing NVMe technology forward with Optane. This again feeds into the amazing performance that they can get out of the Mount Evans IPU with the NVMe-oF implementation. There is also support for iSCSI and vhost servers in the SPDK, but I think that it’s becoming clearer and clearer that NVMe is the cloud and datacenter storage protocol of the future. Even hard drives will be getting in on the action as demonstrated by Seagate with their prototype drives.
More and more products are leveraging the SPDK to bring both high performance and possibly more importantly these days, high efficiency for NVMe-based storage with a list that includes open source implementations like OpenEBS for stateful Kubernetes workloads to enterprise solutions like Nutanix to startups like Vast Data.
IPDK
And finally, the IPDK is a newer project with lots of promise including vendor agnostic drivers and APIs that can take advantage of the secure management and offload features of this new generation of IPUs (and DPUs). Leveraging the previously mentioned frameworks and other industry standards, it enables building the layer of software between the consumers of the infrastructure at the top of the stack and the underlying physical resources.
An intriguing focus of the project is that it’s not just about the IPU as a target; it also can compile to CPUs and switches, making it an inclusive, universal development layer for programming the infrastructure.
The project currently includes the following targets:
- KVM Target w/ P4 DPDK
- Mount Evans IPU
- Oak Springs Canyon IPU
- Tofino-based Intelligent Switch
Clearly Intel is bringing the first round of code based on their experience with Intel® Tofino™, Mount Evans, and Xeon processors, but the code and the project are vendor agnostic and can extend out to the larger hardware ecosystem. With some luck, the IPDK will end up becoming the new standard tool for designing and building the next generation of cloud- scale and edge data centers.
Given Intel’s history of bringing this kind of Open Source project from an internal product to widely adopted industry standard tools, this looks very promising.
To learn more about IPUs, please visit Intel’s website. You can also connect with Patricia Kummrow, Corporate Vice President, GM Ethernet Division at Intel on LinkedIn and Twitter, and Brad Burres, Fellow at Intel in the Data Center Group on LinkedIn.