gf-complete library with packaging
 
 
 
 
 
 
Go to file
bassamtabbara a6847973cb Merge branch 'simd-runtime-detection' into 'master'
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
2016-09-14 20:22:27 +00:00
examples build: fix out of source tree build 2014-10-09 23:22:28 +02:00
include Support for runtime SIMD detection 2016-09-13 12:24:25 -07:00
m4 Simplify SIMD make scripts 2016-09-13 12:25:00 -07:00
manual Fix a number of conversion issues in the HTML manual 2015-11-02 18:19:12 +10:00
src gf_multby_one now checks runtime SIMD support 2016-09-13 12:25:00 -07:00
test Simplify SIMD make scripts 2016-09-13 12:25:00 -07:00
tools Added --enable flags for debugging runtime SIMD 2016-09-13 12:25:00 -07:00
.gitignore Support for runtime SIMD detection 2016-09-13 12:24:25 -07:00
AUTHORS Setting up autoconf/automake for GF-Complete 2013-12-04 21:24:29 -08:00
COPYING Updated autoconf to put BSD license in COPYING. 2014-01-07 08:36:44 -08:00
ChangeLog Setting up autoconf/automake for GF-Complete 2013-12-04 21:24:29 -08:00
License.txt Put headers on the C files. 2013-10-09 11:00:24 -04:00
Makefile.am increase the verbosity of make check failures 2016-09-13 10:25:13 +02:00
NEWS Setting up autoconf/automake for GF-Complete 2013-12-04 21:24:29 -08:00
README documentation: update with jerasure.org new home 2014-12-25 11:55:49 +01:00
README.txt jerasure.org is http, not https 2014-12-29 15:16:31 +01:00
autogen.sh Setting up autoconf/automake for GF-Complete 2013-12-04 21:24:29 -08:00
configure.ac Added --enable flags for debugging runtime SIMD 2016-09-13 12:25:00 -07:00

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