-
Notifications
You must be signed in to change notification settings - Fork 238
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
In-place shift of uint vectors corrupts s1 and further components #790
Comments
Hi @proski Could you please check if it compiler related? If it is working fine on 22.14.22890 please install 22.14.22890, create program with source, dump program binary(https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#clBuildProgram).
Then please install 23.43.27642 and run the demo but create program with binary instead of from source. |
I was able to narrow down the breakage by using Ubuntu 22.04 in WSL, where I can install the precompiled packages from github. It turns out the last release (24.48.31907.7) fixed the issue. The original breakage occurred between 23.17.26241.22 and 23.22.26516.18. More specifically:
I'm attaching a zip file with the binaries for the above releases. |
By the way, mfakto saves the binary kernel and uses it as long as the configuration remains the same. If I compile and run mfakto and then install another version of Intel Compute Runtime, the behavior of mfakto doesn't change. If I remove the binary, mfakto rebuilds it and then its behavior matches the newly installed Intel Compute Runtime. In other words, the version of Intel Compute Runtime matters (w.r.t. this issue) when compiling the source to the binary, not when running the binary. |
The fallback implementation of amd_bitalign() triggers a bug with Intel Compute Runtime (NEO) versions from 23.22.26516.18 to 24.45.31740.9 inclusive. intel/compute-runtime#790 The bug exhibits itself as a failure to find factors in approximately half of the self-tests using barrett32 kernels. The bug affects all but the first component of the vectors, so using VectorSize=1 would fix the self-tests. Add generic_bitalign() that is always implemented using shifts. Use 64-bit shifts for Intel Compute Runtime, 32-bit shifts for other platforms. Use generic_bitalign() instead of the equivalent shifts in all cases when the destination is the same as one of the sources. Make amd_bitalign() an alias to generic_bitalign() on systems where amd_bitalign() is not available.
That means that it is related to compiler, not to compute runtime itself. |
Please duplicate the issue to https://github.com/intel/intel-graphics-compiler repo |
Done |
The following demo should output "4 4" (2 shifted 1 bit to the left in both x and y). Instead, it outputs "4 0".
This demonstrates an issue in mfakto, an OpenCL program for Mersenne number factoring.
The mfakto issue: primesearch/mfakto#15
I know that mfakto is working with intel-opencl version 22.14.22890 but exhibits the problem with 23.43.27642. I still see the problem in 24.35.30872, the version shipped by Fedora 41.
The text was updated successfully, but these errors were encountered: