cuPHY
0.1
CUDA PHY Layer Acceration Library
|
This section describes beamforming coefficient computation functions of the cuPHY application programming interface. More...
Data Structures | |
struct | _cuphyBfwDataIn |
BFW Input Data. More... | |
struct | _cuphyBfwDataOut |
BFW Output Data. More... | |
struct | _cuphyBfwDbgPrms |
BFW Debug Parameters. More... | |
struct | _cuphyBfwDynPrm |
BFW Dynamic Parameters. More... | |
struct | _cuphyBfwLayerPrm |
Beamforming Weight Layer Parameters. More... | |
struct | _cuphyBfwStatPrms |
BFW Static Parameters. More... | |
struct | _cuphyBfwUeGrpPrm |
Beamforming Weight UE Group Parameters. More... | |
struct | cuphyBfwCoefCompLaunchCfg_t |
Typedefs | |
typedef struct cuphyBfwCoefComp * | cuphyBfwCoefCompHndl_t |
typedef struct cuphyBfwTx * | cuphyBfwTxHndl_t |
Enumerations | |
enum | _cuphyBfwTxProcMode { , BFW_PROC_MODE_WITH_GRAPH = 0x1, BFW_MAX_PROC_MODES } |
BFW processing modes. More... | |
Functions | |
cuphyStatus_t | cuphyCreateBfwCoefComp (cuphyBfwCoefCompHndl_t *pBfwCoefCompHndl, uint8_t enableCpuToGpuDescrAsyncCpy, uint16_t nMaxUeGrps, uint16_t nMaxTotalLayers, float lambda, void *pStatDescrCpu, void *pStatDescrGpu, void *pDynDescrsCpu, void *pDynDescrsGpu, void *pHetCfgUeGrpMapCpu, void *pHetCfgUeGrpMapGpu, void *pUeGrpPrmsCpu, void *pUeGrpPrmsGpu, void *pBfLayerPrmsCpu, void *pBfLayerPrmsGpu, cudaStream_t strm) |
Allocate and initialize a cuPHY beamforming coefficient compute object. More... | |
cuphyStatus_t | cuphyCreateBfwTx (cuphyBfwTxHndl_t *pBfwTxHndl, cuphyBfwStatPrms_t const *pStatPrms, cudaStream_t cuStream) |
Allocates and initializes a cuPHY BFW pipeline. More... | |
cuphyStatus_t | cuphyDestroyBfwCoefComp (cuphyBfwCoefCompHndl_t bfwCoefCompHndl) |
Destroys a cuPHY beamforming coefficient compute object. More... | |
cuphyStatus_t | cuphyDestroyBfwTx (cuphyBfwTxHndl_t bfwTxHndl) |
Destroys a cuPHY BFW receiver pipeline object. More... | |
cuphyStatus_t | cuphyGetDescrInfoBfwCoefComp (uint16_t nMaxUeGrps, uint16_t nMaxTotalLayers, size_t *pStatDescrSizeBytes, size_t *pStatDescrAlignBytes, size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes, size_t *pHetCfgUeGrpMapSizeBytes, size_t *pHetCfgUeGrpMapAlignBytes, size_t *pUeGrpPrmsSizeBytes, size_t *pUeGrpPrmsAlignBytes, size_t *pBfLayerPrmsSizeBytes, size_t *pBfLayerPrmsAlignBytes) |
Helper to compute cuPHY beamforming coefficient compute descriptor buffer sizes and alignments. More... | |
cuphyStatus_t | cuphyRunBfwTx (cuphyBfwTxHndl_t bfwTxHndl, uint64_t procModeBmsk) |
Run cuPHY BFW computation pipeline in specified mode. More... | |
cuphyStatus_t | cuphySetupBfwCoefComp (cuphyBfwCoefCompHndl_t bfwCoefCompHndl, uint16_t nUeGrps, cuphyBfwUeGrpPrm_t const *pUeGrpPrms, uint8_t enableCpuToGpuDescrAsyncCpy, cuphySrsChEstBuffInfo_t *pChEstBufInfo, cuphyTensorPrm_t *pTBfwCoef, cuphyBfwCoefCompLaunchCfgs_t *pLaunchCfgs, cudaStream_t strm) |
Setup cuPHY beamforming coefficient compute object for calculation. More... | |
cuphyStatus_t | cuphySetupBfwTx (cuphyBfwTxHndl_t bfwTxHndl, cuphyBfwDynPrms_t *pDynPrms) |
Setup cuPHY BFW computation pipeline. More... | |
cuphyStatus_t | cuphyWriteDbgBufSynchBfw (cuphyBfwTxHndl_t bfwTxHndl, cudaStream_t cuStream) |
Run cuPHY save BFW computation debug buffer. More... | |
This section describes the Beamforming weight computation pipeline functions of the cuPHY application programming interface.
typedef struct cuphyBfwCoefComp* cuphyBfwCoefCompHndl_t |
cuPHY Beamforming weight compute handle
typedef struct cuphyBfwTx* cuphyBfwTxHndl_t |
cuPHY BfwTx handle
enum _cuphyBfwTxProcMode |
cuphyStatus_t cuphyCreateBfwCoefComp | ( | cuphyBfwCoefCompHndl_t * | pBfwCoefCompHndl, |
uint8_t | enableCpuToGpuDescrAsyncCpy, | ||
uint16_t | nMaxUeGrps, | ||
uint16_t | nMaxTotalLayers, | ||
float | lambda, | ||
void * | pStatDescrCpu, | ||
void * | pStatDescrGpu, | ||
void * | pDynDescrsCpu, | ||
void * | pDynDescrsGpu, | ||
void * | pHetCfgUeGrpMapCpu, | ||
void * | pHetCfgUeGrpMapGpu, | ||
void * | pUeGrpPrmsCpu, | ||
void * | pUeGrpPrmsGpu, | ||
void * | pBfLayerPrmsCpu, | ||
void * | pBfLayerPrmsGpu, | ||
cudaStream_t | strm | ||
) |
Allocates a cuPHY beamforming coefficient compute object and returns a handle in the address provided by the caller.
Returns CUPHY_STATUS_INVALID_ARGUMENT if pStatDescrCpu
and/or pStatDescrGpu
and/or pDynDescrsCpu
and/or pDynDescrsGpu
and/or pHetCfgUeGrpMapCpu
and/or pHetCfgUeGrpMapGpu
and/or pUeGrpPrmsCpu
and/or pUeGrpPrmsGpu
and/or pBfLayerPrmsCpu
and/or pBfLayerPrmsGpu
is NULL
Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful.
Returns CUPHY_STATUS_ALLOC_FAILED if a BfwCoefComp object cannot be allocated
Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful
pBfwCoefCompHndl | - Address to return the new instance |
enableCpuToGpuDescrAsyncCpy | - flag if non-zero enables async copy of CPU descriptor into GPU |
nMaxUeGrps | - Max total number of UE groups to be processed in a single API invocation |
nMaxTotalLayers | - Maximum total beamformed layers (i.e. sum of layer count across all UE groups) to be processed in a single API invocation |
lambda | - regularization constant |
pStatDescrCpu | - Pointer to static descriptor in CPU memory |
pStatDescrGpu | - Pointer to static descriptor in GPU memory |
pDynDescrsCpu | - Pointer to dynamic descriptors in CPU memory |
pDynDescrsGpu | - Pointer to dynamic descriptor in GPU memory |
pHetCfgUeGrpMapCpu | - Pointer to heterogenous config to UE group map descriptor in CPU memory |
pHetCfgUeGrpMapGpu | - Pointer to heterogenous config to UE group map descriptor in GPU memory |
pUeGrpPrmsCpu | - Pointer to UE group parameter descriptor in CPU memory |
pUeGrpPrmsGpu | - Pointer to UE group parameter descriptor in GPU memory |
pBfLayerPrmsCpu | - Pointer to beamforming layer parameter descriptor in CPU memory |
pBfLayerPrmsGpu | - Pointer to beamforming layer parameter descriptor in GPU memory |
strm | - CUDA stream for descriptor copy operation |
cuphyStatus_t cuphyCreateBfwTx | ( | cuphyBfwTxHndl_t * | pBfwTxHndl, |
cuphyBfwStatPrms_t const * | pStatPrms, | ||
cudaStream_t | cuStream | ||
) |
Allocates a cuPHY Downlink Beamforming Weight (BFW) computation pipeline for Downlink and returns a handle in the address provided by the caller.
Returns CUPHY_STATUS_INVALID_ARGUMENT if pBfwTxHndl
and/or pStatPrms
is NULL.
Returns CUPHY_STATUS_ALLOC_FAILED if a BfwTx object cannot be allocated
Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful.
pBfwTxHndl | - Address to return the new BFW pipeline instance |
pStatPrms | - Pointer to BFW static parameters to be used in pipeline creation |
cuStream | - CUDA stream used for creation time work (e.g static tensor copy, conversion) |
cuphyStatus_t cuphyDestroyBfwCoefComp | ( | cuphyBfwCoefCompHndl_t | bfwCoefCompHndl | ) |
Destroys a cuPHY beamforming coefficient compute object that was previously created by cuphyCreateBfwCoefComp. The handle provided to this function should not be used for any operations after this function returns.
Returns CUPHY_STATUS_INVALID_ARGUMENT if bfwCoefCompHndl
is NULL.
Returns CUPHY_STATUS_SUCCESS if destruction was successful.
bfwCoefCompHndl | - handle to previously allocated BfwCoefComp instance |
cuphyStatus_t cuphyDestroyBfwTx | ( | cuphyBfwTxHndl_t | bfwTxHndl | ) |
Destroys a cuPHY Downlink Beamforming Weight (BFW) computation object that was previously created by cuphyCreateBfwTx. The handle provided to this function should not be used for any operations after this function returns.
Returns CUPHY_STATUS_INVALID_ARGUMENT if bfwTxHndl
is NULL.
Returns CUPHY_STATUS_SUCCESS if destruction was successful.
bfwTxHndl | - handle to previously allocated BfwTx instance |
cuphyStatus_t cuphyGetDescrInfoBfwCoefComp | ( | uint16_t | nMaxUeGrps, |
uint16_t | nMaxTotalLayers, | ||
size_t * | pStatDescrSizeBytes, | ||
size_t * | pStatDescrAlignBytes, | ||
size_t * | pDynDescrSizeBytes, | ||
size_t * | pDynDescrAlignBytes, | ||
size_t * | pHetCfgUeGrpMapSizeBytes, | ||
size_t * | pHetCfgUeGrpMapAlignBytes, | ||
size_t * | pUeGrpPrmsSizeBytes, | ||
size_t * | pUeGrpPrmsAlignBytes, | ||
size_t * | pBfLayerPrmsSizeBytes, | ||
size_t * | pBfLayerPrmsAlignBytes | ||
) |
Computes cuPHY beamforming coefficient compute 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 BfwCoefComp APIs
Returns CUPHY_STATUS_INVALID_ARGUMENT if pStatDescrSizeBytes
and/or pStatDescrAlignBytes
and/or pDynDescrSizeBytes
and/or pDynDescrAlignBytes
and/or pHetCfgUeGrpMapSizeBytes
and/or pHetCfgUeGrpMapAlignBytes
and/or pUeGrpPrmsSizeBytes
and/or pUeGrpPrmsAlignBytes
and/or pBfLayerPrmsSizeBytes
and/or pBfLayerPrmsAlignBytes
is NULL
Returns CUPHY_STATUS_SUCCESS otherwise
nMaxUeGrps | - Max total number of UE groups to be processed in a single API invocation |
nMaxTotalLayers | - Maximum total beamformed layers (i.e. sum of layer count across all UE groups) to be processed in a single API invocation |
pStatDescrSizeBytes | - Size in bytes of beamforming coefficient compute static descriptor |
pStatDescrAlignBytes | - Alignment in bytes of beamforming coefficient compute static descriptor |
pDynDescrSizeBytes | - Size in bytes of beamforming coefficient compute dynamic descriptor |
pDynDescrAlignBytes | - Alignment in bytes of beamforming coefficient compute dynamic descriptor |
pHetCfgUeGrpMapSizeBytes | - Size in bytes of hetergenous config to UE group map descriptor |
pHetCfgUeGrpMapAlignBytes | - Alignment in bytes of hetergenous config to UE group map descriptor |
pUeGrpPrmsSizeBytes | - Size in bytes of UE group parameter descriptor |
pUeGrpPrmsAlignBytes | - Alignment in bytes of UE group parameter descriptor |
pBfLayerPrmsSizeBytes | - Size in bytes of beamforming layer descriptor |
pBfLayerPrmsAlignBytes | - Alignment in bytes of beamforming layer descriptor |
cuphyStatus_t cuphyRunBfwTx | ( | cuphyBfwTxHndl_t | bfwTxHndl, |
uint64_t | procModeBmsk | ||
) |
Call triggers cuPHY Downlink Beamforming Weight (BFW) computation pipeline execution in mode specified by procModeBmsk
Returns CUPHY_STATUS_INVALID_ARGUMENT if bfwTxHndl
is NULL and/or procModeBmsk
is not supported.
Returns CUPHY_STATUS_SUCCESS if BfwTx execution is successful.
bfwTxHndl | - Handle of BfwTx instance which is to be triggered |
procModeBmsk | - Processing mode bitmask containing one or more processing modes applicable during this execution |
cuphyStatus_t cuphySetupBfwCoefComp | ( | cuphyBfwCoefCompHndl_t | bfwCoefCompHndl, |
uint16_t | nUeGrps, | ||
cuphyBfwUeGrpPrm_t const * | pUeGrpPrms, | ||
uint8_t | enableCpuToGpuDescrAsyncCpy, | ||
cuphySrsChEstBuffInfo_t * | pChEstBufInfo, | ||
cuphyTensorPrm_t * | pTBfwCoef, | ||
cuphyBfwCoefCompLaunchCfgs_t * | pLaunchCfgs, | ||
cudaStream_t | strm | ||
) |
Setup cuPHY beamforming coefficient compute object in preparation towards execution for generating coefficients
Returns CUPHY_STATUS_SUCCESS if setup is successful.
Returns CUPHY_STATUS_INVALID_ARGUMENT if bfwCoefCompHndl
and/or pUeGrpPrms
and/or pChEstBufInfo
and/or pTBfwCoef
and/or pLaunchCfgs
is NULL.
bfwCoefCompHndl | - Handle to previously created BfwCoefComp instance |
nUeGrps | - total number of UE groups to be processed |
pUeGrpPrms | - Pointer to array of UE group parameters |
enableCpuToGpuDescrAsyncCpy | - Flag when set enables async copy of CPU descriptor into GPU |
pChEstBufInfo | - Pointer to array of SRS channel estimation information buffers |
pTBfwCoef | - Pointer to array of beamforming weight tensors |
pLaunchCfgs | - Pointer to beamforming coefficient compute launch configurations |
strm | - CUDA stream for descriptor copy operation |
cuphyStatus_t cuphySetupBfwTx | ( | cuphyBfwTxHndl_t | bfwTxHndl, |
cuphyBfwDynPrms_t * | pDynPrms | ||
) |
Setup cuPHY Downlink Beamforming Weight (BFW) computation pipeline (and its components) state in preparation towards slot execution
Returns CUPHY_STATUS_INVALID_ARGUMENT if bfwTxHndl
and/or pDynPrms
is NULL
Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful.
bfwTxHndl | - Handle of BFW instance to be setup |
pDynPrms | - Dynamic parameters carrying information needed for slot processing |
cuphyStatus_t cuphyWriteDbgBufSynchBfw | ( | cuphyBfwTxHndl_t | bfwTxHndl, |
cudaStream_t | cuStream | ||
) |
bfwTxHndl | - Handle of BfwTx instance which saves the debug buffer |
cuStream | - CUDA stream used for BfwTx pipeline execution Note: requires stream synchronization durring call |