@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそ、すべては、SystemC v0.9公開から始まった
昨日の、Intel oneAPI のブログの最初にも書きましたが、Intel SYCL Compiler。
github 内のドキュメント関連を見たら、色々と載っていました。
SYCLCompilerUserManual.md を覗いてみたら、
SYCL specific command line optionsということで、
-fsycl
-fsycl-targets=<value>
というのがありますね。targets には、何が設定できるのだろうか?
下の方には、
-fintelfpga
コンパイルは、
$ clang++ -fsycl-device-only sycl-app.cpp -o sycl-app.bc
また、SPIR-V formatにも出力できるようですね。
$ clang++ -fsycl-device-only -fno-sycl-use-bitcode sycl-app.cpp -o sycl-app.spv
このファイルがどうやら、-fintelfpga のテストコードみたい。
そして、このディレクトリ には、テストコードいっぱい。
RISC-Vのテストコードもありますね。PS4も(あ、PS4って、x86-64でしたね)
PPCも。あ。。。これ、SYCLのテストじゃなくて、LLVMのテストですね。(笑)
llvm/SYCLCompilerAndRuntimeDesign.md
には、SYCL Compiler architecture の図も載っています。
OpenACCのように、ホスト側のコードとデバイス側のコードを分けて、それぞれのコンパイラでコンパイルして、最終的に両方のオブジェクトをまとめて、Fat Library にするって感じですね。NVIDIAのCUDAのプログラムと同じ感じですかね。
(そう言えば、OpenACCって、OpenMPと一緒になったんですかね?)
- Version 2.5 of the specification was released on October 2015
- Version 2.6 was released on November 2017
- The latest version of specification, version 2.7, was released on November 2018
- GCC 9.1 offers nearly complete OpenACC 2.5 support
とあるので、とりあえず、GCCを使えばいいんですね。
チョット脱線しちゃいましたが、Intelの拡張として、
というのがあるみたいですね。