Open manwu1994 opened 1 year ago
Hi @manwu1994,
OpenNIC was designed mainly for use in networking research projects and collaborations, and not really for use with the production AMD-Xilinx OpenCL flows. OpenCL requires a host runtime and AMD-Xilinx has existing production platforms/shells.
I can point you to a few other projects that used OpenNIC shell as sort of example projects. These are not implemented as plug-ins, but as their own custom SmartNICs that are based on snapshots of OpenNIC shell.
The first example is the US Department of Energy's ESnet SmartNIC. The ESnet SmartNIC repo provides a push button flow so that a user can write a P4 program and generate a bitfile all from a command line flow. This creates a wrapper around using AMD-Xilinx's Vitis Networking P4 (formerly called SDNet P4) and customizes box_322mhz for the packet processor. This flow was used for creating packet processors that have been deployed in esnet6 and also the US NSF Fabrics project. https://github.com/esnet/esnet-smartnic-hw#readme
The second example is called starr-nic from Carnegie Mellon Univ. (CMU). This example demonstrates using partial reconfiguration and dfx flow with OpenNIC on the Alveo U280. https://github.com/StaRR-NIC/starrnic-public
The third example is NetFPGA PLUS from Cambridge Univ. This project was a port/conversion of the earlier NetFPGA 4x10 switch into 2x100 switch. The author, Yuta, has since joined AMD-Xilinx and works in the same networking research group as me within AMD Research. https://github.com/NetFPGA/NetFPGA-PLUS
Best regards, --Chris
Thank you so much for your hard and valuable work. We are interested in developing our IP kernel on the user plugins through OpenNIC on our U250 platform. Can we use OpenCL to implement the application on the user plugins? Also, where we can find specific solutions or examples of the user plugins of OpenNIC?
I am looking forward your comments and suggestions. Thank you so much in advance!