Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

kernels need to be compiled with NEC’s proprietary compiler. #12

Open
freemin7 opened this issue Dec 6, 2022 · 5 comments
Open

kernels need to be compiled with NEC’s proprietary compiler. #12

freemin7 opened this issue Dec 6, 2022 · 5 comments

Comments

@freemin7
Copy link

freemin7 commented Dec 6, 2022

Your publication neoSYCL: a SYCL implementation for SX-Aurora TSUBASA reads

neoSYCL needs to separate the host and kernel codes so that they can be compiled with different
compilers. In the case of SX-Aurora, kernels need to be compiled with NEC’s proprietary compiler.

With the efforts of an open source LLVM based compiler would it be possible to add support for a non NEC compiler (probably at worse performance)?
If this is not possible with your current staffing, what would be involved in getting that working?

@keichi
Copy link
Member

keichi commented Dec 7, 2022

Hi, NEC’s compiler is not required if you don’t run on the Vector Engine. Please use the CPU device or the host device instead of the VE device (this is how we run the tests on GitHub CI).

@freemin7
Copy link
Author

freemin7 commented Dec 7, 2022

I am sorry for causing a misunderstanding. I want to run on a VectorEngine but not use the NEC compiler and instead use the LLVM based compiler linked above.

@keichi
Copy link
Member

keichi commented Dec 7, 2022

I see. We have not tested with LLVM-VE, but neoSYCL does not rely on a specific feature of NEC's compiler.

In the case of SX-Aurora, kernels need to be compiled with NEC’s proprietary compiler.

What we meant by this sentence is simply that the compiler needs to emit VE binary. Please try setting the environment variable DEVICE_COMPILER to your installation of LLVM-VE clang++ when you invoke nsc++.

@freemin7
Copy link
Author

freemin7 commented Dec 7, 2022

I will get back to you and perform those steps.

@efocht
Copy link

efocht commented Dec 16, 2022

When using LLVM (either llvm-vec or llvm-ve-rv) we need to add some flags. Like -target ve-linux or -rvec.
It doesn't look like I could add any compile options to nsc++

$ src/nsc++ -h
usage: nsc++ [-h] [--hcode filename] [--dcode filename] [--soname filename] [--device {ve,cpu}] [--debug] file

neoSYCL compilation helper

positional arguments:
  file               SYCL source filename

optional arguments:
  -h, --help         show this help message and exit
  --hcode filename   specify the output host code filename
  --dcode filename   specify the output device code filename
  --soname filename  specify the output shared object filename
  --device {ve,cpu}  specify the device to use
  --debug            enable debug options

Unrecognized options are simply passed to compilers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants