cuPHY  0.1
CUDA PHY Layer Acceration Library
Data Structures | Typedefs | Functions
computation

This section describes SRS channel estimation computation functions of the cuPHY application programming interface. More...

Data Structures

struct  cuphySrsChEstDynPrms
 

Typedefs

typedef struct cuphySrsChEst * cuphySrsChEstHndl_t
 

Functions

cuphyStatus_t cuphyCreateSrsChEst (cuphySrsChEstHndl_t *pSrsChEstHndl, cuphyTensorPrm_t const *pInterpCoef, uint8_t enableCpuToGpuDescrAsyncCpy, void *pStatDescrCpu, void *pStatDescrGpu, cudaStream_t strm)
 Allocate and initialize a cuPHY SRS channel estimation object. More...
 
cuphyStatus_t cuphyDestroySrsChEst (cuphySrsChEstHndl_t srsChEstHndl)
 Destroys a cuPHY SRS channel estimation object. More...
 
cuphyStatus_t cuphyRunSrsChEst (cuphySrsChEstHndl_t srsChEstHndl, cudaStream_t strm)
 Run cuPHY SRS channel estimation. More...
 
cuphyStatus_t cuphySetupSrsChEst (cuphySrsChEstHndl_t srsChEstHndl, cuphySrsChEstDynPrms_t const *pDynPrms, cuphyTensorPrm_t *pDataRx, cuphyTensorPrm_t *pHEst, cuphyTensorPrm_t *pDbg, uint8_t enableCpuToGpuDescrAsyncCpy, void *pDynDescrsCpu, void *pDynDescrsGpu, cudaStream_t strm)
 Setup cuPHY SRS channel estimation for slot processing. More...
 
cuphyStatus_t cuphySrsChEstGetDescrInfo (size_t *pStatDescrSizeBytes, size_t *pStatDescrAlignBytes, size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute cuPHY SRS channel estimation descriptor buffer sizes and alignments. More...
 

Detailed Description

Typedef Documentation

◆ cuphySrsChEstHndl_t

typedef struct cuphySrsChEst* cuphySrsChEstHndl_t

cuPHY SRS channel estimation handle

Function Documentation

◆ cuphyCreateSrsChEst()

cuphyStatus_t cuphyCreateSrsChEst ( cuphySrsChEstHndl_t pSrsChEstHndl,
cuphyTensorPrm_t const *  pInterpCoef,
uint8_t  enableCpuToGpuDescrAsyncCpy,
void *  pStatDescrCpu,
void *  pStatDescrGpu,
cudaStream_t  strm 
)

Allocates a cuPHY channel estimation object and returns a handle in the address provided by the caller.

Returns CUPHY_STATUS_INVALID_ARGUMENT if pSrsChEstHndl and/or pInterpCoef and/or pStatDescrCpu and/or pStatDescrGpu is NULL.

Returns CUPHY_STATUS_ALLOC_FAILED if a SrsChEst object cannot be allocated

Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful

Parameters
pSrsChEstHndl- Address to return the new SrsChEst instance
pInterpCoef- Pointer to interpolator coefficients tensor parameters
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,cuphySrsChEstGetDescrInfo,cuphySetupSrsChEst,cuphyRunSrsChEst,cuphyDestroySrsChEst

◆ cuphyDestroySrsChEst()

cuphyStatus_t cuphyDestroySrsChEst ( cuphySrsChEstHndl_t  srsChEstHndl)

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

Returns CUPHY_STATUS_INVALID_ARGUMENT if srsChEstHndl is NULL.

Returns CUPHY_STATUS_SUCCESS if destruction was successful.

Parameters
srsChEstHndl- handle to previously allocated SrsChEst instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphySrsChEstGetDescrInfo,cuphyCreateSrsChEst,cuphySetupSrsChEst,cuphyRunSrsChEst

◆ cuphyRunSrsChEst()

cuphyStatus_t cuphyRunSrsChEst ( cuphySrsChEstHndl_t  srsChEstHndl,
cudaStream_t  strm 
)

Call triggers cuPHY SRS channel estimation compute

Returns CUPHY_STATUS_INVALID_ARGUMENT if srsChEstHndl is NULL

Returns CUPHY_STATUS_SUCCESS if SrsChEst execution is successful

Parameters
srsChEstHndl- Handle of SrsChEst instance which is to be triggered
strm- CUDA stream for kernel launch
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphySrsChEstGetDescrInfo,cuphyCreateSrsChEst,cuphySetupSrsChEst,cuphyDestroySrsChEst

◆ cuphySetupSrsChEst()

cuphyStatus_t cuphySetupSrsChEst ( cuphySrsChEstHndl_t  srsChEstHndl,
cuphySrsChEstDynPrms_t const *  pDynPrms,
cuphyTensorPrm_t *  pDataRx,
cuphyTensorPrm_t *  pHEst,
cuphyTensorPrm_t *  pDbg,
uint8_t  enableCpuToGpuDescrAsyncCpy,
void *  pDynDescrsCpu,
void *  pDynDescrsGpu,
cudaStream_t  strm 
)

Setup cuPHY SRS channel estimation in preparation towards slot execution

Returns CUPHY_STATUS_SUCCESS if setup is successful.

Returns CUPHY_STATUS_INVALID_ARGUMENT if srsChEstHndl and/or pDataRx and/or pHEst and/or pDbg and/or pDynDescrsCpu and/or pDynDescrsGpu and/or pDynPrms is NULL.

Parameters
srsChEstHndl- handle to previously allocated SrsChEst instance
pDynPrms- Pointer to dynamic parameters containing the following:
pDataRx- Pointer to received data tensor parameters
pHEst- Pointer to estimated channel tensor parameters
pDbg- Pointer to debug tensor parameters
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
strm- CUDA stream for descriptor copy operation
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphySrsChEstGetDescrInfo,cuphyCreateSrsChEst,cuphyRunSrsChEst,cuphyDestroySrsChEst

◆ cuphySrsChEstGetDescrInfo()

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

Computes cuPHY SRS channel 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 SrsChEst 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,cuphyCreateSrsChEst,cuphyRunSrsChEst,cuphyDestroySrsChEst