1. 21 Feb, 2020 1 commit
  2. 18 Jul, 2019 1 commit
  3. 03 Aug, 2018 1 commit
  4. 22 May, 2018 9 commits
  5. 03 Apr, 2018 7 commits
  6. 29 Mar, 2018 12 commits
  7. 10 Apr, 2017 2 commits
  8. 08 Dec, 2016 2 commits
  9. 23 Nov, 2016 1 commit
    • Loic Dachary's avatar
      Merge branch 'gf32-mul-silence-warning' into 'master' · c431e1ff
      Loic Dachary authored
      Gf32 mul silence warning
      
      silence warning like
      
      ```
      /slow/kchai/ceph/src/erasure-code/jerasure/gf-complete/src/gf_w32.c: In function ‘gf_w32_cfmgk_multiply_region_from_single’:
      /slow/kchai/ceph/src/erasure-code/jerasure/gf-complete/src/gf_w32.c:410:5: warning: ‘a’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         g = _mm_insert_epi64 (a, g_star, 0);
           ^
      ```
      
      See merge request !19
      c431e1ff
  10. 18 Nov, 2016 1 commit
    • Kefu Chai's avatar
      gf_w32.c: silence the -Wmaybe-uninitialized warning · 9fbc4425
      Kefu Chai authored
      
      
      in gf_w32_cfmgk_multiply_region_from_single(), follow warning is
      reported by gcc:
      
      gf-complete/src/gf_w32.c:410:5: warning: ‘a’ may be used uninitialized
      in this function [-Wmaybe-uninitialized]
         g = _mm_insert_epi64 (a, g_star, 0);
           ^
      
      actually, we are using `a` as a dummy parameter for initializing `g` and
      `q`. and only the lower lower 64 bits of them are used when doing
      calculation. but their lower 64 bits are always initialized using
      _mm_insert_epi64(). so this is a false alarm.
      
      but we can silence this warning by moving the statement initializing `a`
      up before passing it to  _mm_insert_epi64(). this change does not hurt
      the performance.
      
      Signed-off-by: default avatarKefu Chai <kchai@redhat.com>
      9fbc4425
  11. 14 Sep, 2016 1 commit
    • bassamtabbara's avatar
      Merge branch 'simd-runtime-detection' into 'master' · a6847973
      bassamtabbara authored
      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
      a6847973
  12. 13 Sep, 2016 2 commits