Skip to content

vcb XeLPG non-determinism #302

@bmwiedemann

Description

@bmwiedemann

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions