cuPHY  0.1
CUDA PHY Layer Acceration Library
Data Structures | Typedefs | Functions
: computes number of CSI-P2 bits for PUCCH format 3. Setups CSI-P2 backend.

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...
 

Detailed Description

Typedef Documentation

◆ cuphyPucchF3Csi2CtrlHndl_t

typedef struct cuphyPucchF3Csi2Ctrl* cuphyPucchF3Csi2CtrlHndl_t

cuPHY pucchF3Csi2Ctrl handle

Function Documentation

◆ cuphyCreatePucchF3Csi2Ctrl()

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

Parameters
pPucchF3Csi2CtrlHndl- Address to return the new pucchF3Csi2Ctrl instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_ALLOC_FAILED, CUPHY_STATUS_INVALID_ARGUMENT

cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString

◆ cuphyDestroyPucchF3Csi2Ctrl()

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.

Parameters
pucchF3Csi2CtrlHndl- handle to previously allocated instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString

◆ cuphyPucchF3Csi2CtrlGetDescrInfo()

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.

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

◆ cuphySetupPucchF3Csi2Ctrl()

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.

Parameters
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
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString