Xilinx / open-nic-shell

AMD OpenNIC Shell includes the HDL source files
Apache License 2.0
99 stars 67 forks source link

Can we use OpenCL to implenent our IP kernal on the user plguins? #44

Open manwu1994 opened 1 year ago

manwu1994 commented 1 year ago

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!

cneely-amd commented 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