KhronosGroup/SyclParallelSTL

How to build this on windows?

SASkievua opened this issue · 6 comments

What installation steps exactly must be done to build this on windows?

cjdb commented

This will be addressed by #41.

Do I understand correctly that now only ComputeCpp supported for windows build in /origin/parallel-stl-msvc/?
And likewise in /origin/vs2015_solution/ ?

Ruyk commented

I am not sure about triSYCL support on Windows, but maybe @keryell can say something about it ? There is nothing ComputeCpp specific on the changes for windows that are coming soon, but we are not testing internally with triSYCL on windows at the moment.

i do not think triSYCL is tested with the ParallelSTL with Visual Studio.
But at least the unit tests of triSYCL work on CPU & OpenMP with Visual Studio thanks to the amazing contribution from @MathiasMagnus

I have not tested it myself (though now that you mention it, I did want to make an alternative backend to triSYCL, one that uses the parallel STL, and SyclParallelSTL might be a really good starting point with no vendor pSTL implementations out there).

Should you want to use parallelSTL with triSYCL, I believe all you need is make the same defines as we do for all our unit tests and turn on OpenMP support within the compiler. I do not know if you're using CMake, but you might get some inspiration as to what to do from our CMakeLists files, particularily from the one that declares the add_sylc_to_target function here. (Sorry, no standalone files available, triSYCL has 100+ unit tests and I wanted to create a centrallized function, so it's easy to update across all the tests.) This is the function that sets up everything on the target that is triSYCL specific. It has a fair amount of generator expressions (testing for the boolean value of triSYCL behavioral options), but basically you can go for the unconditional links and includes, and OpenMP, which is opt-in for triSYCL (ON by default).

I intentionally named the utility function add_sycl_to_target which is the same utility function used for ComputeCpp, one day I would like to create not a FindTriSycl.cmake and FindComputeCpp.cmake, but simply a FindSYCL.cmake which can detect both and use them in a way that makes sense.

Hope that helps.

In #53 there is some Visual Studio support from @MathiasMagnus for triSYCL but I have not tested it.