a6847973cb
Support for runtime detection of SIMD This merge request adds support for runtime SIMD detection. The idea is that you would build gf-complete with full SIMD support, and gf_init will select the appropriate function at runtime based on the capabilities of the target machine. This would eliminate the need to build different versions of the code for different processors (you still need to build for different archs). Ceph for example has 3-4 flavors of jerasure on Intel (and does not support PCLMUL optimizations as a result of using to many binaries). Numerous libraries have followed as similar approach include zlib. When reviewing this merge request I recommend that you look at each of the 5 commits independently. The first 3 commits don't change the existing logic. Instead they add debugging functions and test scripts that facilitate testing of the 4th and commit. The 4th commit is where all the new logic goes along with tests. The 5th commit fixes build scripts. I've tested this on x86_64, arm, and aarch64 using QEMU. Numerous tests have been added that help this code and could help with future testing of gf-complete. Also I've compared the functions selected with the old code (prior to runtime SIMD support) with the new code and all functions are identical. Here's a gist with the test results prior to SIMD extensions: https://gist.github.com/bassamtabbara/d9a6dcf0a749b7ab01bc2953a359edec. See merge request !18 |
||
---|---|---|
examples | ||
include | ||
m4 | ||
manual | ||
src | ||
test | ||
tools | ||
.gitignore | ||
AUTHORS | ||
COPYING | ||
ChangeLog | ||
License.txt | ||
Makefile.am | ||
NEWS | ||
README | ||
README.txt | ||
autogen.sh | ||
configure.ac |
README.txt
This is GF-Complete, Revision 1.03. January 1, 2015. Authors: James S. Plank (University of Tennessee) Ethan L. Miller (UC Santa Cruz) Kevin M. Greenan (Box) Benjamin A. Arnold (University of Tennessee) John A. Burnum (University of Tennessee) Adam W. Disney (University of Tennessee, Allen C. McBride (University of Tennessee) The user's manual is in the file Manual.pdf. The online home for GF-Complete is: - http://jerasure.org/jerasure/gf-complete To compile, do: ./configure make sudo make install