-
Notifications
You must be signed in to change notification settings - Fork 159
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
Feature/sycl support #146
base: develop
Are you sure you want to change the base?
Feature/sycl support #146
Conversation
Hello @slgogar, I've worked on porting the back-end to SYCL too. I'm getting 80% of the CUDA performance. Where are you at ? Porting the code using DPCT yields bad performance on CUDA |
@slgogar I really appreciate your contribution. I've been in contact with @Michoumichmich about his SYCL port for a few months now. It would be great to hear from both of you regarding performance and which features are currently supported in each implementation (e.g., compression modes, scalar types, array dimensionalities). As both of you probably know, we have experimental CUDA and HIP implementations of variable-rate compression as well as a separate implementation that addresses some of the issues with parallel decompression. We're still weeding out some (mostly benign) bugs in these implementations, which currently do not pass all tests. I'd be curious how your SYCL implementations do on the latest CUDA unit tests (see the Regarding PR submissions, we're getting close to releasing another version of zfp that's currently being worked on on the develop branch, so I would prefer that PRs from either of you be submitted on a separate feature branch as we won't have time to incorporate this PR into the upcoming release. I will set up a new branch but am not yet sure whose implementation to merge. |
Hi @lindstro I started porting the current development branch using Intel Data Parallel C++ Compatibility Tool. So the feature set for accelerator device is not very different then what is supported in that branch. After your comment i tested and added slightly modified version (enabling ZFP_WITH_SYCL) of testexec.cpp and as expected i noticed that the tests for 1,2 and 3 dimensionality passes for floating point and double precision data for Fixed rate mode only (i.e. all 192 and 384 tests passed with SYCL backend). |
Hello @slgogar, You may find my version of the implementation here: https://github.com/Michoumichmich/zfp/tree/feature/sycl-variable-rate. To print the compression/decompression bandwidth you can use the macro You will find the datasets used to benchmark ZFP here: https://sdrbench.github.io |
@slgogar, @Michoumichmich: I'd like to make sure we make progress on supporting SYCL. Now that you are aware of your parallel efforts, can you please give me a status report? Would be nice to get a sense of relative performance, features supported, limitations, correctness (via testing), etc. |
Hello @lindstro, |
@Michoumichmich could you please tell me the oneApi version that is used in your branch? |
Hi, I worked on the tip of the Intel/llvm as bugs got fixed (one was that dpc++ was crashing when building zfp with the variable rate implementation on CUDA). It works with all versions released since september |
Creating a pull request for adding a SYCL/DPC++ port for ZFP compression Library. Steps to use the compression library are same as the development branch.
git checkout feature/sycl-support
mkdir build
cmake -DZFP_WITH_SYCL=1 ..
make -j
make test