Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
manwu1994 opened this issue May 30, 2023 · 1 comment
Open

Comments

@manwu1994
Copy link

manwu1994 commented May 30, 2023

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
Copy link
Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants