Skip to content

Utility that was used to generate initial Go AVX-512 encoder test suite.

License

Notifications You must be signed in to change notification settings

quasilyte/avx512test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

avx512test

Utility that was used to generate initial Go AVX-512 encoder test suite.

Note that it should probably not be used for new tests generation.

Published as a response to request made in golang/go#25724.

Requirements / Preparations

  • Intel XED of 088c48a2efa447872945168272bcd7005a7ddd91 revision. Not guaranteed to work with newer XED. Recommended to be in sync with xeddata.

  • Latest x86.csv file. Ideally, either x86csv generator will evolve to use XED or we will avoid using x86.csv in future. Right now, we only have the old version and one that was generated by uncommited generator (x86.csv).

To install XED, do something like this:

# Go to some folder where you would like to have XED cloned.

git clone https://github.com/intelxed/xed.git xed
git clone https://github.com/intelxed/mbuild.git mbuild
cd xed
./mfile.py --shared install

# Now install the generated `libxed.so`.
# It's located under "./kits/xed-install-$blah/lib/libxed.so".
# (You may want to run ldconfig.)

You don't need XED includes as I vendored the relevant headers.

If you're running Linux on AMD64 machine, you may even take a look at libxed.so in the root of this repository. If it works, you may skip the compilation step, but you still need to make sure that relevant shared library can be loaded.

Running the generator

If everything is OK, single command is enough to generate everything:

export GOPATH=$(go env GOPATH)

cd $GOPATH/github.com/quasilyte/avx512test

go install ./cmd/avx512test/main.go

$GOPATH/bin/avx512test

By default, it expects to find x86.csv inside current directory. Use -x86csv parameter to set other location.

Produced output is written to ./output directory. Normally, its file list may look like:

$ cd output
$ ls
aes_avx512f.s    avx512cd.s     avx512pf.s          gfni_avx512f.s
avx512_4fmaps.s  avx512dq.s     avx512_vbmi2.s      vpclmulqdq_avx512f.s
avx512_4vnniw.s  avx512er.s     avx512_vbmi.s
avx512_bitalg.s  avx512f.s      avx512_vnni.s
avx512bw.s       avx512_ifma.s  avx512_vpopcntdq.s

How does it work

TODO: describe how does avx512test works.

About

Utility that was used to generate initial Go AVX-512 encoder test suite.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published