cuPHY  0.1
CUDA PHY Layer Acceration Library
Data Structures | Typedefs | Functions
PUCCH F3 receiver

This section describes the PUCCH F3 receiver functions of the cuPHY application programming interface. More...

Data Structures

struct  cuphyPucchF3RxLaunchCfg_t
 

Typedefs

typedef struct cuphyPucchF3Rx * cuphyPucchF3RxHndl_t
 

Functions

cuphyStatus_t cuphyCreatePucchF3Rx (cuphyPucchF3RxHndl_t *pPucchF3RxHndl, cudaStream_t strm)
 Allocate and initialize a cuPHY PucchF3Rx object. More...
 
cuphyStatus_t cuphyDestroyPucchF3Rx (cuphyPucchF3RxHndl_t pucchF3RxHndl)
 Destroys a cuPHY PUCCH F3 receiver object. More...
 
cuphyStatus_t cuphyPucchF3RxGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute cuPHY PUCCH F3 receiver descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphySetupPucchF3Rx (cuphyPucchF3RxHndl_t pucchF3RxHndl, cuphyTensorPrm_t *pDataRx, __half **pDescramLLRaddrs, uint8_t *pDTXflags, float *pSinr, float *pRssi, float *pRsrp, float *pInterf, float *pNoiseVar, uint16_t nCells, uint16_t nF3Ucis, cuphyPucchUciPrm_t *pF3UciPrms, cuphyPucchCellPrm_t *pCmnCellPrms, uint8_t enableCpuToGpuDescrAsyncCpy, void *pCpuDynDesc, void *pGpuDynDesc, cuphyPucchF3RxLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY PucchF3Rx for slot processing. More...
 

Detailed Description

Typedef Documentation

◆ cuphyPucchF3RxHndl_t

typedef struct cuphyPucchF3Rx* cuphyPucchF3RxHndl_t

cuPHY PUCCH F3 receiver handle

Function Documentation

◆ cuphyCreatePucchF3Rx()

cuphyStatus_t cuphyCreatePucchF3Rx ( cuphyPucchF3RxHndl_t pPucchF3RxHndl,
cudaStream_t  strm 
)

Allocates a cuPHY pucch F3 receiver object and returns a handle in the address provided by the caller.

Returns CUPHY_STATUS_INVALID_ARGUMENT if pPucchF3RxHndl is NULL.

Returns CUPHY_STATUS_ALLOC_FAILED if a pucchF3Rx object cannot be allocated

Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful

Parameters
pPucchF3RxHndl- Address to return the new pucchF3Rx instance
strm- CUDA stream for async copies
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_ALLOC_FAILED, CUPHY_STATUS_INVALID_ARGUMENT

cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPucchF3RxGetDescrInfo,cuphySetupPucchF3Rx

◆ cuphyDestroyPucchF3Rx()

cuphyStatus_t cuphyDestroyPucchF3Rx ( cuphyPucchF3RxHndl_t  pucchF3RxHndl)

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

Returns CUPHY_STATUS_INVALID_ARGUMENT if pucchF3RxHndl is NULL.

Returns CUPHY_STATUS_SUCCESS if destruction was successful.

Parameters
pucchF3RxHndl- handle to previously allocated pucchF3Rx instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPucchF3RxGetDescrInfo,cuphyCreatePucchF3Rx,cuphySetupPucchF3Rx

◆ cuphyPucchF3RxGetDescrInfo()

cuphyStatus_t cuphyPucchF3RxGetDescrInfo ( size_t *  pDynDescrSizeBytes,
size_t *  pDynDescrAlignBytes 
)

Computes cuPHY PUSCH PUCCH F3 receiver 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 PucchF3Rx 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,cuphyCreatePucchF3Rx,cuphyDestroyPucchF3Rx

◆ cuphySetupPucchF3Rx()

cuphyStatus_t cuphySetupPucchF3Rx ( cuphyPucchF3RxHndl_t  pucchF3RxHndl,
cuphyTensorPrm_t *  pDataRx,
__half **  pDescramLLRaddrs,
uint8_t *  pDTXflags,
float *  pSinr,
float *  pRssi,
float *  pRsrp,
float *  pInterf,
float *  pNoiseVar,
uint16_t  nCells,
uint16_t  nF3Ucis,
cuphyPucchUciPrm_t *  pF3UciPrms,
cuphyPucchCellPrm_t *  pCmnCellPrms,
uint8_t  enableCpuToGpuDescrAsyncCpy,
void *  pCpuDynDesc,
void *  pGpuDynDesc,
cuphyPucchF3RxLaunchCfg_t pLaunchCfg,
cudaStream_t  strm 
)

Setup cuPHY PUCCH F3 receiver in preparation towards slot execution

Returns CUPHY_STATUS_SUCCESS if setup is successful.

if(!pucchF3RxHndl || !pDataRx || !pDescramLLRaddrs || !pDTXflags || !pSinr || !pRssi || !pRsrp || !pInterf || !pNoiseVar || !pF3UciPrms || !pCmnCellPrms || !pCpuDynDesc || !pGpuDynDesc || !pLaunchCfg) Returns CUPHY_STATUS_INVALID_ARGUMENT if any of the following is NULL: pucchF3RxHndl, pDataRx, pDescramLLRaddrs, pDTXflags, pSinr, pRssi, pRsrp, pInterf, pNoiseVar, pF3UciPrms, pCmnCellPrms, pCpuDynDesc, pGpuDynDesc, pLaunchCfg

Parameters
pucchF3RxHndl- Handle to previously created PucchF3Rx instance
pDataRx- Pointer to received data tensor parameters
pDescramLLRaddrs- pointer to descrambled segment 1 LLR addresses
pDTXflags- pointer to DTX flag buffer
pSinr- pointer to SINR buffer
pRssi- pointer to RSSI buffer
pRsrp- pointer to RSRP buffer
pInterf- pointer to interference level buffer
pNoiseVar- pointer to Noise Var buffer
nCells- Number of cells
nF3Ucis- Number of F3 ucis to process
pF3UciPrms- Pointer to F3 uci parameters
pCmnCellPrms- Common cell parameters: number of gNB receive antennas, current slot number, gNB hopping ID
enableCpuToGpuDescrAsyncCpy- Flag when set enables async copy of CPU descriptor into GPU
pCpuDynDesc- Pointer to dynamic descriptor in CPU memory
pGpuDynDesc- Pointer to dynamic descriptor in GPU memory
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,cuphyPucchF3RxGetDescrInfo,cuphyDestroyPucchF3Rx