-
Notifications
You must be signed in to change notification settings - Fork 35
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
Addition of SYCL implementation of SLAMBench #13
base: master
Are you sure you want to change the base?
Conversation
…make within /usr/share/
…hen CXX is set to syclcc. The SYCL code is currently still exactly the same as the cpp version.
…em::get_global().
…the OpenCL version which may have a signed/unsigned bug.
…qual to cpp results.
…is currently a problem for intel's sycl. Turning CMAKE_CXX_EXTENSIONS off in CMakeLists.txt ensures we obtain -std=c++11.
…al artifacts on intel sycl.
Accidentally left in some <<<<< HEAD from conflicts. And I also did some accidental space addition / removal in places that aren't functionally required and just add noise to the pull request. Also some minor artifacts from the reapplication of the patches in an order they technically never were applied. Signed-off-by: Andrew Gozillon andrew.gozillon@yahoo.com
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this contribution, this is just amazing !!
I apologize I did not review earlier.
I would have approved directly, but some files should not have been modified:
kfusion/include/default_parameters.h
kfusion/src/reader.cpp
kfusion/src/mainQt.cpp
kfusion/src/benchmark.cpp
kfusion/qt/SlamBenchQt.cpp
kfusion/include/interface.h
kfusion/include/draw.h
Do you think you can do something with it ?
Best wishes,
Thanks !
I've updated the documentation to be more up-to-date, especially after the recent script updates. I've made an attempt at fixing the build system when CXX is set to syclcc. You should now be able to compile all modules when it's set. The main change was modfiyng the -DSYCL compiler definition to only be speciifed for the SYCL module. There was another modification required that links to some other syclcc modifications that had to be done. When using syclcc (and by default ComputeCpp) as the main compiler, it unfortunately doesn't come packaged with OpenMP libraries which means the OpenMP module will fail unless a user has self installed the OpenMP libraries. The fix for this requried the addition of a new "driver" argument for syclcc and the application of this argument for the OpenMP module when syclcc is in use (-syclcc-use-host). Which essentially says use the host compiler, which by default is g++. This means it'll compile smoothly as g++ contains omp headers and libraries.
This adds a new SYCL module for SLAMBench.
It currently works using ComputeCpp for CPU and GPU and Intels open source SYCL implementation for Intel GPU.
The compilation of the SYCL modules have an external dependency on: https://github.com/agozillon/syclcc which are a set of driver scripts that allow CMake to treat the SYCL compiler as it would treat a normal C++ compiler without the needed addition of any new SYCL specific compile arguments.
Some steps covering this have been added to the README.md. On the note of the README.md I promise the changes aren't as significant as they look from the source <-> source difference! You should be able to just hit the "Display the rich diff" button and it'll show a more realistic view of the changes made.
@pkeir was the main contributor of this patch as you can probably tell by the prolific commit history! So I'm tagging him to help with the discussion of the pull request.