cuPHY  0.1
CUDA PHY Layer Acceration Library
Data Structures | Typedefs | Functions
Carrier Frequency Offset and Timing Advance Estimation

This section describes the carrier frequency offset and timing advance estimation functions of the cuPHY application programming interface. More...

Data Structures

struct  cuphyPuschRxCfoTaEstLaunchCfg_t
 

Typedefs

typedef struct cuphyPuschRxCfoTaEst * cuphyPuschRxCfoTaEstHndl_t
 

Functions

cuphyStatus_t cuphyCreatePuschRxCfoTaEst (cuphyPuschRxCfoTaEstHndl_t *pPuschRxCfoTaEstHndl, uint8_t enableCpuToGpuDescrAsyncCpy, void *pStatDescrCpu, void *pStatDescrGpu, cudaStream_t strm)
 Allocate and initialize a cuPHY PuschRx CFO and TA estimation object. More...
 
cuphyStatus_t cuphyDestroyPuschRxCfoTaEst (cuphyPuschRxCfoTaEstHndl_t puschRxCfoTaEstHndl)
 Destroys a cuPHY PUSCH CFO estimation object. More...
 
cuphyStatus_t cuphyPuschRxCfoTaEstGetDescrInfo (size_t *pStatDescrSizeBytes, size_t *pStatDescrAlignBytes, size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute cuPHY CFO and TA estimation descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphySetupPuschRxCfoTaEst (cuphyPuschRxCfoTaEstHndl_t puschRxCfoTaEstHndl, cuphyPuschRxUeGrpPrms_t *pDrvdUeGrpPrmsCpu, cuphyPuschRxUeGrpPrms_t *pDrvdUeGrpPrmsGpu, uint16_t nUeGrps, uint32_t nMaxPrb, cuphyTensorPrm_t *pDbg, uint8_t enableCpuToGpuDescrAsyncCpy, void *pDynDescrsCpu, void *pDynDescrsGpu, cuphyPuschRxCfoTaEstLaunchCfgs_t *pLaunchCfgs, cudaStream_t strm)
 Setup cuPHY PuschRx CFO and TA estimation for slot processing. More...
 

Detailed Description

Typedef Documentation

◆ cuphyPuschRxCfoTaEstHndl_t

typedef struct cuphyPuschRxCfoTaEst* cuphyPuschRxCfoTaEstHndl_t

cuPHY PUSCH Receiver carrier frequency offset estimation handle

Function Documentation

◆ cuphyCreatePuschRxCfoTaEst()

cuphyStatus_t cuphyCreatePuschRxCfoTaEst ( cuphyPuschRxCfoTaEstHndl_t pPuschRxCfoTaEstHndl,
uint8_t  enableCpuToGpuDescrAsyncCpy,
void *  pStatDescrCpu,
void *  pStatDescrGpu,
cudaStream_t  strm 
)

Allocates a cuPHY carrier frequency offset and timing advance estimation object and returns a handle in the address provided by the caller.

Returns CUPHY_STATUS_INVALID_ARGUMENT if pPuschRxCfoTaEstHndl and/or pStatDescrCpu and/or pStatDescrGpu is NULL.

Returns CUPHY_STATUS_ALLOC_FAILED if a PuschRxCfoTaEst object cannot be allocated

Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful

Parameters
pPuschRxCfoTaEstHndl- Address to return the new PuschRxCfoTaEst instance
enableCpuToGpuDescrAsyncCpy- flag if non-zero enables async copy of CPU descriptor into GPU
pStatDescrCpu- Pointer to static descriptor in CPU memory
pStatDescrGpu- Pointer to static descriptor in GPU memory
strm- CUDA stream for descriptor copy operation
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_ALLOC_FAILED, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPuschRxCfoTaEstGetDescrInfo,cuphySetupPuschRxCfoTaEst,cuphyDestroyPuschRxCfoTaEst

◆ cuphyDestroyPuschRxCfoTaEst()

cuphyStatus_t cuphyDestroyPuschRxCfoTaEst ( cuphyPuschRxCfoTaEstHndl_t  puschRxCfoTaEstHndl)

Destroys a cuPHY PUSCH carrier frequency estimation object that was previously created by cuphyCreatePuschRxCfoTaEst. The handle provided to this function should not be used for any operations after this function returns.

Returns CUPHY_STATUS_INVALID_ARGUMENT if puschRxCfoTaEstHndl is NULL.

Returns CUPHY_STATUS_SUCCESS if destruction was successful.

Parameters
puschRxCfoTaEstHndl- handle to previously allocated PuschRxCfoTaEst instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPuschRxCfoTaEstGetDescrInfo,cuphyCreatePuschRxCfoTaEst,cuphySetupPuschRxCfoTaEst

◆ cuphyPuschRxCfoTaEstGetDescrInfo()

cuphyStatus_t cuphyPuschRxCfoTaEstGetDescrInfo ( size_t *  pStatDescrSizeBytes,
size_t *  pStatDescrAlignBytes,
size_t *  pDynDescrSizeBytes,
size_t *  pDynDescrAlignBytes 
)

Computes cuPHY PUSCH carrier frequency offset and timing advance 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 PuschRxCfoTaEst APIs

Returns CUPHY_STATUS_INVALID_ARGUMENT if pStatDescrSizeBytes and/or pStatDescrAlignBytes and/or pDynDescrSizeBytes and/or pDynDescrAlignBytes is NULL

Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful.

Parameters
pStatDescrSizeBytes- Size in bytes of static descriptor
pStatDescrAlignBytes- Alignment in bytes of static descriptor
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,cuphyCreatePuschRxCfoTaEst,cuphyDestroyPuschRxCfoTaEst

◆ cuphySetupPuschRxCfoTaEst()

cuphyStatus_t cuphySetupPuschRxCfoTaEst ( cuphyPuschRxCfoTaEstHndl_t  puschRxCfoTaEstHndl,
cuphyPuschRxUeGrpPrms_t *  pDrvdUeGrpPrmsCpu,
cuphyPuschRxUeGrpPrms_t *  pDrvdUeGrpPrmsGpu,
uint16_t  nUeGrps,
uint32_t  nMaxPrb,
cuphyTensorPrm_t *  pDbg,
uint8_t  enableCpuToGpuDescrAsyncCpy,
void *  pDynDescrsCpu,
void *  pDynDescrsGpu,
cuphyPuschRxCfoTaEstLaunchCfgs_t *  pLaunchCfgs,
cudaStream_t  strm 
)

Setup cuPHY PUSCH carrier frequency offset and timing advance estimation in preparation towards slot execution

Returns CUPHY_STATUS_SUCCESS if setup is successful.

Returns CUPHY_STATUS_INVALID_ARGUMENT if puschRxCfoTaEstHndl and/or pLaunchCfgs and/or pDynDescrsCpu and/or pDynDescrsGpu is NULL and/or pLaunchCfgs->nCfgs is larger than CUPHY_PUSCH_RX_CFO_EST_N_MAX_HET_CFGS.

Parameters
puschRxCfoTaEstHndl- Handle to previously created PuschRxCfoTaEst instance
pDrvdUeGrpPrmsCpu- Pointer to derived UE group parameters on CPU
pDrvdUeGrpPrmsGpu- Pointer to derived UE group parameters on GPU
nUeGrps- number of UE groups to be processed
nMaxPrb- maximum number of PRBs across UE groups
pDbg- Pointer to debug tensor parameters (0 if no debug info is desired)
enableCpuToGpuDescrAsyncCpy- Flag when set enables async copy of CPU descriptor into GPU
pDynDescrsCpu- Pointer to dynamic descriptor in CPU memory
pDynDescrsGpu- Pointer to dynamic descriptor in GPU memory
pLaunchCfgs- 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,cuphyPuschRxCfoTaEstGetDescrInfo,cuphyCreatePuschRxCfoTaEst,cuphyDestroyPuschRxCfoTaEst