Vengineerの戯言

人生は短いけど、長いです。人生を楽しみましょう!

SYCL の デバイスコンパイラの出力は?

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった 

ちょっと調べていたら見つけた。これ

lkml.orgタイトルの:Subject Re: [RFC PATCH Xilinx Alveo 0/6] Xilinx PCIe accelerator driver

だけじゃわからなくて、中の ここ。

- to generate some real code in the most (modern and) open-source way,
there is an open-source framework to compile some SYCL C++ including
some Xilinx FPGA-specific extensions down to SPIR LLVM IR using
Clang/LLVM and to feed the close-source xocc tool with it
https://github.com/triSYCL/triSYCL

You can see starting from
https://github.com/triSYCL/triSYCL/blob/master/tests/Makefile#L322 how
to start from C++ code, generate some SPIR LLVM IR and to feed xocc
and build a fat binary that will use the XRT runtime.

Some documentation in
https://github.com/triSYCL/triSYCL/blob/master/doc/architecture.rst

最後のURLの先を見ると、

Architecture of triSYCL runtime and compiler

特に、「3.2.2 Using Xilinx SDx xocc for FPGA」を読んでいくと、SPIR が出てくる。

そう。triSYCL は、デバイスコンパイラは SPIR 2.0 を出力すると。

The device compiler generates the kernels as SPIR-df (de facto), which is SPIR 2.0 encoded with LLVM IR of a more recent version than LLVM 3.4 expected by the SPIR specification.

 

ということは、Vitis の中では。。。。