mirror of
https://github.com/amadvance/snapraid.git
synced 2026-10-26 19:01:57 -04:00
Add support for AVX2 GFNI
This commit is contained in:
parent
994c208315
commit
c4f9869f98
9 changed files with 1074 additions and 28 deletions
64
raid/test.c
64
raid/test.c
|
|
@ -134,7 +134,7 @@ int raid_test_sort(void)
|
|||
|
||||
int raid_test_rec(int mode, int nd, size_t size)
|
||||
{
|
||||
void (*f[RAID_PARITY_MAX][4])(
|
||||
void (*f[RAID_PARITY_MAX][128])(
|
||||
int nr, int *id, int *ip, int nd, size_t size, void **vbuf);
|
||||
void *v_alloc;
|
||||
void **v;
|
||||
|
|
@ -203,6 +203,16 @@ int raid_test_rec(int mode, int nd, size_t size)
|
|||
if (raid_cpu_has_avx512bw())
|
||||
f[i][nf[i]++] = raid_rec1_avx512bw;
|
||||
#endif
|
||||
#endif
|
||||
#ifdef USE_RAID_AES
|
||||
#ifdef CONFIG_AVX2GFNI
|
||||
if (raid_cpu_has_avx2gfni())
|
||||
f[i][nf[i]++] = raid_rec1_avx2gfni;
|
||||
#endif
|
||||
#ifdef CONFIG_AVX512GFNI
|
||||
if (raid_cpu_has_avx512gfni())
|
||||
f[i][nf[i]++] = raid_rec1_avx512gfni;
|
||||
#endif
|
||||
#endif
|
||||
} else if (i == 1) {
|
||||
f[i][nf[i]++] = raid_rec2_int8;
|
||||
|
|
@ -221,6 +231,16 @@ int raid_test_rec(int mode, int nd, size_t size)
|
|||
if (raid_cpu_has_avx512bw())
|
||||
f[i][nf[i]++] = raid_rec2_avx512bw;
|
||||
#endif
|
||||
#endif
|
||||
#ifdef USE_RAID_AES
|
||||
#ifdef CONFIG_AVX2GFNI
|
||||
if (raid_cpu_has_avx2gfni())
|
||||
f[i][nf[i]++] = raid_rec2_avx2gfni;
|
||||
#endif
|
||||
#ifdef CONFIG_AVX512GFNI
|
||||
if (raid_cpu_has_avx512gfni())
|
||||
f[i][nf[i]++] = raid_rec2_avx512gfni;
|
||||
#endif
|
||||
#endif
|
||||
} else {
|
||||
f[i][nf[i]++] = raid_recX_int8;
|
||||
|
|
@ -239,6 +259,16 @@ int raid_test_rec(int mode, int nd, size_t size)
|
|||
if (raid_cpu_has_avx512bw())
|
||||
f[i][nf[i]++] = raid_recX_avx512bw;
|
||||
#endif
|
||||
#endif
|
||||
#ifdef USE_RAID_AES
|
||||
#ifdef CONFIG_AVX2GFNI
|
||||
if (raid_cpu_has_avx2gfni())
|
||||
f[i][nf[i]++] = raid_recX_avx2gfni;
|
||||
#endif
|
||||
#ifdef CONFIG_AVX512GFNI
|
||||
if (raid_cpu_has_avx512gfni())
|
||||
f[i][nf[i]++] = raid_recX_avx512gfni;
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
@ -307,7 +337,7 @@ bail:
|
|||
|
||||
int raid_test_par(int mode, int nd, size_t size)
|
||||
{
|
||||
void (*f[64])(int nd, size_t size, void **vbuf);
|
||||
void (*f[128])(int nd, size_t size, void **vbuf);
|
||||
void *v_alloc;
|
||||
void **v;
|
||||
int nv;
|
||||
|
|
@ -381,6 +411,18 @@ int raid_test_par(int mode, int nd, size_t size)
|
|||
}
|
||||
#endif
|
||||
#endif
|
||||
#ifdef USE_RAID_AES
|
||||
#ifdef CONFIG_AVX2GFNI
|
||||
if (raid_cpu_has_avx2gfni()) {
|
||||
f[nf++] = raid_gen2_avx2gfni;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_AVX512GFNI
|
||||
if (raid_cpu_has_avx512gfni()) {
|
||||
f[nf++] = raid_gen2_avx512gfni;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
#endif /* CONFIG_X86 */
|
||||
|
||||
if (mode == RAID_MODE_CAUCHY) {
|
||||
|
|
@ -426,6 +468,24 @@ int raid_test_par(int mode, int nd, size_t size)
|
|||
}
|
||||
#endif
|
||||
#endif
|
||||
#ifdef USE_RAID_AES
|
||||
#ifdef CONFIG_AVX2GFNI
|
||||
if (raid_cpu_has_avx2gfni()) {
|
||||
f[nf++] = raid_gen3_avx2gfni;
|
||||
f[nf++] = raid_gen4_avx2gfni;
|
||||
f[nf++] = raid_gen5_avx2gfni;
|
||||
f[nf++] = raid_gen6_avx2gfni;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_AVX512GFNI
|
||||
if (raid_cpu_has_avx512gfni()) {
|
||||
f[nf++] = raid_gen3_avx512gfni;
|
||||
f[nf++] = raid_gen4_avx512gfni;
|
||||
f[nf++] = raid_gen5_avx512gfni;
|
||||
f[nf++] = raid_gen6_avx512gfni;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_X86 */
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue