cuPHY
0.1
CUDA PHY Layer Acceration Library
|
This section describes application programming interface for the PUCCH format 3 CSI-P2 control kernel. More...
Data Structures | |
struct | cuphyPucchF3Csi2CtrlLaunchCfg_t |
Typedefs | |
typedef struct cuphyPucchF3Csi2Ctrl * | cuphyPucchF3Csi2CtrlHndl_t |
Functions | |
cuphyStatus_t | cuphyCreatePucchF3Csi2Ctrl (cuphyPucchF3Csi2CtrlHndl_t *pPucchF3Csi2CtrlHndl) |
Allocate and initialize a cuPHY pucchF3Csi2Ctrl object. More... | |
cuphyStatus_t | cuphyDestroyPucchF3Csi2Ctrl (cuphyPucchF3Csi2CtrlHndl_t pucchF3Csi2CtrlHndl) |
Destroys a cuPHY pucchF3Csi2Ctrl object. More... | |
cuphyStatus_t | cuphyPucchF3Csi2CtrlGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes) |
Helper to compute pucchF3Csi2Ctrl descriptor buffer sizes and alignments. More... | |
cuphyStatus_t | cuphySetupPucchF3Csi2Ctrl (cuphyPucchF3Csi2CtrlHndl_t pucchF3Csi2CtrlHndl, uint16_t nCsi2Ucis, uint16_t *pCsi2UciIdxsCpu, cuphyPucchUciPrm_t *pUciPrmsCpu, cuphyPucchUciPrm_t *pUciPrmsGpu, cuphyPucchCellStatPrm_t *pCellStatPrmsGpu, cuphyPucchF234OutOffsets_t *pPucchF3OutOffsetsCpu, uint8_t *pUciPayloadsGpu, uint16_t *pNumCsi2BitsGpu, cuphyPolarUciSegPrm_t *pCsi2PolarSegPrmsGpu, cuphyPolarCwPrm_t *pCsi2PolarCwPrmsGpu, cuphyRmCwPrm_t *pCsi2RmCwPrmsGpu, cuphySimplexCwPrm_t *pCsi2SpxCwPrmsGpu, void *pCpuDynDesc, void *pGpuDynDesc, bool enableCpuToGpuDescrAsyncCpy, cuphyPucchF3Csi2CtrlLaunchCfg_t *pLaunchCfg, cudaStream_t strm) |
Setup cuPHY pucchF3Csi2Ctrl for slot processing. More... | |
typedef struct cuphyPucchF3Csi2Ctrl* cuphyPucchF3Csi2CtrlHndl_t |
cuPHY pucchF3Csi2Ctrl handle
cuphyStatus_t cuphyCreatePucchF3Csi2Ctrl | ( | cuphyPucchF3Csi2CtrlHndl_t * | pPucchF3Csi2CtrlHndl | ) |
Allocates a pucchF3Csi2Ctrl object and returns a handle in the address provided by the caller.
Returns CUPHY_STATUS_INVALID_ARGUMENT if pPucchF3Csi2CtrlHndl
is NULL.
Returns CUPHY_STATUS_ALLOC_FAILED if a pucchF3Csi2Ctrl object cannot be allocated
Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful
pPucchF3Csi2CtrlHndl | - Address to return the new pucchF3Csi2Ctrl instance |
cuphyStatus_t cuphyDestroyPucchF3Csi2Ctrl | ( | cuphyPucchF3Csi2CtrlHndl_t | pucchF3Csi2CtrlHndl | ) |
Destroys a cuPHY pucchF3Csi2Ctrl object that was previously created by cuphyCreatePucchF3Csi2Ctrl. The handle provided to this function should not be used for any operations after this function returns.
Returns CUPHY_STATUS_INVALID_ARGUMENT if pucchF3Csi2CtrlHndl
is NULL.
Returns CUPHY_STATUS_SUCCESS if destruction was successful.
pucchF3Csi2CtrlHndl | - handle to previously allocated instance |
cuphyStatus_t cuphyPucchF3Csi2CtrlGetDescrInfo | ( | size_t * | pDynDescrSizeBytes, |
size_t * | pDynDescrAlignBytes | ||
) |
Computes pucchF3Csi2Ctrl 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 pucchF3Csi2Ctrl 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 |
cuphyStatus_t cuphySetupPucchF3Csi2Ctrl | ( | cuphyPucchF3Csi2CtrlHndl_t | pucchF3Csi2CtrlHndl, |
uint16_t | nCsi2Ucis, | ||
uint16_t * | pCsi2UciIdxsCpu, | ||
cuphyPucchUciPrm_t * | pUciPrmsCpu, | ||
cuphyPucchUciPrm_t * | pUciPrmsGpu, | ||
cuphyPucchCellStatPrm_t * | pCellStatPrmsGpu, | ||
cuphyPucchF234OutOffsets_t * | pPucchF3OutOffsetsCpu, | ||
uint8_t * | pUciPayloadsGpu, | ||
uint16_t * | pNumCsi2BitsGpu, | ||
cuphyPolarUciSegPrm_t * | pCsi2PolarSegPrmsGpu, | ||
cuphyPolarCwPrm_t * | pCsi2PolarCwPrmsGpu, | ||
cuphyRmCwPrm_t * | pCsi2RmCwPrmsGpu, | ||
cuphySimplexCwPrm_t * | pCsi2SpxCwPrmsGpu, | ||
void * | pCpuDynDesc, | ||
void * | pGpuDynDesc, | ||
bool | enableCpuToGpuDescrAsyncCpy, | ||
cuphyPucchF3Csi2CtrlLaunchCfg_t * | pLaunchCfg, | ||
cudaStream_t | strm | ||
) |
Setup cuPHY pucchF3Csi2Ctrl in preparation towards slot execution
Returns CUPHY_STATUS_SUCCESS if setup is successful.
pucchF3Csi2CtrlHndl | - Handle for Pucch F3 CSI part 2 component instance |
nCsi2Ucis | - number of UCIs bearing CSI part2 payload |
pCsi2UciIdxsCpu | - indices of CSI part2 payload bearing UCIs in CPU memory (index to resolve UCI from set of all UCIs being processed by PUCCH format 3) |
pUciPrmsCpu | - address of UCI parameters in CPU memory |
pUciPrmsGpu | - address of UCI parameters in GPU memory |
pCellStatPrmsGpu | - cell static parameters specific to PUCCH pipeline |
pPucchF3OutOffsetsCpu | - pointer to any array of structures containing per UCI offsets for locating PUCCH F3 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 launch configurations |
strm | - CUDA stream for descriptor copy operation |