Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Michael Black
OpenXG UE
Commits
3b20e4e3
Commit
3b20e4e3
authored
Jun 16, 2020
by
Raphael Defosseux
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NCTU_GPU_ldpctest' into develop_integration_2020_w24
parents
5f4b3575
1bb92c5c
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
2 additions
and
408 deletions
+2
-408
openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_decoder_LYC.cu
openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_decoder_LYC.cu
+2
-2
openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_decoder_LYC.h
openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_decoder_LYC.h
+0
-2
openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_defs.h
openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_defs.h
+0
-212
openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_init_mem.h
openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_init_mem.h
+0
-86
openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_types.h
openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_types.h
+0
-106
No files found.
openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_decoder_LYC.cu
View file @
3b20e4e3
...
...
@@ -12,8 +12,8 @@
#include <unistd.h>
#include <cuda_runtime.h>
#include <cuda.h>
#include "PHY/CODING/nrLDPC_decoder
_LYC
/nrLDPC_types.h"
#include "PHY/CODING/nrLDPC_decoder
_LYC/nrLDPC
_defs.h"
#include "PHY/CODING/nrLDPC_decoder/nrLDPC_types.h"
#include "PHY/CODING/nrLDPC_decoder
/nrLDPCdecoder
_defs.h"
#include "bgs/BG1_I0"
#include "bgs/BG1_I1"
...
...
openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_decoder_LYC.h
View file @
3b20e4e3
#ifndef __NR_LDPC_DECODER_LYC__H__
#define __NR_LDPC_DECODER_LYC__H__
#include "nrLDPC_types.h"
#include "nrLDPC_init_mem.h"
/*! \file PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_decoder_LYC.h
* \brief LDPC cuda support BG1 all length
...
...
openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_defs.h
deleted
100644 → 0
View file @
5f4b3575
This diff is collapsed.
Click to expand it.
openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_init_mem.h
deleted
100644 → 0
View file @
5f4b3575
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*!\file nrLDPC_init_mem.h
* \brief Defines the function to initialize the LDPC decoder and sets correct LUTs.
* \author Sebastian Wagner (TCL Communications) Email: <mailto:sebastian.wagner@tcl.com>
* \date 07-12-2018
* \version 1.0
* \note
* \warning
*/
#ifndef __NR_LDPC_DECODER_LYC__NR_LDPC_INIT_MEM__H__
#define __NR_LDPC_DECODER_LYC__NR_LDPC_INIT_MEM__H__
#include <stdlib.h>
#include "nrLDPC_defs.h"
#include "nrLDPC_types.h"
#ifndef malloc32_clear
/**
\brief Allocates 32 byte aligned memory and initializes to zero
\param size Input size in bytes
\return Pointer to memory
*/
static
inline
void
*
malloc32_clear
(
size_t
size
)
{
void
*
ptr
=
(
void
*
)
memalign
(
32
,
size
+
32
);
memset
(
ptr
,
0
,
size
);
return
ptr
;
}
#endif
/**
\brief Allocates and initializes the internal decoder processing buffers
\param p_decParams Pointer to decoder parameters
\param p_lut Pointer to decoder LUTs
\return Number of LLR values
*/
static
inline
t_nrLDPC_procBuf
*
nrLDPC_init_mem
(
void
)
{
t_nrLDPC_procBuf
*
p_procBuf
=
(
t_nrLDPC_procBuf
*
)
malloc32_clear
(
sizeof
(
t_nrLDPC_procBuf
));
if
(
p_procBuf
)
{
p_procBuf
->
cnProcBuf
=
(
int8_t
*
)
malloc32_clear
(
NR_LDPC_SIZE_CN_PROC_BUF
*
sizeof
(
int8_t
));
p_procBuf
->
cnProcBufRes
=
(
int8_t
*
)
malloc32_clear
(
NR_LDPC_SIZE_CN_PROC_BUF
*
sizeof
(
int8_t
));
p_procBuf
->
bnProcBuf
=
(
int8_t
*
)
malloc32_clear
(
NR_LDPC_SIZE_BN_PROC_BUF
*
sizeof
(
int8_t
));
p_procBuf
->
bnProcBufRes
=
(
int8_t
*
)
malloc32_clear
(
NR_LDPC_SIZE_BN_PROC_BUF
*
sizeof
(
int8_t
));
p_procBuf
->
llrRes
=
(
int8_t
*
)
malloc32_clear
(
NR_LDPC_MAX_NUM_LLR
*
sizeof
(
int8_t
));
p_procBuf
->
llrProcBuf
=
(
int8_t
*
)
malloc32_clear
(
NR_LDPC_MAX_NUM_LLR
*
sizeof
(
int8_t
));
}
return
(
p_procBuf
);
}
static
inline
void
nrLDPC_free_mem
(
t_nrLDPC_procBuf
*
p_procBuf
)
{
free
(
p_procBuf
->
cnProcBuf
);
free
(
p_procBuf
->
cnProcBufRes
);
free
(
p_procBuf
->
bnProcBuf
);
free
(
p_procBuf
->
bnProcBufRes
);
free
(
p_procBuf
->
llrRes
);
free
(
p_procBuf
->
llrProcBuf
);
free
(
p_procBuf
);
}
#endif
openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_types.h
deleted
100644 → 0
View file @
5f4b3575
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*!\file nrLDPC_types.h
* \brief Defines all types for the LDPC decoder
* \author Sebastian Wagner (TCL Communications) Email: <mailto:sebastian.wagner@tcl.com>
* \date 27-03-2018
* \version 1.0
* \note
* \warning
*/
#ifndef __NR_LDPC_DECODER_LYC__NR_LDPC_TYPES__H__
#define __NR_LDPC_DECODER_LYC__NR_LDPC_TYPES__H__
#include "PHY/TOOLS/time_meas.h"
#include "nrLDPC_defs.h"
// ==============================================================================
// TYPES
/**
Structure containing the pointers to the LUTs.
*/
typedef
struct
nrLDPC_lut
{
const
uint32_t
*
startAddrCnGroups
;
/**< Start addresses for CN groups in CN processing buffer */
const
uint8_t
*
numCnInCnGroups
;
/**< Number of CNs in every CN group */
const
uint8_t
*
numBnInBnGroups
;
/**< Number of CNs in every BN group */
const
uint32_t
*
startAddrBnGroups
;
/**< Start addresses for BN groups in BN processing buffer */
const
uint16_t
*
startAddrBnGroupsLlr
;
/**< Start addresses for BN groups in LLR processing buffer */
const
uint16_t
**
circShift
[
NR_LDPC_NUM_CN_GROUPS_BG1
];
/**< LUT for circular shift values for all CN groups and Zs */
const
uint32_t
**
startAddrBnProcBuf
[
NR_LDPC_NUM_CN_GROUPS_BG1
];
/**< LUT of start addresses of CN groups in BN proc buffer */
const
uint8_t
**
bnPosBnProcBuf
[
NR_LDPC_NUM_CN_GROUPS_BG1
];
/**< LUT of BN positions in BG for CN groups */
const
uint16_t
*
llr2llrProcBufAddr
;
/**< LUT for transferring input LLRs to LLR processing buffer */
const
uint8_t
*
llr2llrProcBufBnPos
;
/**< LUT BN position in BG */
const
uint8_t
**
posBnInCnProcBuf
[
NR_LDPC_NUM_CN_GROUPS_BG1
];
/**< LUT for llr2cnProcBuf */
}
t_nrLDPC_lut
;
/**
Enum with possible LDPC output formats.
*/
typedef
enum
nrLDPC_outMode
{
nrLDPC_outMode_BIT
,
/**< 32 bits per uint32_t output */
nrLDPC_outMode_BITINT8
,
/**< 1 bit per int8_t output */
nrLDPC_outMode_LLRINT8
/**< Single LLR value per int8_t output */
}
e_nrLDPC_outMode
;
/**
Structure containing LDPC decoder parameters.
*/
typedef
struct
nrLDPC_dec_params
{
uint8_t
BG
;
/**< Base graph */
uint16_t
Z
;
/**< Lifting size */
uint8_t
R
;
/**< Decoding rate: Format 15,13,... for code rates 1/5, 1/3,... */
uint8_t
numMaxIter
;
/**< Maximum number of iterations */
e_nrLDPC_outMode
outMode
;
/**< Output format */
}
t_nrLDPC_dec_params
;
/**
Structure containing LDPC decoder processing time statistics.
*/
typedef
struct
nrLDPC_time_stats
{
time_stats_t
llr2llrProcBuf
;
/**< Statistics for function llr2llrProcBuf */
time_stats_t
llr2CnProcBuf
;
/**< Statistics for function llr2CnProcBuf */
time_stats_t
cnProc
;
/**< Statistics for function cnProc */
time_stats_t
cnProcPc
;
/**< Statistics for function cnProcPc */
time_stats_t
bnProcPc
;
/**< Statistics for function bnProcPc */
time_stats_t
bnProc
;
/**< Statistics for function bnProc */
time_stats_t
cn2bnProcBuf
;
/**< Statistics for function cn2bnProcBuf */
time_stats_t
bn2cnProcBuf
;
/**< Statistics for function bn2cnProcBuf */
time_stats_t
llrRes2llrOut
;
/**< Statistics for function llrRes2llrOut */
time_stats_t
llr2bit
;
/**< Statistics for function llr2bit */
time_stats_t
total
;
/**< Statistics for total processing time */
}
t_nrLDPC_time_stats
;
/**
Structure containing the processing buffers
*/
typedef
struct
nrLDPC_procBuf
{
int8_t
*
cnProcBuf
;
/**< CN processing buffer */
int8_t
*
cnProcBufRes
;
/**< Buffer for CN processing results */
int8_t
*
bnProcBuf
;
/**< BN processing buffer */
int8_t
*
bnProcBufRes
;
/**< Buffer for BN processing results */
int8_t
*
llrRes
;
/**< Buffer for LLR results */
int8_t
*
llrProcBuf
;
/**< LLR processing buffer */
}
t_nrLDPC_procBuf
;
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment