diff options
| author | Xavier Hernandez <xhernandez@datalab.es> | 2015-12-01 11:50:54 +0100 |
|---|---|---|
| committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2016-09-09 19:19:13 -0700 |
| commit | 05505c86e02a01ccd4ba2752de2bea4ebd9385a6 (patch) | |
| tree | 6103a92fc4b93b85783fd6e71d8c9a5fac7ea352 /xlators/cluster/ec/src/ec-galois.h | |
| parent | 213eadbb51ad1ff4b012113a8e1066b758a4e635 (diff) | |
cluster/ec: Add support for hardware acceleration
This patch implements functionalities for fast encoding/decoding
using hardware support. Currently optimized x86_64, SSE and AVX is
added.
Additionally this patch implements a caching mecanism for inverse
matrices to reduce computation time, as well as a new method for
computing the inverse that takes quadratic time instead of cubic.
Finally some unnecessary memory copies have been eliminated to
further increase performance.
>Change-Id: I26c75f26fb4201bd22b51335448ea4357235065a
>BUG: 1289922
>Signed-off-by: Xavier Hernandez <xhernandez@datalab.es>
>Reviewed-on: http://review.gluster.org/12837
>Tested-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
>Smoke: Gluster Build System <jenkins@build.gluster.org>
>NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
>CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
>Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
BUG: 1374841
Change-Id: I83731663922ed11ca84536deab5737463416e1e0
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: http://review.gluster.org/15455
Smoke: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Diffstat (limited to 'xlators/cluster/ec/src/ec-galois.h')
| -rw-r--r-- | xlators/cluster/ec/src/ec-galois.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/xlators/cluster/ec/src/ec-galois.h b/xlators/cluster/ec/src/ec-galois.h new file mode 100644 index 00000000000..02e6b6c1bc2 --- /dev/null +++ b/xlators/cluster/ec/src/ec-galois.h @@ -0,0 +1,26 @@ +/* + Copyright (c) 2015 DataLab, s.l. <http://www.datalab.es> + This file is part of GlusterFS. + + This file is licensed to you under your choice of the GNU Lesser + General Public License, version 3 or any later version (LGPLv3 or + later), or the GNU General Public License, version 2 (GPLv2), in all + cases as published by the Free Software Foundation. +*/ + +#ifndef __EC_GALOIS_H__ +#define __EC_GALOIS_H__ + +#include <inttypes.h> + +#include "ec-types.h" + +ec_gf_t *ec_gf_prepare(uint32_t bits, uint32_t mod); +void ec_gf_destroy(ec_gf_t *gf); + +uint32_t ec_gf_add(ec_gf_t *gf, uint32_t a, uint32_t b); +uint32_t ec_gf_mul(ec_gf_t *gf, uint32_t a, uint32_t b); +uint32_t ec_gf_div(ec_gf_t *gf, uint32_t a, uint32_t b); +uint32_t ec_gf_exp(ec_gf_t *gf, uint32_t a, uint32_t b); + +#endif /* __EC_GALOIS_H__ */ |
