cuPHY  0.1
CUDA PHY Layer Acceration Library
Data Structures | Typedefs | Functions
uci on pusch: computes number of CSI-P2 bits. Setups CSI-P2 backend.

This section describes application programming interface for the uciOnPusch CSI-P2 control kernel. More...

Data Structures

struct  cuphyUciOnPuschCsi2CtrlLaunchCfg_t
 

Typedefs

typedef struct cuphyUciOnPuschCsi2Ctrl * cuphyUciOnPuschCsi2CtrlHndl_t
 

Functions

cuphyStatus_t cuphyCreateUciOnPuschCsi2Ctrl (cuphyUciOnPuschCsi2CtrlHndl_t *pUciOnPuschCsi2CtrlHndl)
 Allocate and initialize a cuPHY uciOnPuschCsi2Ctrl object. More...
 
cuphyStatus_t cuphyDestroyUciOnPuschCsi2Ctrl (cuphyUciOnPuschCsi2CtrlHndl_t uciOnPuschCsi2CtrlHndl)
 Destroys a cuPHY uciOnPuschCsi2Ctrl object. More...
 
cuphyStatus_t cuphySetupUciOnPuschCsi2Ctrl (cuphyUciOnPuschCsi2CtrlHndl_t uciOnPuschCsi2CtrlHndl, uint16_t nCsi2Ues, uint16_t *pCsi2UeIdxsCpu, PerTbParams *pTbPrmsCpu, PerTbParams *pTbPrmsGpu, cuphyPuschRxUeGrpPrms_t *pUeGrpPrmsCpu, cuphyPuschCellStatPrm_t *pCellStatPrmsGpu, cuphyUciOnPuschOutOffsets_t *pUciOnPuschOutOffsetsCpu, uint8_t *pUciPayloadsGpu, uint16_t *pNumCsi2BitsGpu, cuphyPolarUciSegPrm_t *pCsi2PolarSegPrmsGpu, cuphyPolarCwPrm_t *pCsi2PolarCwPrmsGpu, cuphyRmCwPrm_t *pCsi2RmCwPrmsGpu, cuphySimplexCwPrm_t *pCsi2SpxCwPrmsGpu, void *pCpuDynDesc, void *pGpuDynDesc, uint8_t enableCpuToGpuDescrAsyncCpy, cuphyUciOnPuschCsi2CtrlLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY uciOnPuschCsi2Ctrl for slot processing. More...
 
cuphyStatus_t cuphyUciOnPuschCsi2CtrlGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute uciOnPuschCsi2Ctrl descriptor buffer sizes and alignments. More...
 

Detailed Description

Typedef Documentation

◆ cuphyUciOnPuschCsi2CtrlHndl_t

typedef struct cuphyUciOnPuschCsi2Ctrl* cuphyUciOnPuschCsi2CtrlHndl_t

cuPHY uciOnPuschCsi2Ctrl handle

Function Documentation

◆ cuphyCreateUciOnPuschCsi2Ctrl()

cuphyStatus_t cuphyCreateUciOnPuschCsi2Ctrl ( cuphyUciOnPuschCsi2CtrlHndl_t pUciOnPuschCsi2CtrlHndl)

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

Returns CUPHY_STATUS_INVALID_ARGUMENT if pUciOnPuschCsi2CtrlHndl is NULL.

Returns CUPHY_STATUS_ALLOC_FAILED if a uciOnPuschCsi2Ctrl object cannot be allocated

Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful

Parameters
pUciOnPuschCsi2CtrlHndl- Address to return the new uciOnPuschCsi2Ctrl instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_ALLOC_FAILED, CUPHY_STATUS_INVALID_ARGUMENT

cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyUciOnPuschSegLLRs2GetDescrInfo,cuphySetupUciOnPuschSegLLRs2

◆ cuphyDestroyUciOnPuschCsi2Ctrl()

cuphyStatus_t cuphyDestroyUciOnPuschCsi2Ctrl ( cuphyUciOnPuschCsi2CtrlHndl_t  uciOnPuschCsi2CtrlHndl)

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

Returns CUPHY_STATUS_INVALID_ARGUMENT if uciOnPuschCsi2CtrlHndl is NULL.

Returns CUPHY_STATUS_SUCCESS if destruction was successful.

Parameters
uciOnPuschCsi2CtrlHndl- handle to previously allocated instance
Returns
CUPHY_STATUS_SUCCESS,q CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyUciOnPuschCsi2CtrlGetDescrInfo,cuphyCreateUciOnPuschCsi2Ctrl,cuphySetupUciOnPuschCsi2Ctrl

◆ cuphySetupUciOnPuschCsi2Ctrl()

cuphyStatus_t cuphySetupUciOnPuschCsi2Ctrl ( cuphyUciOnPuschCsi2CtrlHndl_t  uciOnPuschCsi2CtrlHndl,
uint16_t  nCsi2Ues,
uint16_t *  pCsi2UeIdxsCpu,
PerTbParams pTbPrmsCpu,
PerTbParams pTbPrmsGpu,
cuphyPuschRxUeGrpPrms_t *  pUeGrpPrmsCpu,
cuphyPuschCellStatPrm_t *  pCellStatPrmsGpu,
cuphyUciOnPuschOutOffsets_t *  pUciOnPuschOutOffsetsCpu,
uint8_t *  pUciPayloadsGpu,
uint16_t *  pNumCsi2BitsGpu,
cuphyPolarUciSegPrm_t *  pCsi2PolarSegPrmsGpu,
cuphyPolarCwPrm_t *  pCsi2PolarCwPrmsGpu,
cuphyRmCwPrm_t *  pCsi2RmCwPrmsGpu,
cuphySimplexCwPrm_t *  pCsi2SpxCwPrmsGpu,
void *  pCpuDynDesc,
void *  pGpuDynDesc,
uint8_t  enableCpuToGpuDescrAsyncCpy,
cuphyUciOnPuschCsi2CtrlLaunchCfg_t pLaunchCfg,
cudaStream_t  strm 
)

Setup cuPHY uciOnPuschCsi2Ctrl in preparation towards slot execution

Returns CUPHY_STATUS_SUCCESS if setup is successful.

Parameters
uciOnPuschCsi2CtrlHndl- Handle for PUSCH CSI part 2 component instance
nCsi2Ues- number of UES bearing CSI part2 payload
pCsi2UeIdxsCpu- indices of CSI part2 payload bearing UEs in CPU memory (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
pUeGrpPrmsCpu- UE group parameters in CPU memory
pCellStatPrmsGpu- cell static parameters specific to PUSCH pipeline
pUciOnPuschOutOffsetsCpu- pointer to any array of structures containing per UE offsets for locating PUSCH outputs
pUciPayloadsGpu- pointer to UCI payloads in GPU
pNumCsi2BitsGpu- pointer to array containing number of CSI part2 payload bits
pCsi2PolarSegPrmsGpu- pointer to parameters for polar encoded UCI segment
pCsi2PolarCwPrmsGpu- pointer to parameters for polar code words
pCsi2RmCwPrmsGpu- Reed-muller decoder code word parameters in GPU memory
pCsi2SpxCwPrmsGpu- simplex decoder code word 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,cuphyUciOnPuschCsi2CtrlGetDescrInfo,cuphyDestroyUciOnPuschCsi2Ctrl

◆ cuphyUciOnPuschCsi2CtrlGetDescrInfo()

cuphyStatus_t cuphyUciOnPuschCsi2CtrlGetDescrInfo ( size_t *  pDynDescrSizeBytes,
size_t *  pDynDescrAlignBytes 
)

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