cuPHY
0.1
CUDA PHY Layer Acceration Library
|
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... | |
typedef struct cuphyUciOnPuschCsi2Ctrl* cuphyUciOnPuschCsi2CtrlHndl_t |
cuPHY uciOnPuschCsi2Ctrl handle
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
pUciOnPuschCsi2CtrlHndl | - Address to return the new uciOnPuschCsi2Ctrl instance |
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyUciOnPuschSegLLRs2GetDescrInfo,cuphySetupUciOnPuschSegLLRs2
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.
uciOnPuschCsi2CtrlHndl | - handle to previously allocated instance |
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.
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 |
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.
pDynDescrSizeBytes | - Size in bytes of dynamic descriptor |
pDynDescrAlignBytes | - Alignment in bytes of dynamic descriptor |