cuPHY  0.1
CUDA PHY Layer Acceration Library
Data Structures | Typedefs | Functions
Noise-interference Estimation

This section describes the PUSCH noise-interference estimation functions of the cuPHY application programming interface. More...

Data Structures

struct  cuphyPuschRxNoiseIntfEstLaunchCfg_t
 

Typedefs

typedef struct cuphyPuschRxNoiseIntfEst * cuphyPuschRxNoiseIntfEstHndl_t
 

Functions

cuphyStatus_t cuphyCreatePuschRxNoiseIntfEst (cuphyPuschRxNoiseIntfEstHndl_t *pPuschRxNoiseIntfEstHndl)
 Allocate and initialize a cuPHY PuschRx noise-interference estimation object. More...
 
cuphyStatus_t cuphyDestroyPuschRxNoiseIntfEst (cuphyPuschRxNoiseIntfEstHndl_t puschRxNoiseIntfEstHndl)
 Destroys a cuPHY PUSCH noise-interference estimation object. More...
 
cuphyStatus_t cuphyPuschRxNoiseIntfEstGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute cuPHY PUSCH noise-interference estimation descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphySetupPuschRxNoiseIntfEst (cuphyPuschRxNoiseIntfEstHndl_t puschRxNoiseIntfEstHndl, cuphyPuschRxUeGrpPrms_t *pDrvdUeGrpPrmsCpu, cuphyPuschRxUeGrpPrms_t *pDrvdUeGrpPrmsGpu, uint16_t nUeGrps, uint16_t nMaxPrb, uint8_t enableCpuToGpuDescrAsyncCpy, void *pDynDescrsCpu, void *pDynDescrsGpu, cuphyPuschRxNoiseIntfEstLaunchCfgs_t *pLaunchCfgs, cudaStream_t strm)
 Setup cuPHY noise-interference estimation for slot processing. More...
 

Detailed Description

Typedef Documentation

◆ cuphyPuschRxNoiseIntfEstHndl_t

typedef struct cuphyPuschRxNoiseIntfEst* cuphyPuschRxNoiseIntfEstHndl_t

cuPHY PUSCH Receiver noise-interference estimation handle

Function Documentation

◆ cuphyCreatePuschRxNoiseIntfEst()

cuphyStatus_t cuphyCreatePuschRxNoiseIntfEst ( cuphyPuschRxNoiseIntfEstHndl_t pPuschRxNoiseIntfEstHndl)

Allocates a cuPHY PUSCH noise-interference estimation object and returns a handle in the address provided by the caller.

Returns CUPHY_STATUS_INVALID_ARGUMENT if pPuschRxNoiseIntfEstHndl is NULL.

Returns CUPHY_STATUS_ALLOC_FAILED if a PuschRxNoiseIntfEst object cannot be allocated

Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful

Parameters
pPuschRxNoiseIntfEstHndl- Address to return the new PuschRxNoiseIntfEst instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_ALLOC_FAILED, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPuschRxNoiseIntfEstGetDescrInfo,cuphySetupPuschRxNoiseIntfEst,cuphyDestroyPuschRxNoiseIntfEst

◆ cuphyDestroyPuschRxNoiseIntfEst()

cuphyStatus_t cuphyDestroyPuschRxNoiseIntfEst ( cuphyPuschRxNoiseIntfEstHndl_t  puschRxNoiseIntfEstHndl)

Destroys a cuPHY PUSCH noise-interference estimation object that was previously created by cuphyCreatePuschRxNoiseIntfEst. The handle provided to this function should not be used for any operations after this function returns.

Returns CUPHY_STATUS_INVALID_ARGUMENT if puschRxNoiseIntfEstHndl is NULL.

Returns CUPHY_STATUS_SUCCESS if destruction was successful.

Parameters
puschRxNoiseIntfEstHndl- handle to previously allocated PuschRxNoiseIntfEst instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPuschRxNoiseIntfEstGetDescrInfo,cuphyCreatePuschRxNoiseIntfEst,cuphySetupPuschRxNoiseIntfEst

◆ cuphyPuschRxNoiseIntfEstGetDescrInfo()

cuphyStatus_t cuphyPuschRxNoiseIntfEstGetDescrInfo ( size_t *  pDynDescrSizeBytes,
size_t *  pDynDescrAlignBytes 
)

Computes cuPHY PUSCH noise-interference estimation 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 PuschRxNoiseIntfEst 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,cuphyCreatePuschRxNoiseIntfEst,cuphyDestroyPuschRxNoiseIntfEst

◆ cuphySetupPuschRxNoiseIntfEst()

cuphyStatus_t cuphySetupPuschRxNoiseIntfEst ( cuphyPuschRxNoiseIntfEstHndl_t  puschRxNoiseIntfEstHndl,
cuphyPuschRxUeGrpPrms_t *  pDrvdUeGrpPrmsCpu,
cuphyPuschRxUeGrpPrms_t *  pDrvdUeGrpPrmsGpu,
uint16_t  nUeGrps,
uint16_t  nMaxPrb,
uint8_t  enableCpuToGpuDescrAsyncCpy,
void *  pDynDescrsCpu,
void *  pDynDescrsGpu,
cuphyPuschRxNoiseIntfEstLaunchCfgs_t *  pLaunchCfgs,
cudaStream_t  strm 
)

Setup cuPHY PUSCH noise-interference estimation in preparation towards slot execution

Returns CUPHY_STATUS_SUCCESS if setup is successful.

Returns CUPHY_STATUS_INVALID_ARGUMENT if puschRxNoiseIntfEstHndl and/or and/or pDynDescrsCpu and/or pDynDescrsGpu is NULL.

Parameters
puschRxNoiseIntfEstHndl- Handle to previously created PuschRxNoiseIntfEst instance
pDrvdUeGrpPrmsCpu- Pointer to derived UE groups parameters in CPU memory
pDrvdUeGrpPrmsGpu- Pointer to derived UE groups parameters in GPU memory
nUeGrps- number of UE groups to be processed
nMaxPrb- maximum number of PRBs across UE groups
enableCpuToGpuDescrAsyncCpy- Flag when set enables async copy of CPU descriptor into GPU
pDynDescrsCpu- Pointer to dynamic descriptors in CPU memory
pDynDescrsGpu- Pointer to dynamic descriptors in GPU memory
pLaunchCfgs- Pointer to noise-interference estimation launch configurations
strm- CUDA stream for descriptor copy operation
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPuschRxNoiseIntfEstGetDescrInfo,cuphyCreatePuschRxNoiseIntfEst,cuphyDestroyPuschRxNoiseIntfEst