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

Please add MSVC builds to travis CI #259

Open
apriori opened this issue Nov 11, 2019 · 6 comments
Open

Please add MSVC builds to travis CI #259

apriori opened this issue Nov 11, 2019 · 6 comments

Comments

@apriori
Copy link

apriori commented Nov 11, 2019

Currently triSYCL does not build with MSVC 2017, mostly due to unsupported attribute statements used.

An exerpt:

 git grep -i noinline
include/triSYCL/detail/instantiate_kernel.hpp:    this function marked as \c noinline, otherwise the kernel code is
include/triSYCL/detail/instantiate_kernel.hpp:    seems incompatible with \c noinline in Clang/LLVM 3.9.1, because
include/triSYCL/detail/instantiate_kernel.hpp:__declspec(noinline) void
include/triSYCL/detail/instantiate_kernel.hpp:    The \c noinline attribute is used to force this to appear as a
include/triSYCL/detail/instantiate_kernel.hpp:__declspec(noinline)
include/triSYCL/vendor/Xilinx/fpga/ssdm_inst.hpp:    __attribute__ ((nothrow, noinline, weak));
include/triSYCL/vendor/Xilinx/fpga/ssdm_inst.hpp:  void _ssdm_op_SpecPipeline(...) __attribute__ ((nothrow, noinline, weak));
include/triSYCL/vendor/Xilinx/fpga/ssdm_inst.hpp:  void _ssdm_SpecArrayPartition(...) __attribute__ ((nothrow, noinline, weak));
tests/device_compiler/array_partition_cyclicblock.cpp:  void _ssdm_op_SpecPipeline(...) __attribute__ ((nothrow, noinline, weak));
tests/device_compiler/array_partition_cyclicblock.cpp:  void _ssdm_SpecArrayPartition(...) __attribute__ ((nothrow, noinline, weak));
tests/device_compiler/single_task_vector_add_automatic_array_dataflow_drt.cpp:  void _ssdm_op_SpecDataflowPipeline(...) __attribute__ ((nothrow, noinline, weak));
tests/device_compiler/single_task_vector_add_automatic_array_dataflow_drt.cpp:  void _ssdm_op_SpecPipeline(...) __attribute__ ((nothrow, noinline, weak));
tests/device_compiler/single_task_vector_add_drt_dataflow_func.cpp:  void _ssdm_op_SpecDataflowPipeline(...) __attribute__ ((nothrow, noinline, weak));
tests/device_compiler/single_task_vector_add_drt_dataflow_func_local_pipeline.cpp:  void _ssdm_op_SpecDataflowPipeline(...) __attribute__ ((nothrow, noinline, weak));
tests/device_compiler/single_task_vector_add_drt_dataflow_func_local_pipeline.cpp:  void _ssdm_op_SpecPipeline(...) __attribute__ ((nothrow, noinline, weak));
trisycl\include\trisycl\device_runtime.hpp(120): error C2496: 'serialize_arg': 'selectany' can only be applied to data items with external linkage
trisycl\include\trisycl\device_runtime.hpp(141): error C2496: 'serialize_accessor_arg': 'selectany' can only be applied to data items with external linkage
trisycl\include\trisycl\device_runtime.hpp(201): error C2496: 'set_kernel': 'selectany' can only be applied to data items with external linkage
@keryell
Copy link
Member

keryell commented Jan 14, 2020

I do not have MSVC experience.
Perhaps you should start by using the latest version of MSVC?
Anyway all these errors are in the Xilinx-specific device code that requires the Clang/LLVM device compiler.
So right now, even it compile on the host side, there is no chance to run with Clang/LLVM on FPGA for now. So using triSYCL here with MSVC will not help.

@MathiasMagnus
Copy link
Contributor

If you don't mind having a different runner type of runner, having Azure Pipelines for MSVC isn't much effort. It has infinite CPU hours for OSS CI purposes. I've already setup a self-hosted version of it, but Azure host is simpler to maintain.

The real question is whether the project wants MSVC support, even if at times it may block PRs and need a little extra effort.

@keryell
Copy link
Member

keryell commented Jan 16, 2020

Even if the current design cannot support Xilinx devices, it might be interesting to still run with CPU.
But some other SYCL implementations can do this too...
@MathiasMagnus you are the one who added MSVC support at the first place, so I leave this decision to you. :-)

@feliwir
Copy link

feliwir commented Mar 2, 2020

You could run all 3 platforms on Github Actions

@keryell
Copy link
Member

keryell commented Mar 2, 2020

You could run all 3 platforms on Github Actions

Feel free to contribute, if you know how to do it. :-)

@keryell
Copy link
Member

keryell commented Sep 10, 2021

Now we have moved to Github Actions, it is possible to make progress on this.

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

4 participants