-
Notifications
You must be signed in to change notification settings - Fork 765
[SYCL] Require building with zstd library #17957
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
base: sycl
Are you sure you want to change the base?
Conversation
SYCL device image compression requires zstd. Running `clang++ -fsycl --offload-compress` with a version of the compiler compiled without zstd leads to an error. Instead of complicating the handling of device image compression to also make it optional, it's cleaner to avoid compiling without zstd library, and to make it a required dependency for SYCL. Using LLVM_ENABLE_ZSTD=FORCE_ON prevents from compiling without zstd.
As I mentioned in #17914 (comment),
Proceeding with this change, would break DPCPP build for a lot of folks. Also, our current behavior is aligned with upstream LLVM as well - don't throw if zstd is not available. |
zstd doesn't need to be installed on test machines since it's built statically. For build machines, sure that's a new required build dependency but that's not the first time a new one is introduced, so how is it a blocker? If the alternative you propose is to put the burden in documentation and on developers and 3rd party applications to defensively try it and check for errors, that sounds just more blocking. |
True.
zstd is not a required build dependency, it's optional, just like in upstream LLVM. The blocker comes from our internal infrastructure, getting hundreds of machines updated to have zstd installed will take time and IMO, it's more cumbersome than you having installed zstd locally when providing custom DPCPP package to Blender.
All our opensource and OneAPI official compiler packages builds compiler with zstd. So, 3rd party applications using official DPCPP release packages don't have to do any additional check. |
@uditagarwal97 maybe I can share my experience from a user perspective of this problem/behavior of the DPCPP compiler, since I encountered this problem and pinged @ph0b. I tried compiling the latest Blender code, which has So I went on trying to compile Blender which as I mentioned before uses Fortunately I knew @ph0b and could ping him. But as an external user I would have probably stop trying DPCPP and skipped trying out SYCL altogether and would stick to CUDA. |
Thank you, @sherholz-intel ! Getting a sense for the user's experiences (good or bad) helps us understand the issue and hopefully avoid too much tunnel vision. Please keep it coming! 😄 @uditagarwal97 - Could we make |
Maybe make it default to |
Hi @sherholz-intel , Thanks for sharing your experience. Based on your and @ph0b's feedback, I've created a pull request (#17990) to improve
I'd prefer a new configure.py option to force |
SYCL device image compression requires zstd.
Running
clang++ -fsycl --offload-compress
with a version of the compiler compiled without zstd leads to an error.Instead of complicating the handling of device image compression to also make it optional, it's cleaner to avoid compiling without zstd library, and to make it a required dependency for SYCL.
Using LLVM_ENABLE_ZSTD=FORCE_ON prevents from compiling without zstd.
An alternative has been discussed in #17914