AMD-Xilinx ha recentemente reso open source il suo compilatore Nanotube basato su LLVM che può essere utilizzato per alcuni ingegnosi scopi di rete su FPGA.
Il compilatore AMD-Xilinx Nanotube prende il codice eBPF XDP C e costruito sullo stack del compilatore LLVM è quindi in grado di generare una pipeline di elaborazione dei pacchetti in HLS C++ che può essere eseguita su FPGA Xilinx.
“Nanotube è una raccolta di passaggi del compilatore, librerie e un’API per facilitare l’esecuzione di EBPF XDP e codice di rete simile su un FPGA in uno SmartNIC. Il compilatore accetta il codice EBPF XDP C come input e genera una pipeline di elaborazione dei pacchetti in HLS C++. Questo codice HLS C++ può quindi essere sintetizzato utilizzando Vitis HLS e posizionato su un FPGA.
Il compilatore esegue varie trasformazioni sul programma, iniziando con una traduzione delle chiamate EBPF in chiamate a simili Funzioni API di Nanotube. Esegue quindi più fasi di trasformazione del codice strutturalmente e a diversi livelli API.
…
La libreria Nanotube implementa gli accessi ai pacchetti e le mappe in un’implementazione che è compatibile con la sintesi, il che significa che sarà inserito nell’applicazione e creerà hardware efficiente nella sintesi di alto livello.”
Come parte del repository del compilatore Nanotube c’è un esempio di codebase sviluppato da Facebook/Meta. Questo esempio è soprannominato”Katran”e funge da bilanciamento del carico di rete di livello 4 ad alte prestazioni in esecuzione su FPGA Xilinx. Questo esempio per mostrare il compilatore Nanotube è un codice con licenza eBPF GPLv2.
Coloro che desiderano saperne di più su questo AMD recentemente open-source Il compilatore Xilinx Nanotube può trovarlo su GitHub.