AVX512 modifications for LDPC encoding: interleaving, ZC384 BG1, output formatting for encoder, segmentation (memcpy)
This commit is contained in:
committed by
Romain Beurdouche
parent
c07bfe6db5
commit
8964fdb6a2
@@ -37,7 +37,11 @@
|
||||
#include "common/utils/LOG/log.h"
|
||||
|
||||
|
||||
#ifdef __AVX512F__
|
||||
#include "ldpc384_simd512_byte.c"
|
||||
#else
|
||||
#include "ldpc384_byte.c"
|
||||
#endif
|
||||
#include "ldpc384_byte_128.c"
|
||||
#include "ldpc352_byte.c"
|
||||
#include "ldpc352_byte_128.c"
|
||||
@@ -87,7 +91,7 @@
|
||||
|
||||
static void encode_parity_check_part_optim(uint8_t *cc, uint8_t *d, short BG,short Zc,short Kb, int simd_size, int ncols)
|
||||
{
|
||||
unsigned char c[2 * 22 * Zc * simd_size] __attribute__((aligned(32))); //double size matrix of c
|
||||
unsigned char c[2 * 22 * Zc * simd_size] __attribute__((aligned(64))); //double size matrix of c
|
||||
for (int i1 = 0; i1 < ncols; i1++) {
|
||||
memcpy(&c[2 * i1 * Zc], &cc[i1 * Zc], Zc * sizeof(unsigned char));
|
||||
memcpy(&c[(2 * i1 + 1) * Zc], &cc[i1 * Zc], Zc * sizeof(unsigned char));
|
||||
@@ -95,7 +99,6 @@ static void encode_parity_check_part_optim(uint8_t *cc, uint8_t *d, short BG,sho
|
||||
for (int i1 = 1; i1 < simd_size; i1++) {
|
||||
memcpy(&c[(2 * ncols * Zc * i1)], &c[i1], (2 * ncols * Zc * sizeof(unsigned char)) - i1);
|
||||
}
|
||||
|
||||
if (BG == 1) {
|
||||
switch (Zc) {
|
||||
case 176:
|
||||
|
||||
Reference in New Issue
Block a user