intel / intel-graphics-compiler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

vcb XeLPG non-determinism

bmwiedemann opened this issue · comments

While working on reproducible builds for openSUSE, I found that
our intel-graphics-compiler 1.0.14062.11 package varied from variations in VCEmulation64.cpp that I traced down to this reproducer with igc-1.0.14508.16 :

cd /home/abuild/rpmbuild/BUILD/build/IGC/VectorCompiler/lib/BiF && for cpu in Gen11 XeHPG XeLP XeHPC Gen9LP XeHP Gen9 Gen8 XeLPG ; do echo -n $cpu: ; for i in $(seq 100) ; do cd /home/abuild/rpmbuild/BUILD/build/IGC/VectorCompiler/lib/BiF && ../../../Release/vcb -o o -cpu $cpu VCBuiltins64.opt.bc ; md5sum o ; done|sort|uniq -c ; done

Gen11:    100 9a9095463c0b6dd5f2028c93dc692b46  o
XeHPG:    100 41c7cd4a685d0b5dc6f5ca85435fb653  o
XeLP:    100 9a9095463c0b6dd5f2028c93dc692b46  o
XeHPC:    100 538f23d13ecab613b6b81eade308ff5a  o
Gen9LP:    100 32d2728deb3d1921a9f3b5ac2b9be4d0  o
XeHP:    100 4366882a77a8b2f92348574f2f96f575  o
Gen9:    100 32d2728deb3d1921a9f3b5ac2b9be4d0  o
Gen8:    100 32d2728deb3d1921a9f3b5ac2b9be4d0  o
XeLPG:      2 0a0791dace25d41253f430e3a6876ca3  o
      1 48813d22bde7852058ee50bca58e33ab  o
      1 6bb061d7b1499bbdbfec9dcdee07f7f4  o
      1 6bfef90a65eb5cd004a3d423c2d26645  o
      2 6c84070de53dc2834aa8b0b2f80a6b6d  o
      2 b4398c0579f1e3775ab99290b6c14a1b  o
     79 bb99677103b2465ca33f151d6e6229e0  o
      5 be23538d0dfbe65872bcda199e896d13  o
      3 c06ef713ad0c419f9caac4e4b5376527  o
      3 dcf6f2cc0641c532d56450c2071d6e4e  o
      1 fc75a6db34701de325d233b2cf6b2cf8  o

or the shorter version

for i in $(seq 30) ; do cd /home/abuild/rpmbuild/BUILD/build/IGC/VectorCompiler/lib/BiF && ../../../Release/vcb -o o -cpu XeLPG VCBuiltins64.opt.bc ; md5sum o ; done|sort|uniq -c|wc -l
4

I found that disabling ASLR with setarch -R is a workaround to make results deterministic.

I'm unable to reproduce this with your reproducer. This is what I tried:

$ osc build
$ osc shell
$ cd /home/abuild/rpmbuild/BUILD/build/IGC/VectorCompiler/lib/BiF && for cpu in Gen11 XeHPG XeLP XeHPC Gen9LP XeHP Gen9 Gen8 XeLPG ; do echo -n $cpu: ; for i in $(seq 100) ; do cd /home/abuild/rpmbuild/BUILD/build/IGC/VectorCompiler/lib/BiF && ../../../Release/vcb -o o -cpu $cpu VCBuiltins64.opt.bc ; md5sum o ; done|sort|uniq -c ; done

LLVM ERROR: Failed to Parse IR
md5sum: o: No such file or directory
LLVM ERROR: Failed to Parse IR
md5sum: o: No such file or directory
LLVM ERROR: Failed to Parse IR
md5sum: o: No such file or directory
LLVM ERROR: Failed to Parse IR
md5sum: o: No such file or directory
LLVM ERROR: Failed to Parse IR
md5sum: o: No such file or directory

Am I missing something?

Many thanks for find the issue - I can reproduce it locally. Working on it.

Fix was merged in 4354d0b, locally failure is no more reproduced after this commit. Could you please check?

I tested that the patch indeed made the intel-graphics-compiler package build reproducible.