file generated for CN processing according to the values of Z | version for AVX2 and AVX512

This commit is contained in:
Sy
2020-05-23 21:39:17 +02:00
parent ad32b6108e
commit 140fa111c4
126 changed files with 239641 additions and 3626 deletions
@@ -8,20 +8,20 @@ OBJ= $(SRC:.c=.o)
all: $(EXEC)
cnProc_gen_avx2: $(OBJ)
$(CC) -o $@ $^ $(LDFLAGS) -O2 -pg
@$(CC) -o $@ $^ $(LDFLAGS) -O2
main.o: cnProc_gen_avx2.h
#main.o: cnProc_gen_avx2.h
%.o: %.c
$(CC) -o $@ -c $< $(CFLAGS) -I ${OPENAIR_HOME}/openair1 -g -pg
@$(CC) -o $@ -c $< $(CFLAGS) -I ${OPENAIR_HOME}/openair1 -g
.PHONY: clean mrproper
clean:
rm -rf *.o
@rm -rf *.o
mrproper: clean
rm -rf $(EXEC)
@rm -rf $(EXEC)
zip:
tar -zcvf sauvegarde.tar.gz main.c cnProc_gen_avx2.c cnProc_gen_avx2.h Makefile
@tar -zcvf sauvegarde.tar.gz main.c cnProc_gen_avx2.c cnProc_gen_avx2.h Makefile
@@ -3,7 +3,7 @@
#include "../../nrLDPCdecoder_defs.h"
#include "../../nrLDPC_types.h"
#include "../../nrLDPC_bnProc.h"
#include "cnProc_gen_avx2.h"
//#include "cnProc_gen_avx2.h"
void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R)
{
@@ -12,12 +12,12 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R)
if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();}
// system("mkdir -p ldpc_gen_files");
// system("mkdir -p ldpc_gen_files/avx2");
char fname[50];
sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_%s_AVX2.c",Z,ratestr[R]);
sprintf(fname,"../ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z%d_%s_AVX2.c",Z,ratestr[R]);
FILE *fd=fopen(fname,"w");
if (fd == NULL) {printf("Cannot create %s\n");abort();}
if (fd == NULL) {printf("Cannot create \n");abort();}
fprintf(fd,"#include <stdint.h>\n");
fprintf(fd,"#include <immintrin.h>\n");
@@ -79,7 +79,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R)
//p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]];
// Loop over every BN
int iprime=0;
for (j=0; j<3; j++)
{
// Set of results pointer to correct BN address
@@ -165,7 +165,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R)
//p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<4; j++)
{
// Set of results pointer to correct BN address
@@ -230,7 +230,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R)
//p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<5; j++)
{
// Set of results pointer to correct BN address
@@ -295,7 +295,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R)
//p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<6; j++)
{
// Set of results pointer to correct BN address
@@ -363,7 +363,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R)
//p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<7; j++)
{
// Set of results pointer to correct BN address
@@ -432,7 +432,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R)
//p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<8; j++)
{
// Set of results pointer to correct BN address
@@ -502,7 +502,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R)
//p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<9; j++)
{
// Set of results pointer to correct BN address
@@ -572,7 +572,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R)
//p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<10; j++)
{
// Set of results pointer to correct BN address
@@ -645,7 +645,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R)
//p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<19; j++)
{
// Set of results pointer to correct BN address
@@ -1,6 +0,0 @@
#ifndef NRLDPC_CN_GEN
#define NRLDPC_CN_GEN
void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R);
#endif
@@ -2,16 +2,18 @@
#include <immintrin.h>
#include "../../nrLDPC_types.h"
#include "../../nrLDPC_init.h"
#include "../../nrLDPC_bnProc.h"
#include "cnProc_gen_avx2.h"
int main(int argc, char *argv [])
#define NB_Z 51
void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t,int);
int main()
{
// Z=384, R=1/3
nrLDPC_cnProc_BG1_generator_AVX2(384,0);
uint16_t Z[NB_Z]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384};
for(int i=0; i<NB_Z;i++){
nrLDPC_cnProc_BG1_generator_AVX2(Z[i],0);
}
return(0);
}
@@ -8,20 +8,20 @@ OBJ= $(SRC:.c=.o)
all: $(EXEC)
cnProc_gen_avx512: $(OBJ)
$(CC) -o $@ $^ $(LDFLAGS) -O2 -pg
@$(CC) -o $@ $^ $(LDFLAGS) -O2
main.o: cnProc_gen_avx512.h
#main.o: cnProc_gen_avx512.h
%.o: %.c
$(CC) -o $@ -c $< $(CFLAGS) -I ${OPENAIR_HOME}/openair1 -g -pg
@$(CC) -o $@ -c $< $(CFLAGS) -I ${OPENAIR_HOME}/openair1 -g
.PHONY: clean mrproper
clean:
rm -rf *.o
@rm -rf *.o
mrproper: clean
rm -rf $(EXEC)
@rm -rf $(EXEC)
zip:
tar -zcvf sauvegarde.tar.gz main.c cnProc_gen_avx512.c cnProc_gen_avx512.h Makefile
tar -zcvf sauvegarde.tar.gz main.c cnProc_gen_avx512.c Makefile
@@ -3,7 +3,6 @@
#include "../../nrLDPCdecoder_defs.h"
#include "../../nrLDPC_types.h"
#include "../../nrLDPC_bnProc.h"
#include "cnProc_gen_avx512.h"
void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R)
{
@@ -12,12 +11,12 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R)
if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();}
// system("mkdir -p ldpc_gen_files");
// system("mkdir -p ../ldpc_gen_files");
char fname[50];
sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_%s_AVX512.c",Z,ratestr[R]);
FILE *fd=fopen(fname,"w");
if (fd == NULL) {printf("Cannot create %s\n");abort();}
if (fd == NULL) {printf("Cannot create \n");abort();}
fprintf(fd,"#include <stdint.h>\n");
fprintf(fd,"#include <immintrin.h>\n");
@@ -92,7 +91,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R)
//p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[0]];
// Loop over every BN
int iprime=0;
for (j=0; j<3; j++)
{
// Set of results pointer to correct BN address
@@ -178,7 +177,6 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R)
//p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<4; j++)
{
// Set of results pointer to correct BN address
@@ -243,7 +241,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R)
//p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<5; j++)
{
// Set of results pointer to correct BN address
@@ -308,7 +306,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R)
//p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<6; j++)
{
// Set of results pointer to correct BN address
@@ -375,7 +373,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R)
//p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<7; j++)
{
// Set of results pointer to correct BN address
@@ -443,7 +441,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R)
//p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<8; j++)
{
// Set of results pointer to correct BN address
@@ -512,7 +510,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R)
//p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<9; j++)
{
// Set of results pointer to correct BN address
@@ -582,7 +580,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R)
//p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<10; j++)
{
// Set of results pointer to correct BN address
@@ -655,7 +653,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R)
//p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
// Loop over every BN
int iprime=0;
for (j=0; j<19; j++)
{
// Set of results pointer to correct BN address
@@ -1,6 +0,0 @@
#ifndef NRLDPC_CN_GEN
#define NRLDPC_CN_GEN
void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R);
#endif
@@ -1,16 +1,24 @@
#include <stdio.h>
#include <immintrin.h>
//#include "../nrLDPCdecoder_defs.h"
#include "../../nrLDPC_types.h"
#include "../../nrLDPC_init.h"
#include "../../nrLDPC_bnProc.h"
#include "cnProc_gen_avx512.h"
int main(int argc, char *argv [])
#define NB_Z 51
void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t,int);
int main()
{
// Z=384, R=1/3
nrLDPC_cnProc_BG1_generator_AVX512(384,0);
uint16_t Z[NB_Z]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384};
for(int i=0; i<NB_Z;i++){
nrLDPC_cnProc_BG1_generator_AVX512(Z[i],0);
}
return(0);
}
@@ -1,5 +0,0 @@
#ifndef NR_CN_PROC_BG1_OPTIM
#define NR_CN_PROC_BG1_OPTIM
void nrLDPC_cnProc_BG1_Z384_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes);
void nrLDPC_cnProc_BG1_Z384_13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes);
#endif

Some files were not shown because too many files have changed in this diff Show More