[llvm-dev] Introducing HardCloud @ FCCM 2018
Ciro Ceissler via llvm-dev
llvm-dev at lists.llvm.org
Fri Apr 27 05:29:16 PDT 2018
Hi,
HardCloud (www.hardcloud.org) is an extension to the OpenMP 4.X standard
that seeks to ease the task of offloading IP-cores to FPGA accelerators in
CPU-FPGA architectures. This is achieved by two new clauses [use] and
[module] shown in the example below:
#pragma omp target device(HARP | HARPSIM | Catapult) map(to: X) map(from: Y)
#pragma omp parallel for use(hrw) module(loopback) check
for(int i = 0; i < n; i++) {
Y[i] = X[i];
}
Clause use(hrw) allows the computation to be performed by a pre-synthesized
hardware module (loopback) instead of by the C code following the
annotation. A new optional [check] clause is under development to enable
the automatic co-verification of the loopback output, i.e., Y, against the
regular software execution.
A new OpenMP 4.X libomptarget plugin was added to the Clang/LLVM compiler
that leverages on the Intel OPAE library to build a seamless programming
interface.
HardCloud currently enables HARP and HARPSIM device plugins that are
respectively associated with the Intel HARP2 architecture and its
simulator. Design of the Microsoft Catapult plugin is underway.
HardCloud adds two new IP-blocks to the basic Intel HARP2 blocks. They
allow the user's IP-core to perform streaming and indexed buffer accesses.
This is done through a simple IP-core HDL interface.
We will demo HardCloud at FCCM 2018 from April 29 - May 1 in Boulder (CO),
USA, and would be really happy to talk to you in case you are going to the
conference.
At http://www.hardcloud.org you can find a docker distribution, tutorials,
presentations and a Wiki that could be useful in case you want to give
HardCloud a try.
Your feedback would be highly appreciated!!
Thanks.
--
Ciro Ceissler
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180427/5de4736a/attachment-0001.html>
More information about the llvm-dev
mailing list