cuPHY
0.1
CUDA PHY Layer Acceration Library
|
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... | |
typedef struct cuphyPuschRxCfoTaEst* cuphyPuschRxCfoTaEstHndl_t |
cuPHY PUSCH Receiver carrier frequency offset estimation handle
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
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 |
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.
puschRxCfoTaEstHndl | - handle to previously allocated PuschRxCfoTaEst instance |
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.
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 |
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.
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 |