Skip to content
Jakub Beránek edited this page Jul 24, 2019 · 5 revisions

SMI (Streaming Message Interface) is a a distributed memory HLS programming model for FPGAs that provides the convenience of message passing for HLS-programmed hardware devices facilitating minimal-overhead, flexible, and productive inter-FPGA communication.

The key concept of SMI is its streaming nature, where a send or receive is set up first, and the data is then written or read on a cycle-by-cycle basis. This concept modifies MPI-style messages into transient channels, that have similar semantics, but integrate seamlessly with HLS-programmed pipelines.

This repository contains an HLS based implementation of SMI. It targets the Intel SDK for OpenCL and boards equipped with network connections offered in the BSP as I/O channels.

All the tests and evaluations have been performed on a set of Bittware 520N cards, each of them is equipped with 4 network connections operating at 40Gbit/s.

The SMI interface is explained in details in: Tiziano De Matteis, Johannes de Fine Licht, Jakub Beránek, Torsten Hoefler. "Streaming Message Interface: High-Performance Distributed Memory Programming on Reconfigurable Hardware". Accepted at the International Conference for High-Performance Computing, Networking, Storage and Analysis (SC'19)

Clone this wiki locally