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

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

Data Structures

struct  cuphyUciOnPuschSegLLRs2LaunchCfg_t
 

Typedefs

typedef struct cuphyUciOnPuschSegLLRs2 * cuphyUciOnPuschSegLLRs2Hndl_t
 

Functions

cuphyStatus_t cuphyCreateUciOnPuschSegLLRs2 (cuphyUciOnPuschSegLLRs2Hndl_t *pUciOnPuschSegLLRs2Hndl)
 Allocate and initialize a cuPHY uciOnPuschSegLLRs2 object. More...
 
cuphyStatus_t cuphyDestroyUciOnPuschSegLLRs2 (cuphyUciOnPuschSegLLRs2Hndl_t uciOnPuschSegLLRs2Hndl)
 Destroys a cuPHY uciOnPuschSegLLRs2 object. More...
 
cuphyStatus_t cuphySetupUciOnPuschSegLLRs2 (cuphyUciOnPuschSegLLRs2Hndl_t uciOnPuschSegLLRs2Hndl, uint16_t nCsi2Ues, uint16_t *pCsi2UeIdxs, PerTbParams *pTbPrmsCpu, PerTbParams *pTbPrmsGpu, uint16_t nUeGrps, cuphyTensorPrm_t *pTensorPrmsEqOutLLRs, cuphyPuschRxUeGrpPrms_t *pUeGrpPrmsCpu, cuphyPuschRxUeGrpPrms_t *pUeGrpPrmsGpu, void *pCpuDynDesc, void *pGpuDynDesc, uint8_t enableCpuToGpuDescrAsyncCpy, cuphyUciOnPuschSegLLRs2LaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY uciOnPuschSegLLRs2 for slot processing. More...
 
cuphyStatus_t cuphyUciOnPuschSegLLRs2GetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute uciOnPuschSegLLRs2 descriptor buffer sizes and alignments. More...
 

Detailed Description

Typedef Documentation

◆ cuphyUciOnPuschSegLLRs2Hndl_t

typedef struct cuphyUciOnPuschSegLLRs2* cuphyUciOnPuschSegLLRs2Hndl_t

cuPHY uciOnPuschSegLLRs1 handle

Function Documentation

◆ cuphyCreateUciOnPuschSegLLRs2()

cuphyStatus_t cuphyCreateUciOnPuschSegLLRs2 ( cuphyUciOnPuschSegLLRs2Hndl_t pUciOnPuschSegLLRs2Hndl)

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

Returns CUPHY_STATUS_INVALID_ARGUMENT if pUciOnPuschSegLLRs2Hndl is NULL.

Returns CUPHY_STATUS_ALLOC_FAILED if a uciOnPuschSegLLRs2 object cannot be allocated

Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful

Parameters
pUciOnPuschSegLLRs2Hndl- Address to return the new uciOnPuschSegLLRs2 instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_ALLOC_FAILED, CUPHY_STATUS_INVALID_ARGUMENT

cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyUciOnPuschSegLLRs2GetDescrInfo,cuphySetupUciOnPuschSegLLRs2

◆ cuphyDestroyUciOnPuschSegLLRs2()

cuphyStatus_t cuphyDestroyUciOnPuschSegLLRs2 ( cuphyUciOnPuschSegLLRs2Hndl_t  uciOnPuschSegLLRs2Hndl)

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

Returns CUPHY_STATUS_INVALID_ARGUMENT if uciOnPuschSegLLRs2Hndl is NULL.

Returns CUPHY_STATUS_SUCCESS if destruction was successful.

Parameters
uciOnPuschSegLLRs2Hndl- handle to previously allocated instance
Returns
CUPHY_STATUS_SUCCESS,q CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyUciOnPuschSegLLRs2GetDescrInfo,cuphyCreateUciOnPuschSegLLRs2,cuphySetupUciOnPuschSegLLRs2

◆ cuphySetupUciOnPuschSegLLRs2()

cuphyStatus_t cuphySetupUciOnPuschSegLLRs2 ( cuphyUciOnPuschSegLLRs2Hndl_t  uciOnPuschSegLLRs2Hndl,
uint16_t  nCsi2Ues,
uint16_t *  pCsi2UeIdxs,
PerTbParams pTbPrmsCpu,
PerTbParams pTbPrmsGpu,
uint16_t  nUeGrps,
cuphyTensorPrm_t *  pTensorPrmsEqOutLLRs,
cuphyPuschRxUeGrpPrms_t *  pUeGrpPrmsCpu,
cuphyPuschRxUeGrpPrms_t *  pUeGrpPrmsGpu,
void *  pCpuDynDesc,
void *  pGpuDynDesc,
uint8_t  enableCpuToGpuDescrAsyncCpy,
cuphyUciOnPuschSegLLRs2LaunchCfg_t pLaunchCfg,
cudaStream_t  strm 
)

Setup cuPHY uciOnPuschSegLLRs2 in preparation towards slot execution

Returns CUPHY_STATUS_SUCCESS if setup is successful.

Parameters
uciOnPuschSegLLRs2Hndl- handle of uciOnPuschSegLLRs2 instance
nCsi2Ues- number of UES bearing CSI part2 payload data
pCsi2UeIdxs- indices of CSI part2 payload 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
pUeGrpPrmsCpu- UE group parameters in CPU memory
pUeGrpPrmsGpu- UE group parameters in GPU memory
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,cuphyUciOnPuschSegLLRs2GetDescrInfo,cuphyDestroyUciOnPuschSegLLRs2

◆ cuphyUciOnPuschSegLLRs2GetDescrInfo()

cuphyStatus_t cuphyUciOnPuschSegLLRs2GetDescrInfo ( size_t *  pDynDescrSizeBytes,
size_t *  pDynDescrAlignBytes 
)

Computes uciOnPuschSegLLRs2 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 uciOnPuschSegLLRs2 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