cuPHY  0.1
CUDA PHY Layer Acceration Library
Data Structures | Typedefs | Functions
uci on pusch: LLRs segmentation part 1. De-scrambles and segments SCH, HARQ, and CSI-PART1 LLRs

This section describes application programming interface for part 1 UCI on PUSCH deSegmentation. More...

Data Structures

struct  cuphyUciOnPuschSegLLRs1LaunchCfg_t
 

Typedefs

typedef struct cuphyUciOnPuschSegLLRs1 * cuphyUciOnPuschSegLLRs1Hndl_t
 

Functions

cuphyStatus_t cuphyCreateUciOnPuschSegLLRs1 (cuphyUciOnPuschSegLLRs1Hndl_t *pUciOnPuschSegLLRs1Hndl)
 Allocate and initialize a cuPHY uciOnPuschSegLLRs1 object. More...
 
cuphyStatus_t cuphyDestroyUciOnPuschSegLLRs1 (cuphyUciOnPuschSegLLRs1Hndl_t uciOnPuschSegLLRs1Hndl)
 Destroys a cuPHY uciOnPuschSegLLRs1 object. More...
 
cuphyStatus_t cuphySetupUciOnPuschSegLLRs1 (cuphyUciOnPuschSegLLRs1Hndl_t uciOnPuschSegLLRs1Hndl, uint16_t nUciUes, uint16_t *pUciUserIdxs, PerTbParams *pTbPrmsCpu, PerTbParams *pTbPrmsGpu, uint16_t nUeGrps, cuphyTensorPrm_t *pTensorPrmsEqOutLLRs, uint16_t *pNumPrbs, uint8_t startSym, uint8_t nPuschSym, uint8_t nPuschDataSym, uint8_t *pDataSymIdxs, uint8_t nPuschDmrsSym, uint8_t *pDmrsSymIdxs, void *pCpuDynDesc, void *pGpuDynDesc, uint8_t enableCpuToGpuDescrAsyncCpy, cuphyUciOnPuschSegLLRs1LaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY uciOnPuschSegLLRs1 for slot processing. More...
 
cuphyStatus_t cuphyUciOnPuschSegLLRs1GetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute uciOnPuschSegLLRs1 descriptor buffer sizes and alignments. More...
 

Detailed Description

Typedef Documentation

◆ cuphyUciOnPuschSegLLRs1Hndl_t

typedef struct cuphyUciOnPuschSegLLRs1* cuphyUciOnPuschSegLLRs1Hndl_t

cuPHY uciOnPuschSegLLRs1 handle

Function Documentation

◆ cuphyCreateUciOnPuschSegLLRs1()

cuphyStatus_t cuphyCreateUciOnPuschSegLLRs1 ( cuphyUciOnPuschSegLLRs1Hndl_t pUciOnPuschSegLLRs1Hndl)

Allocates a uciOnPuschSegLLRs1 object and returns a handle in the address provided by the caller.

Returns CUPHY_STATUS_INVALID_ARGUMENT if pUciOnPuschSegLLRs1Hndl is NULL.

Returns CUPHY_STATUS_ALLOC_FAILED if a uciOnPuschSegLLRs1 object cannot be allocated

Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful

Parameters
pUciOnPuschSegLLRs1Hndl- Address to return the new uciOnPuschSegLLRs1 instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_ALLOC_FAILED, CUPHY_STATUS_INVALID_ARGUMENT

cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyUciOnPuschSegLLRs1GetDescrInfo,cuphySetupUciOnPuschSegLLRs1

◆ cuphyDestroyUciOnPuschSegLLRs1()

cuphyStatus_t cuphyDestroyUciOnPuschSegLLRs1 ( cuphyUciOnPuschSegLLRs1Hndl_t  uciOnPuschSegLLRs1Hndl)

Destroys a cuPHY uciOnPuschSegLLRs1 object that was previously created by cuphyCreateUciOnPuschSegLLRs1. The handle provided to this function should not be used for any operations after this function returns.

Returns CUPHY_STATUS_INVALID_ARGUMENT if uciOnPuschSegLLRs1Hndl is NULL.

Returns CUPHY_STATUS_SUCCESS if destruction was successful.

Parameters
uciOnPuschSegLLRs1Hndl- handle to previously allocated compCwTreeTypes instance
Returns
CUPHY_STATUS_SUCCESS,q CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyUciOnPuschSegLLRs1GetDescrInfo,cuphyCreateUciOnPuschSegLLRs1,cuphySetupUciOnPuschSegLLRs1

◆ cuphySetupUciOnPuschSegLLRs1()

cuphyStatus_t cuphySetupUciOnPuschSegLLRs1 ( cuphyUciOnPuschSegLLRs1Hndl_t  uciOnPuschSegLLRs1Hndl,
uint16_t  nUciUes,
uint16_t *  pUciUserIdxs,
PerTbParams pTbPrmsCpu,
PerTbParams pTbPrmsGpu,
uint16_t  nUeGrps,
cuphyTensorPrm_t *  pTensorPrmsEqOutLLRs,
uint16_t *  pNumPrbs,
uint8_t  startSym,
uint8_t  nPuschSym,
uint8_t  nPuschDataSym,
uint8_t *  pDataSymIdxs,
uint8_t  nPuschDmrsSym,
uint8_t *  pDmrsSymIdxs,
void *  pCpuDynDesc,
void *  pGpuDynDesc,
uint8_t  enableCpuToGpuDescrAsyncCpy,
cuphyUciOnPuschSegLLRs1LaunchCfg_t pLaunchCfg,
cudaStream_t  strm 
)

Setup cuPHY uciOnPuschSegLLRs1 in preparation towards slot execution

Returns CUPHY_STATUS_SUCCESS if setup is successful.

Parameters
uciOnPuschSegLLRs1Hndl- handle of uciOnPuschSegLLRs1 instance
nUciUes- number of UEs bearing Uplink Control Information (UCI)
pUciUserIdxs- indices of UCI bearing UEs (index to resolve UE from set of all UEs being processed by PUSCH)
pTbPrmsCpu- address of Transport block parameters in CPU memory
pTbPrmsGpu- address of Transport block parameters in GPU memory
nUeGrps- number of UE groups to be processed
pTensorPrmsEqOutLLRs- tensor parameters for equalizer output LLRs
pNumPrbs- number of allocated PRBs
startSym- first symbol of PUSCH
nPuschSym- total number of PUSCH symbols
nPuschDataSym- number of PUSCH data symbols
pDataSymIdxs- symbol indices of PUSCH data symbols
nPuschDmrsSym- number of PUSCH DMRS symbols
pDmrsSymIdxs- symbol indices of PUSCH DMRS symbols
pCpuDynDesc- Pointer to dynamic descriptor in CPU memory
pGpuDynDesc- Pointer to dynamic descriptor in GPU memory
enableCpuToGpuDescrAsyncCpy- Flag when set enables async copy of CPU descriptor into GPU
pLaunchCfg- Pointer to channel estimation launch configurations
strm- CUDA stream for descriptor copy operation
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyUciOnPuschSegLLRs1GetDescrInfo,cuphyDestroyUciOnPuschSegLLRs1

◆ cuphyUciOnPuschSegLLRs1GetDescrInfo()

cuphyStatus_t cuphyUciOnPuschSegLLRs1GetDescrInfo ( size_t *  pDynDescrSizeBytes,
size_t *  pDynDescrAlignBytes 
)

Computes uciOnPuschSegLLRs1 descriptor buffer sizes and alignments. To be used by the caller to allocate these buffers (in CPU and GPU memories) and provide them to other uciOnPuschSegLLRs1 APIs

Returns CUPHY_STATUS_INVALID_ARGUMENT if pDynDescrSizeBytes and/or pDynDescrAlignBytes is NULL

Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful.

Parameters
pDynDescrSizeBytes- Size in bytes of dynamic descriptor
pDynDescrAlignBytes- Alignment in bytes of dynamic descriptor
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyCreateUciOnPuschSegLLRs1,cuphyDestroyUciOnPuschSegLLRs1