cuPHY  0.1
CUDA PHY Layer Acceration Library
Data Structures | Typedefs | Functions
: segment UCI into HARQ, SR and CSI part 1 for PUCCH format 2, 3, 4.

This section describes application programming interface for the PUCCH format 2, 3, 4 UCI segmentation kernel. More...

Data Structures

struct  cuphyPucchF234UciSegLaunchCfg_t
 

Typedefs

typedef struct cuphyPucchF234UciSeg * cuphyPucchF234UciSegHndl_t
 

Functions

cuphyStatus_t cuphyCreatePucchF234UciSeg (cuphyPucchF234UciSegHndl_t *pPucchF234UciSegHndl)
 Allocate and initialize a cuPHY pucchF234UciSeg object. More...
 
cuphyStatus_t cuphyDestroyPucchF234UciSeg (cuphyPucchF234UciSegHndl_t pPucchF234UciSegHndl)
 Destroys a cuPHY pucchF234UciSeg object. More...
 
cuphyStatus_t cuphyPucchF234UciSegGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute pucchF234UciSeg descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphySetupPucchF234UciSeg (cuphyPucchF234UciSegHndl_t pucchF234UciSegHndl, uint16_t nF2Ucis, uint16_t nF3Ucis, cuphyPucchUciPrm_t *pF2UciPrms, cuphyPucchUciPrm_t *pF3UciPrms, cuphyPucchF234OutOffsets_t *&pF2OutOffsetsCpu, cuphyPucchF234OutOffsets_t *&pF3OutOffsetsCpu, uint8_t *uciPayloadsGpu, void *pCpuDynDesc, void *pGpuDynDesc, bool enableCpuToGpuDescrAsyncCpy, cuphyPucchF234UciSegLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY pucchF234UciSeg for slot processing. More...
 

Detailed Description

Typedef Documentation

◆ cuphyPucchF234UciSegHndl_t

typedef struct cuphyPucchF234UciSeg* cuphyPucchF234UciSegHndl_t

cuPHY pucchF234UciSeg handle

Function Documentation

◆ cuphyCreatePucchF234UciSeg()

cuphyStatus_t cuphyCreatePucchF234UciSeg ( cuphyPucchF234UciSegHndl_t pPucchF234UciSegHndl)

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

Returns CUPHY_STATUS_INVALID_ARGUMENT if pPucchF234UciSegHndl is NULL.

Returns CUPHY_STATUS_ALLOC_FAILED if a pucchF234UciSeg object cannot be allocated

Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful

Parameters
pPucchF234UciSegHndl- Address to return the new pucchF234UciSeg instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_ALLOC_FAILED, CUPHY_STATUS_INVALID_ARGUMENT

cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString

◆ cuphyDestroyPucchF234UciSeg()

cuphyStatus_t cuphyDestroyPucchF234UciSeg ( cuphyPucchF234UciSegHndl_t  pPucchF234UciSegHndl)

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

Returns CUPHY_STATUS_INVALID_ARGUMENT if pPucchF234UciSegHndl is NULL.

Returns CUPHY_STATUS_SUCCESS if destruction was successful.

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

◆ cuphyPucchF234UciSegGetDescrInfo()

cuphyStatus_t cuphyPucchF234UciSegGetDescrInfo ( size_t *  pDynDescrSizeBytes,
size_t *  pDynDescrAlignBytes 
)

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

◆ cuphySetupPucchF234UciSeg()

cuphyStatus_t cuphySetupPucchF234UciSeg ( cuphyPucchF234UciSegHndl_t  pucchF234UciSegHndl,
uint16_t  nF2Ucis,
uint16_t  nF3Ucis,
cuphyPucchUciPrm_t *  pF2UciPrms,
cuphyPucchUciPrm_t *  pF3UciPrms,
cuphyPucchF234OutOffsets_t *&  pF2OutOffsetsCpu,
cuphyPucchF234OutOffsets_t *&  pF3OutOffsetsCpu,
uint8_t *  uciPayloadsGpu,
void *  pCpuDynDesc,
void *  pGpuDynDesc,
bool  enableCpuToGpuDescrAsyncCpy,
cuphyPucchF234UciSegLaunchCfg_t pLaunchCfg,
cudaStream_t  strm 
)

Setup cuPHY pucchF234UciSeg in preparation towards slot execution

Returns CUPHY_STATUS_SUCCESS if setup is successful.

Parameters
pucchF234UciSegHndl- Handle for Pucch F2/F3/F4 UCI segmentation component instance
nF2Ucis- number of PF2 UCIs
nF3Ucis- number of PF3 UCIs
pF2UciPrms- address of PF2 UCI parameters in CPU memory
pF3UciPrms- address of PF3 UCI parameters in CPU memory
pF2OutOffsetsCpu- address of PF2 output offset parameters in CPU memory
pF3OutOffsetsCpu- address of PF3 output offset parameters in CPU memory
uciPayloadsGpu- address of decoded UCI payloads array
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