cuPHY  0.1
CUDA PHY Layer Acceration Library
Data Structures | Macros | Typedefs | Enumerations | Functions
cuphy.h File Reference

PHY Layer library header file. More...

#include <cuda_runtime.h>
#include <stdint.h>
#include "cuComplex.h"
#include "cuda_fp16.h"
#include "cufft.h"
#include <cuda.h>

Data Structures

struct  _CsirsSymbLocRow
 CSI-RS resource mapping location row. More...
 
struct  _CsirsTables
 Tables used in CSI-RS signal generation algorithm. More...
 
struct  _cuphyBfwLayerPrm
 Beamforming Weight Layer Parameters. More...
 
struct  _cuphyBfwUeGrpPrm
 Beamforming Weight UE Group Parameters. More...
 
struct  _cuphyPolarCwPrm
 Parmaters for polar codewords. More...
 
struct  _cuphyPolarUciSegPrm
 Parmaters for polar encoded UCI segment. More...
 
struct  _cuphyPucchCellPrm
 Per PUCCH common cell parameters. More...
 
struct  _cuphyPucchCellStatPrm
 PUCCH Cell Static Parameters. More...
 
struct  _cuphyPucchF0F1UciOut
 UCI output structure for PUCCH formats 0 and 1. More...
 
struct  _cuphyPucchF234OutOffsets
 Structure gives offsets for locating UCI on PUCCH outputs. More...
 
struct  _cuphyPucchUciP1P2Crpd
 
struct  _cuphyPucchUciPrm
 Per UCI PUCCH parameters. More...
 
struct  _cuphyPuschCellStatPrm
 PUSCH Static cell parameters. More...
 
struct  _cuphyPuschRxFeCreateGraphNodePrms
 
struct  _cuphyPuschRxFeGraphNodePrms
 
struct  _cuphyPuschRxFeUpdateGraphNodePrms
 
struct  _cuphyRmCwPrm
 Parmaters for Reed Muller codewords. More...
 
struct  _cuphySimplexCwPrm
 Parmaters for simplex codewords. More...
 
struct  _cuphySrsCellPrms
 SRS cell parameters. More...
 
struct  _cuphySrsChEstBuffInfo
 SRS Channel Estimate Buffer Info. More...
 
struct  _cuphySrsFilterPrms
 SRS filter parameters. More...
 
struct  _cuphySrsReport
 SRS output structure. More...
 
struct  _cuphyTensorPrm
 
struct  _cuphyUciOnPuschOutOffsets
 Structure gives offsets for locating PUSCH outputs. More...
 
struct  _cuphyUeSrsPrm
 Parameters for SRS. More...
 
struct  _puschRxUeGrpPrms
 Container which captures information needed for processing a UE group. More...
 
struct  crcLaunchDescriptor
 CRC Launch descriptor. More...
 
struct  cuphyBfwCoefCompLaunchCfg_t
 
struct  cuphyCompCwTreeTypes_t
 
struct  cuphyLDPCDecodeConfigDesc_t
 
struct  cuphyLDPCDecodeDesc_t
 LDPC Decoder Descriptor. More...
 
struct  cuphyLDPCResults_t
 
struct  cuphyPolarDecoderLaunchCfg_t
 
struct  cuphyPolSegDeRmDeItlLaunchCfg_t
 
struct  cuphyPucchF0RxLaunchCfg_t
 
struct  cuphyPucchF1RxLaunchCfg_t
 
struct  cuphyPucchF234UciSegLaunchCfg_t
 
struct  cuphyPucchF2RxLaunchCfg_t
 
struct  cuphyPucchF3Csi2CtrlLaunchCfg_t
 
struct  cuphyPucchF3RxLaunchCfg_t
 
struct  cuphyPucchF3SegLLRsLaunchCfg_t
 
struct  cuphyPuschRxCfoTaEstLaunchCfg_t
 
struct  cuphyPuschRxChEqLaunchCfg_t
 
struct  cuphyPuschRxChEstLaunchCfg_t
 
struct  cuphyPuschRxCrcDecodeHndl_t
 
struct  cuphyPuschRxNoiseIntfEstLaunchCfg_t
 
struct  cuphyPuschRxRateMatchHndl_t
 
struct  cuphyPuschRxRsrpLaunchCfg_t
 
struct  cuphyPuschRxRssiLaunchCfg_t
 
struct  cuphySrsChEst0LaunchCfg_t
 
struct  cuphySrsChEstDynPrms
 
struct  cuphyTensorInfo1_t
 
struct  cuphyUciOnPuschCsi2CtrlLaunchCfg_t
 
struct  cuphyUciOnPuschSegLLRs0LaunchCfg_t
 
struct  cuphyUciOnPuschSegLLRs1LaunchCfg_t
 
struct  cuphyUciOnPuschSegLLRs2LaunchCfg_t
 
struct  gnb_pars
 gNB Parameters More...
 
struct  PdcchParams
 Struct that tracks all necessary parameters for PDCCH computation. It contains information common across all DCIs, as well as as per-DCI specific configuration parameters. More...
 
struct  PdschDmrsParams
 Struct that tracks all necessary parameters for PDSCH DMRS computation. This struct is also used in PDSCH modulation. There is one PdschDmrsParams struct per TB. More...
 
struct  PdschPerTbParams
 Struct that tracks configuration information at a per TB (Transport Block) granularity for the downlink shared channel (PDSCH). More...
 
struct  PdschUeGrpParams
 Struct that tracks parameters needed for rate-matching/modulation when CSI-RS parameters are present. More...
 
struct  PerTbParams
 Struct that tracks configuration information at a per TB (Transport Block) granularity. More...
 
struct  PucchParams
 Struct that tracks all necessary parameters for PUCCH receiver processing. It also includes a PucchUeCellParams struct per UE. More...
 
struct  PucchUeCellParams
 Struct that tracks user equipment (UE) specific PUCCH parameters. More...
 
struct  tb_pars
 Transport block parameters. More...
 

Macros

#define CUPHY_TENSOR_N_DIM_1   (1)
 

Typedefs

typedef struct cuphyBfwCoefComp * cuphyBfwCoefCompHndl_t
 
typedef struct cuphyCompCwTreeTypes * cuphyCompCwTreeTypesHndl_t
 
typedef struct cuphyContext * cuphyContext_t
 
typedef struct cuphyLDPCDecoder * cuphyLDPCDecoder_t
 
typedef struct cuphyPolarDecoder * cuphyPolarDecoderHndl_t
 
typedef struct cuphyPolSegDeRmDeItl * cuphyPolSegDeRmDeItlHndl_t
 
typedef struct cuphyPucchF0Rx * cuphyPucchF0RxHndl_t
 
typedef struct cuphyPucchF1Rx * cuphyPucchF1RxHndl_t
 
typedef struct cuphyPucchF234UciSeg * cuphyPucchF234UciSegHndl_t
 
typedef struct cuphyPucchF2Rx * cuphyPucchF2RxHndl_t
 
typedef struct cuphyPucchF3Csi2Ctrl * cuphyPucchF3Csi2CtrlHndl_t
 
typedef struct cuphyPucchF3Rx * cuphyPucchF3RxHndl_t
 
typedef struct cuphyPucchF3SegLLRs * cuphyPucchF3SegLLRsHndl_t
 
typedef struct cuphyPuschRxCfoTaEst * cuphyPuschRxCfoTaEstHndl_t
 
typedef struct cuphyPuschRxChEq * cuphyPuschRxChEqHndl_t
 
typedef struct cuphyPuschRxChEst * cuphyPuschRxChEstHndl_t
 
typedef struct cuphyPuschRxNoiseIntfEst * cuphyPuschRxNoiseIntfEstHndl_t
 
typedef struct cuphyPuschRxRssi * cuphyPuschRxRssiHndl_t
 
typedef struct cuphyRmDecoder * cuphyRmDecoderHndl_t
 Reed-Muller Decoder Handle.
 
typedef struct cuphyRNG * cuphyRNG_t
 
typedef struct cuphySrsChEst0 * cuphySrsChEst0Hndl_t
 
typedef struct cuphySrsChEst * cuphySrsChEstHndl_t
 
typedef struct cuphyTensorDescriptor * cuphyTensorDescriptor_t
 
typedef struct cuphyUciOnPuschCsi2Ctrl * cuphyUciOnPuschCsi2CtrlHndl_t
 
typedef struct cuphyUciOnPuschSegLLRs0 * cuphyUciOnPuschSegLLRs0Hndl_t
 
typedef struct cuphyUciOnPuschSegLLRs1 * cuphyUciOnPuschSegLLRs1Hndl_t
 
typedef struct cuphyUciOnPuschSegLLRs2 * cuphyUciOnPuschSegLLRs2Hndl_t
 

Enumerations

enum  _cuphyCdmType
 CDM type.
 
enum  _cuphyCsiType
 CSIType enum. Only NZP_CSI_RS is currently supported.
 
enum  _cuphyUciDtxTypes
 UCI DTX type.
 
enum  cuphyDataType_t {
  CUPHY_VOID = -1,
  CUPHY_BIT = 20,
  CUPHY_R_8I = CUDA_R_8I,
  CUPHY_C_8I = CUDA_C_8I,
  CUPHY_R_8U = CUDA_R_8U,
  CUPHY_C_8U = CUDA_C_8U,
  CUPHY_R_16I = 21,
  CUPHY_C_16I = 22,
  CUPHY_R_16U = 23,
  CUPHY_C_16U = 24,
  CUPHY_R_32I = CUDA_R_32I,
  CUPHY_C_32I = CUDA_C_32I,
  CUPHY_R_32U = CUDA_R_32U,
  CUPHY_C_32U = CUDA_C_32U,
  CUPHY_R_16F = CUDA_R_16F,
  CUPHY_C_16F = CUDA_C_16F,
  CUPHY_R_32F = CUDA_R_32F,
  CUPHY_C_32F = CUDA_C_32F,
  CUPHY_R_64F = CUDA_R_64F,
  CUPHY_C_64F = CUDA_C_64F
}
 
enum  cuphyElementWiseOp_t {
  CUPHY_ELEMWISE_ADD,
  CUPHY_ELEMWISE_MUL,
  CUPHY_ELEMWISE_MIN,
  CUPHY_ELEMWISE_MAX,
  CUPHY_ELEMWISE_ABS,
  CUPHY_ELEMWISE_BIT_XOR
}
 
enum  cuphyReductionOp_t {
  CUPHY_REDUCTION_SUM,
  CUPHY_REDUCTION_MIN,
  CUPHY_REDUCTION_MAX
}
 
enum  cuphyStatus_t {
  CUPHY_STATUS_SUCCESS = 0,
  CUPHY_STATUS_INTERNAL_ERROR = 1,
  CUPHY_STATUS_NOT_SUPPORTED = 2,
  CUPHY_STATUS_INVALID_ARGUMENT = 3,
  CUPHY_STATUS_ARCH_MISMATCH = 4,
  CUPHY_STATUS_ALLOC_FAILED = 5,
  CUPHY_STATUS_SIZE_MISMATCH = 6,
  CUPHY_STATUS_MEMCPY_ERROR = 7,
  CUPHY_STATUS_INVALID_CONVERSION = 8,
  CUPHY_STATUS_UNSUPPORTED_TYPE = 9,
  CUPHY_STATUS_UNSUPPORTED_LAYOUT = 10,
  CUPHY_STATUS_UNSUPPORTED_RANK = 11,
  CUPHY_STATUS_UNSUPPORTED_CONFIG = 12,
  CUPHY_STATUS_UNSUPPORTED_ALIGNMENT = 13,
  CUPHY_STATUS_VALUE_OUT_OF_RANGE = 14
}
 

Functions

cuphyStatus_t cuphyChannelEst1DTimeFrequency (cuphyTensorDescriptor_t tensorDescDst, void *dstAddr, cuphyTensorDescriptor_t tensorDescSymbols, const void *symbolsAddr, cuphyTensorDescriptor_t tensorDescFreqFilters, const void *freqFiltersAddr, cuphyTensorDescriptor_t tensorDescTimeFilters, const void *timeFiltersAddr, cuphyTensorDescriptor_t tensorDescFreqIndices, const void *freqIndicesAddr, cuphyTensorDescriptor_t tensorDescTimeIndices, const void *timeIndicesAddr, cudaStream_t strm)
 Performs 1-D time/frequency channel estimation. More...
 
cuphyStatus_t cuphyCompCwTreeTypesGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute compCwTreeTypes descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphyConvertTensor (cuphyTensorDescriptor_t tensorDescDst, void *dstAddr, cuphyTensorDescriptor_t tensorDescSrc, const void *srcAddr, cudaStream_t strm)
 Converts a source tensor to a different type or layout. More...
 
cuphyStatus_t cuphyConvertVariant (cuphyVariant_t *v, cuphyDataType_t t)
 Convert an input variant to a given type. More...
 
void cuphyCopyPucchParamsToWorkspace (const PucchParams *h_pucch_params, void *pucch_workspace, cuphyDataType_t pucch_complex_data_type)
 : Copy PUCCH params from the CPU to the allocated PUCCH receiver workspace. The location of the struct in the workspace is implementation dependent. More...
 
cuphyStatus_t cuphyCRCDecode (uint32_t *d_outputCBCRCs, uint32_t *d_outputTBCRCs, uint8_t *d_outputTransportBlocks, const uint32_t *d_inputCodeBlocks, const PerTbParams *d_tbPrmsArray, uint32_t nTBs, uint32_t maxNCBsPerTB, uint32_t maxTBByteSize, int reverseBytes, int timeIt, uint32_t NRUNS, uint32_t codeBlocksOnly, cudaStream_t strm)
 Perform CRC decode. More...
 
cuphyStatus_t cuphyCRCDecodeLaunchSetup (uint32_t nTBs, uint32_t maxNCBsPerTB, uint32_t maxTBByteSize, crcLaunchDescriptor *crcDecodeDesc)
 populates crcLaunchDescriptor More...
 
cuphyStatus_t cuphyCrcEncodeGetDescrInfo (size_t *pDescrSizeBytes, size_t *pDescrAlignBytes)
 : Compute descriptor size and alignment for CRC Encoder. More...
 
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 cuphyCreateCompCwTreeTypes (cuphyCompCwTreeTypesHndl_t *pCompCwTreeTypes)
 Allocate and initialize a cuPHY compCwTreeTypes object. More...
 
cuphyStatus_t cuphyCreateContext (cuphyContext_t *pcontext, unsigned int flags)
 Allocates and initializes a cuPHY context. More...
 
cuphyStatus_t cuphyCreateLDPCDecoder (cuphyContext_t context, cuphyLDPCDecoder_t *pdecoder, unsigned int flags)
 Allocates and initializes a cuPHY LDPC decoder instance. More...
 
cuphyStatus_t cuphyCreatePolarDecoder (cuphyPolarDecoderHndl_t *pPolarDecoderHndl)
 Allocate and initialize a cuPHY polarDecoder object. More...
 
cuphyStatus_t cuphyCreatePolSegDeRmDeItl (cuphyPolSegDeRmDeItlHndl_t *pPolSegDeRmDeItlHndl)
 Allocate and initialize a cuPHY polSegDeRmDeItl object. More...
 
cuphyStatus_t cuphyCreatePucchF0Rx (cuphyPucchF0RxHndl_t *pPucchF0RxHndl, cudaStream_t strm)
 Allocate and initialize a cuPHY PucchF0Rx object. More...
 
cuphyStatus_t cuphyCreatePucchF1Rx (cuphyPucchF1RxHndl_t *pPucchF1RxHndl, cudaStream_t strm)
 Allocate and initialize a cuPHY PucchF1Rx object. More...
 
cuphyStatus_t cuphyCreatePucchF234UciSeg (cuphyPucchF234UciSegHndl_t *pPucchF234UciSegHndl)
 Allocate and initialize a cuPHY pucchF234UciSeg object. More...
 
cuphyStatus_t cuphyCreatePucchF2Rx (cuphyPucchF2RxHndl_t *pPucchF2RxHndl, cudaStream_t strm)
 Allocate and initialize a cuPHY PucchF2Rx object. More...
 
cuphyStatus_t cuphyCreatePucchF3Csi2Ctrl (cuphyPucchF3Csi2CtrlHndl_t *pPucchF3Csi2CtrlHndl)
 Allocate and initialize a cuPHY pucchF3Csi2Ctrl object. More...
 
cuphyStatus_t cuphyCreatePucchF3Rx (cuphyPucchF3RxHndl_t *pPucchF3RxHndl, cudaStream_t strm)
 Allocate and initialize a cuPHY PucchF3Rx object. More...
 
cuphyStatus_t cuphyCreatePucchF3SegLLRs (cuphyPucchF3SegLLRsHndl_t *pPucchF3SegLLRsHndl)
 Allocate and initialize a cuPHY pucchF3SegLLRs object. More...
 
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 cuphyCreatePuschRxChEq (cuphyContext_t ctx, cuphyPuschRxChEqHndl_t *pPuschRxChEqHndl, uint8_t enableCpuToGpuDescrAsyncCpy, void **ppStatDescrCpu, void **ppStatDescrGpu, cudaStream_t strm)
 Allocate and initialize a cuPHY PuschRx channel equalization object. More...
 
cuphyStatus_t cuphyCreatePuschRxChEst (cuphyPuschRxChEstHndl_t *pPuschRxChEstHndl, cuphyTensorPrm_t const *pInterpCoef, cuphyTensorPrm_t const *pInterpCoef4, cuphyTensorPrm_t const *pInterpCoefSmall, cuphyTensorPrm_t const *pShiftSeq, cuphyTensorPrm_t const *pShiftSeq4, cuphyTensorPrm_t const *pUnShiftSeq, cuphyTensorPrm_t const *pUnShiftSeq4, uint8_t enableCpuToGpuDescrAsyncCpy, void **ppStatDescrsCpu, void **ppStatDescrsGpu, cudaStream_t strm)
 Allocate and initialize a cuPHY PuschRx channel estimation object. More...
 
cuphyStatus_t cuphyCreatePuschRxCrcDecode (cuphyPuschRxCrcDecodeHndl_t *puschRxCrcDecodeHndl, int reverseBytes)
 Allocate and initialize a cuPHY PuschRx crc decode object. More...
 
cuphyStatus_t cuphyCreatePuschRxNoiseIntfEst (cuphyPuschRxNoiseIntfEstHndl_t *pPuschRxNoiseIntfEstHndl)
 Allocate and initialize a cuPHY PuschRx noise-interference estimation object. More...
 
cuphyStatus_t cuphyCreatePuschRxRateMatch (cuphyPuschRxRateMatchHndl_t *puschRxRateMatchHndl, int FPconfig, int descramblingOn)
 Allocate and initialize a cuPHY PuschRx rate match object. More...
 
cuphyStatus_t cuphyCreatePuschRxRssi (cuphyPuschRxRssiHndl_t *pPuschRxRssiHndl)
 Allocate and initialize a cuPHY PuschRx RSSI, RSRP estimation object. More...
 
cuphyStatus_t cuphyCreateRandomNumberGenerator (cuphyRNG_t *pRNG, unsigned long long seed, unsigned int flags, cudaStream_t strm)
 Allocates and initializes a cuPHY random number generator. More...
 
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 cuphyCreateTensorDescriptor (cuphyTensorDescriptor_t *ptensorDesc)
 Allocates and initializes a cuPHY tensor descriptor. More...
 
cuphyStatus_t cuphyCreateUciOnPuschCsi2Ctrl (cuphyUciOnPuschCsi2CtrlHndl_t *pUciOnPuschCsi2CtrlHndl)
 Allocate and initialize a cuPHY uciOnPuschCsi2Ctrl object. More...
 
cuphyStatus_t cuphyCreateUciOnPuschSegLLRs1 (cuphyUciOnPuschSegLLRs1Hndl_t *pUciOnPuschSegLLRs1Hndl)
 Allocate and initialize a cuPHY uciOnPuschSegLLRs1 object. More...
 
cuphyStatus_t cuphyCreateUciOnPuschSegLLRs2 (cuphyUciOnPuschSegLLRs2Hndl_t *pUciOnPuschSegLLRs2Hndl)
 Allocate and initialize a cuPHY uciOnPuschSegLLRs2 object. More...
 
cuphyStatus_t cuphyDemodulateSymbol (cuphyContext_t context, cuphyTensorDescriptor_t tLLR, void *pLLR, cuphyTensorDescriptor_t tSym, const void *pSym, int log2_QAM, float noiseVariance, cudaStream_t strm)
 Perform symbol demodulation. More...
 
cuphyStatus_t cuphyDestroyBfwCoefComp (cuphyBfwCoefCompHndl_t bfwCoefCompHndl)
 Destroys a cuPHY beamforming coefficient compute object. More...
 
cuphyStatus_t cuphyDestroyCompCwTreeTypes (cuphyCompCwTreeTypesHndl_t compCwTreeTypesHndl)
 Destroys a cuPHY compCwTreeTypes object. More...
 
cuphyStatus_t cuphyDestroyContext (cuphyContext_t ctx)
 Destroys a cuPHY context. More...
 
cuphyStatus_t cuphyDestroyLDPCDecoder (cuphyLDPCDecoder_t decoder)
 Destroys a cuPHY LDPC decoder object. More...
 
cuphyStatus_t cuphyDestroyPolarDecoder (cuphyPolarDecoderHndl_t polarDecoderHndl)
 Destroys a cuPHY polarDecoder object. More...
 
cuphyStatus_t cuphyDestroyPolSegDeRmDeItl (cuphyPolSegDeRmDeItlHndl_t polSegDeRmDeItlHndl)
 Destroys a cuPHY polSegDeRmDeItl object. More...
 
cuphyStatus_t cuphyDestroyPucchF0Rx (cuphyPucchF0RxHndl_t pucchF0RxHndl)
 Destroys a cuPHY PUCCH F0 receiver object. More...
 
cuphyStatus_t cuphyDestroyPucchF1Rx (cuphyPucchF1RxHndl_t pucchF1RxHndl)
 Destroys a cuPHY PUCCH F1 receiver object. More...
 
cuphyStatus_t cuphyDestroyPucchF234UciSeg (cuphyPucchF234UciSegHndl_t pPucchF234UciSegHndl)
 Destroys a cuPHY pucchF234UciSeg object. More...
 
cuphyStatus_t cuphyDestroyPucchF2Rx (cuphyPucchF2RxHndl_t pucchF2RxHndl)
 Destroys a cuPHY PUCCH F2 receiver object. More...
 
cuphyStatus_t cuphyDestroyPucchF3Csi2Ctrl (cuphyPucchF3Csi2CtrlHndl_t pucchF3Csi2CtrlHndl)
 Destroys a cuPHY pucchF3Csi2Ctrl object. More...
 
cuphyStatus_t cuphyDestroyPucchF3Rx (cuphyPucchF3RxHndl_t pucchF3RxHndl)
 Destroys a cuPHY PUCCH F3 receiver object. More...
 
cuphyStatus_t cuphyDestroyPucchF3SegLLRs (cuphyPucchF3SegLLRsHndl_t pucchF3SegLLRsHndl)
 Destroys a cuPHY pucchF3SegLLRs object. More...
 
cuphyStatus_t cuphyDestroyPuschRxCfoTaEst (cuphyPuschRxCfoTaEstHndl_t puschRxCfoTaEstHndl)
 Destroys a cuPHY PUSCH CFO estimation object. More...
 
cuphyStatus_t cuphyDestroyPuschRxChEq (cuphyPuschRxChEqHndl_t puschRxChEqHndl)
 Destroys a cuPHY PUSCH channel equalization object. More...
 
cuphyStatus_t cuphyDestroyPuschRxChEst (cuphyPuschRxChEstHndl_t puschRxChEstHndl)
 Destroys a cuPHY PUSCH channel estimation object. More...
 
cuphyStatus_t cuphyDestroyPuschRxCrcDecode (cuphyPuschRxCrcDecodeHndl_t puschRxCrcDecodeHndl)
 Destroys a cuPHY PUSCH crc decode object. More...
 
cuphyStatus_t cuphyDestroyPuschRxNoiseIntfEst (cuphyPuschRxNoiseIntfEstHndl_t puschRxNoiseIntfEstHndl)
 Destroys a cuPHY PUSCH noise-interference estimation object. More...
 
cuphyStatus_t cuphyDestroyPuschRxRateMatch (cuphyPuschRxRateMatchHndl_t puschRxRateMatchHndl)
 Destroys a cuPHY PUSCH rate match object. More...
 
cuphyStatus_t cuphyDestroyPuschRxRssi (cuphyPuschRxRssiHndl_t puschRxRssiHndl)
 Destroys a cuPHY PUSCH RSSI estimation object. More...
 
cuphyStatus_t cuphyDestroyRandomNumberGenerator (cuphyRNG_t rng)
 Destroys a cuPHY random number generator. More...
 
cuphyStatus_t cuphyDestroySrsChEst (cuphySrsChEstHndl_t srsChEstHndl)
 Destroys a cuPHY SRS channel estimation object. More...
 
cuphyStatus_t cuphyDestroyTensorDescriptor (cuphyTensorDescriptor_t tensorDesc)
 Destroys a cuPHY tensor descriptor. More...
 
cuphyStatus_t cuphyDestroyUciOnPuschCsi2Ctrl (cuphyUciOnPuschCsi2CtrlHndl_t uciOnPuschCsi2CtrlHndl)
 Destroys a cuPHY uciOnPuschCsi2Ctrl object. More...
 
cuphyStatus_t cuphyDestroyUciOnPuschSegLLRs1 (cuphyUciOnPuschSegLLRs1Hndl_t uciOnPuschSegLLRs1Hndl)
 Destroys a cuPHY uciOnPuschSegLLRs1 object. More...
 
cuphyStatus_t cuphyDestroyUciOnPuschSegLLRs2 (cuphyUciOnPuschSegLLRs2Hndl_t uciOnPuschSegLLRs2Hndl)
 Destroys a cuPHY uciOnPuschSegLLRs2 object. More...
 
cuphyStatus_t cuphyDlRateMatchingGetDescrInfo (size_t *pDescrSizeBytes, size_t *pDescrAlignBytes)
 : Compute descriptor buffer size and alignment for rate matching. More...
 
size_t cuphyDlRateMatchingWorkspaceSize (int num_TBs)
 : Return workspace size, in bytes, needed for all configuration parameters of the rate matching component. Does not allocate any space. More...
 
cuphyStatus_t cuphyErrorCorrectionLDPCDecode (cuphyLDPCDecoder_t decoder, cuphyTensorDescriptor_t tensorDescDst, void *dstAddr, cuphyTensorDescriptor_t tensorDescLLR, const void *LLRAddr, const cuphyLDPCDecodeConfigDesc_t *config, cudaStream_t strm)
 Perform a bulk LDPC decode operation on a tensor of soft input values. More...
 
cuphyStatus_t cuphyErrorCorrectionLDPCDecodeGetLaunchDescriptor (cuphyLDPCDecoder_t decoder, cuphyLDPCDecodeLaunchConfig_t *launchConfig)
 Populates a launch configuration for the LDPC decoder. More...
 
cuphyStatus_t cuphyErrorCorrectionLDPCDecodeGetWorkspaceSize (cuphyLDPCDecoder_t decoder, const cuphyLDPCDecodeConfigDesc_t *config, int numCodeWords, size_t *sizeInBytes)
 Returns the workspace size for and LDPC decode operation. More...
 
cuphyStatus_t cuphyErrorCorrectionLDPCDecodeSetNormalization (cuphyLDPCDecoder_t decoder, cuphyLDPCDecodeConfigDesc_t *decodeDesc)
 Sets the min-sum normalization constant for a given LDPC configuration. More...
 
cuphyStatus_t cuphyErrorCorrectionLDPCTransportBlockDecode (cuphyLDPCDecoder_t decoder, const cuphyLDPCDecodeDesc_t *decodeDesc, cudaStream_t strm)
 Perform a bulk LDPC decode operation on a tensor of soft input values. More...
 
cuphyStatus_t cuphyFillTensor (cuphyTensorDescriptor_t tDst, void *pDst, const cuphyVariant_t *v, cudaStream_t strm)
 Fill tensor memory with a specific value. More...
 
const char * cuphyGetDataTypeString (cuphyDataType_t type)
 Returns a string value for a given data type. 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...
 
const char * cuphyGetErrorName (cuphyStatus_t status)
 Returns a string version of an error code enumeration value. More...
 
const char * cuphyGetErrorString (cuphyStatus_t status)
 Returns the description string for an error code. More...
 
cuphyStatus_t cuphyGetTensorDescriptor (cuphyTensorDescriptor_t tensorDesc, int numDimsRequested, cuphyDataType_t *dataType, int *numDims, int dimensions[], int strides[])
 Query values for the internal state of a cuPHY tensor descriptor. More...
 
cuphyStatus_t cuphyGetTensorSizeInBytes (cuphyTensorDescriptor_t tensorDesc, size_t *psz)
 Returns the size of an allocation for a tensor descriptor. More...
 
cuphyStatus_t cuphyLDPCEncodeGetDescrInfo (size_t *pDescrSizeBytes, size_t *pDescrAlignBytes, uint16_t maxUes, size_t *pWorkspaceBytes)
 : Compute descriptor size and alignment for LDPC Encoder. More...
 
cuphyStatus_t cuphyModulateSymbol (cuphyTensorDescriptor_t tSym, void *pSym, cuphyTensorDescriptor_t tBits, const void *pBits, int log2_QAM, cudaStream_t strm)
 Perform symbol modulation. More...
 
cuphyStatus_t cuphyModulationGetDescrInfo (size_t *pDescrSizeBytes, size_t *pDescrAlignBytes)
 : Compute descriptor size and alignment for modulation mapper. More...
 
cuphyStatus_t cuphyPdcchPipeline (void *d_x_crc, void *d_x_scramSeq, void *d_x_coded, void *d_x_tx, int num_coresets, int num_dci, PdcchParams *h_params, PdcchParams *d_params, cuphyPdcchDciPrm_t *h_dci_params, cuphyPdcchDciPrm_t *d_dci_params, cudaStream_t stream)
 : PDCCH TX pipeline. All buffers include multiple DCIs. More...
 
cuphyStatus_t cuphyPdcchPipelinePrepare (void *h_x_crc_addr, cuphyTensorDescriptor_t h_x_crc_desc, const void *h_xin_addr, cuphyTensorDescriptor_t h_xin_desc, int num_coresets, int num_DCIs, PdcchParams *h_params, cuphyPdcchDciPrm_t *h_dci_params, cudaStream_t stream)
 : Prepare for PDCCH TX pipeline. More...
 
cuphyStatus_t cuphyPdschDmrsGetDescrInfo (size_t *pDescrSizeBytes, size_t *pDescrAlignBytes)
 : Compute descriptor size and alignment for PDSCH DMRS. More...
 
cuphyStatus_t cuphyPolarDecoderGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute polarDecoder descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphyPolarEncRateMatch (uint32_t nInfoBits, uint32_t nTxBits, uint8_t const *pInfoBits, uint32_t *pNCodedBits, uint8_t *pCodedBits, uint8_t *pTxBits, uint32_t procModeBmsk, cudaStream_t strm)
 : Polar encoding and rate matching for control channel processing More...
 
cuphyStatus_t cuphyPolSegDeRmDeItlGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute PolSegDeRmDeItl descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphyPucchF0RxGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute cuPHY PUCCH F0 receiver descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphyPucchF1RxGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute cuPHY PUCCH F1 receiver descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphyPucchF234UciSegGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute pucchF234UciSeg descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphyPucchF2RxGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute cuPHY PUCCH F2 receiver descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphyPucchF3Csi2CtrlGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute pucchF3Csi2Ctrl descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphyPucchF3RxGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute cuPHY PUCCH F3 receiver descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphyPucchF3SegLLRsGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute pucchF3SegLLRs descriptor buffer sizes and alignments. More...
 
void cuphyPucchReceiver (cuphyTensorDescriptor_t data_rx_desc, const void *data_rx_addr, cuphyTensorDescriptor_t bit_estimates_desc, void *bit_estimates_addr, const uint32_t pucch_format, const PucchParams *pucch_params, cudaStream_t strm, void *pucch_workspace, size_t allocated_workspace_size, cuphyDataType_t pucch_complex_data_type)
 : Launch PUCCH receiver kernels that do processing at receive end of PUCCH (Physical Uplink Control Channel). More...
 
size_t cuphyPucchReceiverWorkspaceSize (int num_ues, int num_bs_antennas, int num_symbols, cuphyDataType_t pucch_complex_data_type)
 : Return workspace size, in bytes, needed for all configuration parameters and intermediate computations of the PUCCH receiver. Does not allocate any space. 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 cuphyPuschRxChEqGetDescrInfo (size_t *pStatDescrSizeBytes, size_t *pStatDescrAlignBytes, size_t *pCoefCompDynDescrSizeBytes, size_t *pCoefCompDynDescrAlignBytes, size_t *pSoftDemapDynDescrSizeBytes, size_t *pSoftDemapDynDescrAlignBytes)
 Helper to compute cuPHY channel equalization descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphyPuschRxChEstGetDescrInfo (size_t *pStatDescrSizeBytes, size_t *pStatDescrAlignBytes, size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute cuPHY channel estimation descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphyPuschRxCrcDecodeGetDescrInfo (size_t *pDescrSizeBytes, size_t *pDescrAlignBytes)
 Helper to compute cuPHY crc decoder descriptor buffer sizes and alignments. 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 cuphyPuschRxRateMatchGetDescrInfo (size_t *pDescrSizeBytes, size_t *pDescrAlignBytes)
 Helper to compute cuPHY rate match descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphyPuschRxRssiGetDescrInfo (size_t *pRssiDynDescrSizeBytes, size_t *pRssiDynDescrAlignBytes, size_t *pRsrpDynDescrSizeBytes, size_t *pRsrpDynDescrAlignBytes)
 Helper to compute cuPHY RSSI, RSRP measurement descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphyRandomNormal (cuphyRNG_t rng, cuphyTensorDescriptor_t tDst, void *pDst, const cuphyVariant_t *mean, const cuphyVariant_t *stddev, cudaStream_t strm)
 Populate a cuPHY tensor with random data with a normal distribution. More...
 
cuphyStatus_t cuphyRandomUniform (cuphyRNG_t rng, cuphyTensorDescriptor_t tDst, void *pDst, const cuphyVariant_t *minValue, const cuphyVariant_t *maxValue, cudaStream_t strm)
 Populate a cuPHY tensor with uniformly distributed random data. More...
 
cuphyStatus_t cuphyRunSrsChEst (cuphySrsChEstHndl_t srsChEstHndl, cudaStream_t strm)
 Run cuPHY SRS channel estimation. More...
 
cuphyStatus_t cuphySetTBParams (PdschPerTbParams *tb_params_struct, uint32_t cfg_rv, uint32_t cfg_Qm, uint32_t cfg_bg, uint32_t cfg_Nl, uint32_t cfg_num_CBs, uint32_t cfg_Zc, uint32_t cfg_G, uint32_t cfg_F, uint32_t cfg_cinit, uint32_t cfg_Nref)
 Update PdschPerTbParams struct that tracks configuration information at per TB granularity. Check that configuration values are valid. More...
 
cuphyStatus_t cuphySetTensorDescriptor (cuphyTensorDescriptor_t tensorDesc, cuphyDataType_t type, int numDimensions, const int dimensions[], const int strides[], unsigned int flags)
 Provide values for the internal state of a cuPHY tensor descriptor. 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 cuphySetupCompCwTreeTypes (cuphyCompCwTreeTypesHndl_t compCwTreeTypesHndl, uint16_t nPolUciSegs, const cuphyPolarUciSegPrm_t *pPolUciSegPrmsCpu, const cuphyPolarUciSegPrm_t *pPolUciSegPrmsGpu, uint8_t **pCwTreeTypesAddrs, void *pCpuDynDescCompTree, void *pGpuDynDescCompTree, void *pCpuDynDescCompTreeAddrs, uint8_t enableCpuToGpuDescrAsyncCpy, cuphyCompCwTreeTypesLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY compCwTreeTypes for slot processing. More...
 
cuphyStatus_t cuphySetupCrcEncode (cuphyCrcEncodeLaunchConfig_t crcEncodeLaunchConfig, uint32_t *d_cbCRCs, uint32_t *d_tbCRCs, const uint32_t *d_inputTransportBlocks, uint8_t *d_codeBlocks, const PdschPerTbParams *d_tbPrmsArray, uint32_t nTBs, uint32_t maxNCBsPerTB, uint32_t maxTBByteSize, uint8_t reverseBytes, uint8_t codeBlocksOnly, void *cpu_desc, void *gpu_desc, uint8_t enable_desc_async_copy, cudaStream_t strm)
 : Setup CRC encoder component. More...
 
cuphyStatus_t cuphySetupDlRateMatching (cuphyDlRateMatchingLaunchConfig_t dlRateMatchingLaunchConfig, const uint32_t *d_rate_matching_input, uint32_t *d_rate_matching_output, uint32_t *d_restructure_rate_matching_output, void *d_modulation_output, void *d_xtf_re_map, uint16_t max_PRB_BWP, int num_TBs, int num_layers, uint8_t enable_scrambling, uint8_t enable_layer_mapping, uint8_t enable_modulation, uint8_t precoding, uint8_t restructure_kernel, uint8_t batching, uint32_t *h_workspace, uint32_t *d_workspace, PdschPerTbParams *h_params, PdschPerTbParams *d_params, PdschDmrsParams *d_dmrs_params, PdschUeGrpParams *d_ue_grp_params, void *cpu_desc, void *gpu_desc, uint8_t enable_desc_async_copy, cudaStream_t strm)
 : Setup rate matching component incl. kernel node params for rate-matching (incl. scrambling and layer mapping) and rate-matching output restructuring (if enabled). If enable_modulation is set, this component also performs modulation too. More...
 
cuphyStatus_t cuphySetupLDPCEncode (cuphyLDPCEncodeLaunchConfig_t ldpcEncodeLaunchConfig, cuphyTensorDescriptor_t inDesc, void *inAddr, cuphyTensorDescriptor_t outDesc, void *outAddr, int BG, int Z, uint8_t puncture, int maxParityNodes, int max_rv, uint8_t batching, int batched_TBs, void **inBatchedAddr, void **outBatchedAddr, void *h_workspace, void *d_workspace, void *cpu_desc, void *gpu_desc, uint8_t enable_desc_async_copy, cudaStream_t strm)
 : Setup LDPC encoder. More...
 
cuphyStatus_t cuphySetupModulation (cuphyModulationLaunchConfig_t modulationLaunchConfig, PdschDmrsParams *d_params, cuphyTensorDescriptor_t input_desc, const void *modulation_input, int max_num_symbols, int max_bits_per_layer, int num_TBs, PdschPerTbParams *workspace, cuphyTensorDescriptor_t output_desc, void *modulation_output, void *cpu_desc, void *gpu_desc, uint8_t enable_desc_async_copy, cudaStream_t strm)
 : Setup modulation mapper component. More...
 
cuphyStatus_t cuphySetupPdschDmrs (cuphyPdschDmrsLaunchConfig_t pdschDmrsLaunchConfig, PdschDmrsParams *dmrs_params, int num_TBs, uint8_t enable_precoding, cuphyTensorDescriptor_t dmrs_output_desc, void *dmrs_output_addr, void *cpu_desc, void *gpu_desc, uint8_t enable_desc_async_copy, cudaStream_t strm)
 : Setup PDSCH DMRS component. More...
 
cuphyStatus_t cuphySetupPolarDecoder (cuphyPolarDecoderHndl_t polarDecoderHndl, uint16_t nPolCws, __half **pCwTreeLLRsAddrs, cuphyPolarCwPrm_t *pCwPrmsGpu, cuphyPolarCwPrm_t *pCwPrmsCpu, uint32_t **pPolCbEstAddrs, uint8_t *pPolCrcErrorFlags, bool enableCpuToGpuDescrAsyncCpy, void *pCpuDynDescPolar, void *pGpuDynDescPolar, void *pCpuDynDescPolarLLRAddrs, void *pCpuDynDescPolarCBAddrs, cuphyPolarDecoderLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY polar decoder for slot processing. More...
 
cuphyStatus_t cuphySetupPolSegDeRmDeItl (cuphyPolSegDeRmDeItlHndl_t polSegDeRmDeItlHndl, uint16_t nPolUciSegs, uint16_t nPolCws, const cuphyPolarUciSegPrm_t *pPolUciSegPrmsCpu, const cuphyPolarUciSegPrm_t *pPolUciSegPrmsGpu, __half **pUciSegLLRsAddrs, __half **pCwLLRsAddrs, void *pCpuDynDescDrDi, void *pGpuDynDescDrDi, void *pCpuDynDescDrDiCwAddrs, void *pCpuDynDescDrDiUciAddrs, uint8_t enableCpuToGpuDescrAsyncCpy, cuphyPolSegDeRmDeItlLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY polSegDeRmDeItl for slot processing. More...
 
cuphyStatus_t cuphySetupPucchF0Rx (cuphyPucchF0RxHndl_t pucchF0RxHndl, cuphyTensorPrm_t *pDataRx, cuphyPucchF0F1UciOut_t *pF0UcisOut, uint16_t nCells, uint16_t nF0Ucis, cuphyPucchUciPrm_t *pF0UciPrms, cuphyPucchCellPrm_t *pCmnCellPrms, uint8_t enableCpuToGpuDescrAsyncCpy, void *pCpuDynDesc, void *pGpuDynDesc, cuphyPucchF0RxLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY PucchF0Rx for slot processing. More...
 
cuphyStatus_t cuphySetupPucchF1Rx (cuphyPucchF1RxHndl_t pucchF1RxHndl, cuphyTensorPrm_t *pDataRx, cuphyPucchF0F1UciOut_t *pF1UcisOut, uint16_t nCells, uint16_t nF1Ucis, cuphyPucchUciPrm_t *pF1UciPrms, cuphyPucchCellPrm_t *pCmnCellPrms, uint8_t enableCpuToGpuDescrAsyncCpy, void *pCpuDynDesc, void *pGpuDynDesc, cuphyPucchF1RxLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY PucchF1Rx for slot processing. More...
 
cuphyStatus_t cuphySetupPucchF234UciSeg (cuphyPucchF234UciSegHndl_t pucchF234UciSegHndl, uint16_t nF2Ucis, uint16_t nF3Ucis, cuphyPucchUciPrm_t *pF2UciPrms, cuphyPucchUciPrm_t *pF3UciPrms, cuphyPucchF234OutOffsets_t *&pF2OutOffsetsCpu, cuphyPucchF234OutOffsets_t *&pF3OutOffsetsCpu, uint8_t *uciPayloadsGpu, void *pCpuDynDesc, void *pGpuDynDesc, bool enableCpuToGpuDescrAsyncCpy, cuphyPucchF234UciSegLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY pucchF234UciSeg for slot processing. More...
 
cuphyStatus_t cuphySetupPucchF2Rx (cuphyPucchF2RxHndl_t pucchF2RxHndl, cuphyTensorPrm_t *pDataRx, __half **pDescramLLRaddrs, uint8_t *pDTXflags, float *pSinr, float *pRssi, float *pRsrp, float *pInterf, float *pNoiseVar, uint16_t nCells, uint16_t nF2Ucis, cuphyPucchUciPrm_t *pF2UciPrms, cuphyPucchCellPrm_t *pCmnCellPrms, uint8_t enableCpuToGpuDescrAsyncCpy, void *pCpuDynDesc, void *pGpuDynDesc, cuphyPucchF2RxLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY PucchF2Rx for slot processing. More...
 
cuphyStatus_t cuphySetupPucchF3Csi2Ctrl (cuphyPucchF3Csi2CtrlHndl_t pucchF3Csi2CtrlHndl, uint16_t nCsi2Ucis, uint16_t *pCsi2UciIdxsCpu, cuphyPucchUciPrm_t *pUciPrmsCpu, cuphyPucchUciPrm_t *pUciPrmsGpu, cuphyPucchCellStatPrm_t *pCellStatPrmsGpu, cuphyPucchF234OutOffsets_t *pPucchF3OutOffsetsCpu, uint8_t *pUciPayloadsGpu, uint16_t *pNumCsi2BitsGpu, cuphyPolarUciSegPrm_t *pCsi2PolarSegPrmsGpu, cuphyPolarCwPrm_t *pCsi2PolarCwPrmsGpu, cuphyRmCwPrm_t *pCsi2RmCwPrmsGpu, cuphySimplexCwPrm_t *pCsi2SpxCwPrmsGpu, void *pCpuDynDesc, void *pGpuDynDesc, bool enableCpuToGpuDescrAsyncCpy, cuphyPucchF3Csi2CtrlLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY pucchF3Csi2Ctrl for slot processing. More...
 
cuphyStatus_t cuphySetupPucchF3Rx (cuphyPucchF3RxHndl_t pucchF3RxHndl, cuphyTensorPrm_t *pDataRx, __half **pDescramLLRaddrs, uint8_t *pDTXflags, float *pSinr, float *pRssi, float *pRsrp, float *pInterf, float *pNoiseVar, uint16_t nCells, uint16_t nF3Ucis, cuphyPucchUciPrm_t *pF3UciPrms, cuphyPucchCellPrm_t *pCmnCellPrms, uint8_t enableCpuToGpuDescrAsyncCpy, void *pCpuDynDesc, void *pGpuDynDesc, cuphyPucchF3RxLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY PucchF3Rx for slot processing. More...
 
cuphyStatus_t cuphySetupPucchF3SegLLRs (cuphyPucchF3SegLLRsHndl_t pucchF3SegLLRsHndl, uint16_t nF3Ucis, cuphyPucchUciPrm_t *pF3UciPrms, __half **pDescramLLRaddrs, void *pCpuDynDesc, void *pGpuDynDesc, bool enableCpuToGpuDescrAsyncCpy, cuphyPucchF3SegLLRsLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY pucchF3SegLLRs for slot processing. 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...
 
cuphyStatus_t cuphySetupPuschRxChEqCoefCompute (cuphyPuschRxChEqHndl_t puschRxChEqHndl, cuphyPuschRxUeGrpPrms_t *pDrvdUeGrpPrmsCpu, cuphyPuschRxUeGrpPrms_t *pDrvdUeGrpPrmsGpu, uint16_t nUeGrps, uint16_t nMaxPrb, uint8_t enableCfoCorrection, uint8_t enablePuschTdi, uint8_t enableCpuToGpuDescrAsyncCpy, void **pDynDescrsCpu, void **pDynDescrsGpu, cuphyPuschRxChEqLaunchCfgs_t *pLaunchCfgs, cudaStream_t strm)
 Setup cuPHY channel equalization coefficient compute for slot processing. More...
 
cuphyStatus_t cuphySetupPuschRxChEqSoftDemap (cuphyPuschRxChEqHndl_t puschRxChEqHndl, cuphyPuschRxUeGrpPrms_t *pDrvdUeGrpPrmsCpu, cuphyPuschRxUeGrpPrms_t *pDrvdUeGrpPrmsGpu, uint16_t nUeGrps, uint16_t nMaxPrb, uint8_t enableCfoCorrection, uint8_t enablePuschTdi, uint8_t enableCpuToGpuDescrAsyncCpy, void *pDynDescrsCpu, void *pDynDescrsGpu, cuphyPuschRxChEqLaunchCfgs_t *pLaunchCfgs, cudaStream_t strm)
 Setup cuPHY channel equalization soft demap for slot processing. More...
 
cuphyStatus_t cuphySetupPuschRxChEst (cuphyPuschRxChEstHndl_t puschRxChEstHndl, cuphyPuschRxUeGrpPrms_t *pDrvdUeGrpPrmsCpu, cuphyPuschRxUeGrpPrms_t *pDrvdUeGrpPrmsGpu, uint16_t nUeGrps, uint8_t enableCpuToGpuDescrAsyncCpy, void **ppDynDescrsCpu, void **ppDynDescrsGpu, cuphyPuschRxChEstLaunchCfgs_t *pLaunchCfgs, cudaStream_t strm)
 Setup cuPHY channel estimation for slot processing. More...
 
cuphyStatus_t cuphySetupPuschRxCrcDecode (cuphyPuschRxCrcDecodeHndl_t puschRxCrcDecodeHndl, uint16_t nSchUes, uint16_t *pSchUserIdxsCpu, uint32_t *pOutputCBCRCs, uint8_t *pOutputTBs, const uint32_t *pInputCodeBlocks, uint32_t *pOutputTBCRCs, const PerTbParams *pTbPrmsCpu, const PerTbParams *pTbPrmsGpu, void *pCpuDesc, void *pGpuDesc, uint8_t enableCpuToGpuDescrAsyncCpy, cuphyPuschRxCrcDecodeLaunchCfg_t *pCbCrcLaunchCfg, cuphyPuschRxCrcDecodeLaunchCfg_t *pTbCrcLaunchCfg, cudaStream_t strm)
 Setup cuPHY crc decode for slot processing. 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...
 
cuphyStatus_t cuphySetupPuschRxRateMatch (cuphyPuschRxRateMatchHndl_t puschRxRateMatchHndl, uint16_t nSchUes, uint16_t *pSchUserIdxsCpu, const PerTbParams *pTbPrmsCpu, const PerTbParams *pTbPrmsGpu, cuphyTensorPrm_t *pTPrmRmIn, void **ppRmOut, void *pCpuDesc, void *pGpuDesc, uint8_t enableCpuToGpuDescrAsyncCpy, cuphyPuschRxRateMatchLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY rate match for slot processing. More...
 
cuphyStatus_t cuphySetupPuschRxRsrp (cuphyPuschRxRssiHndl_t puschRxRssiHndl, cuphyPuschRxUeGrpPrms_t *pDrvdUeGrpPrmsCpu, cuphyPuschRxUeGrpPrms_t *pDrvdUeGrpPrmsGpu, uint16_t nUeGrps, uint32_t nMaxPrb, uint8_t enableCpuToGpuDescrAsyncCpy, void *pDynDescrsCpu, void *pDynDescrsGpu, cuphyPuschRxRsrpLaunchCfgs_t *pLaunchCfgs, cudaStream_t strm)
 Setup cuPHY PuschRx RSRP for slot processing. More...
 
cuphyStatus_t cuphySetupPuschRxRssi (cuphyPuschRxRssiHndl_t puschRxRssiHndl, cuphyPuschRxUeGrpPrms_t *pDrvdUeGrpPrmsCpu, cuphyPuschRxUeGrpPrms_t *pDrvdUeGrpPrmsGpu, uint16_t nUeGrps, uint32_t nMaxPrb, uint8_t enableCpuToGpuDescrAsyncCpy, void *pDynDescrsCpu, void *pDynDescrsGpu, cuphyPuschRxRssiLaunchCfgs_t *pLaunchCfgs, cudaStream_t strm)
 Setup cuPHY PuschRx RSSI for slot processing. 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 cuphySetupUciOnPuschCsi2Ctrl (cuphyUciOnPuschCsi2CtrlHndl_t uciOnPuschCsi2CtrlHndl, uint16_t nCsi2Ues, uint16_t *pCsi2UeIdxsCpu, PerTbParams *pTbPrmsCpu, PerTbParams *pTbPrmsGpu, cuphyPuschRxUeGrpPrms_t *pUeGrpPrmsCpu, cuphyPuschCellStatPrm_t *pCellStatPrmsGpu, cuphyUciOnPuschOutOffsets_t *pUciOnPuschOutOffsetsCpu, uint8_t *pUciPayloadsGpu, uint16_t *pNumCsi2BitsGpu, cuphyPolarUciSegPrm_t *pCsi2PolarSegPrmsGpu, cuphyPolarCwPrm_t *pCsi2PolarCwPrmsGpu, cuphyRmCwPrm_t *pCsi2RmCwPrmsGpu, cuphySimplexCwPrm_t *pCsi2SpxCwPrmsGpu, void *pCpuDynDesc, void *pGpuDynDesc, uint8_t enableCpuToGpuDescrAsyncCpy, cuphyUciOnPuschCsi2CtrlLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY uciOnPuschCsi2Ctrl for slot processing. More...
 
cuphyStatus_t cuphySetupUciOnPuschSegLLRs1 (cuphyUciOnPuschSegLLRs1Hndl_t uciOnPuschSegLLRs1Hndl, uint16_t nUciUes, uint16_t *pUciUserIdxs, PerTbParams *pTbPrmsCpu, PerTbParams *pTbPrmsGpu, uint16_t nUeGrps, cuphyTensorPrm_t *pTensorPrmsEqOutLLRs, uint16_t *pNumPrbs, uint8_t startSym, uint8_t nPuschSym, uint8_t nPuschDataSym, uint8_t *pDataSymIdxs, uint8_t nPuschDmrsSym, uint8_t *pDmrsSymIdxs, void *pCpuDynDesc, void *pGpuDynDesc, uint8_t enableCpuToGpuDescrAsyncCpy, cuphyUciOnPuschSegLLRs1LaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY uciOnPuschSegLLRs1 for slot processing. More...
 
cuphyStatus_t cuphySetupUciOnPuschSegLLRs2 (cuphyUciOnPuschSegLLRs2Hndl_t uciOnPuschSegLLRs2Hndl, uint16_t nCsi2Ues, uint16_t *pCsi2UeIdxs, PerTbParams *pTbPrmsCpu, PerTbParams *pTbPrmsGpu, uint16_t nUeGrps, cuphyTensorPrm_t *pTensorPrmsEqOutLLRs, cuphyPuschRxUeGrpPrms_t *pUeGrpPrmsCpu, cuphyPuschRxUeGrpPrms_t *pUeGrpPrmsGpu, void *pCpuDynDesc, void *pGpuDynDesc, uint8_t enableCpuToGpuDescrAsyncCpy, cuphyUciOnPuschSegLLRs2LaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY uciOnPuschSegLLRs2 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...
 
cuphyStatus_t cuphyTensorElementWiseOperation (cuphyTensorDescriptor_t tDst, void *pDst, cuphyTensorDescriptor_t tSrcA, const void *pSrcA, const cuphyVariant_t *alpha, cuphyTensorDescriptor_t tSrcB, const void *pSrcB, const cuphyVariant_t *beta, cuphyElementWiseOp_t elemOp, cudaStream_t strm)
 Perform an element-wise operation on one or more tensors. More...
 
cuphyStatus_t cuphyTensorReduction (cuphyTensorDescriptor_t tDst, void *pDst, cuphyTensorDescriptor_t tSrc, const void *pSrc, cuphyReductionOp_t redOp, int reductionDim, size_t workspaceSize, void *workspace, cudaStream_t strm)
 Perform a reduction operation on a tensor. More...
 
cuphyStatus_t cuphyTileTensor (cuphyTensorDescriptor_t tDst, void *pDst, cuphyTensorDescriptor_t tSrc, const void *pSrc, int tileRank, const int *tileExtents, cudaStream_t strm)
 Duplicate an input tensor into a tiled output. More...
 
cuphyStatus_t cuphyUciOnPuschCsi2CtrlGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute uciOnPuschCsi2Ctrl descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphyUciOnPuschSegLLRs1GetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute uciOnPuschSegLLRs1 descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphyUciOnPuschSegLLRs2GetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute uciOnPuschSegLLRs2 descriptor buffer sizes and alignments. More...
 
void cuphyUpdatePucchParamsFormat1 (PucchParams *pucch_params, const gnb_pars *gnb_params, const tb_pars *tb_params)
 : Partially update PucchParams struct for Format 1 based on tb_pars and gnb_pars. NB: the following PucchParams fields are NOT updated in this function: (1) num_pucch_ue, (2) Wf, (3) Wt_cell, (4) low_PAPR_seq_index, (5) hopping_id, and (6) the cell_params array. More...
 

Detailed Description

Header file for the cuPHY API

Macro Definition Documentation

◆ CUPHY_TENSOR_N_DIM_1

#define CUPHY_TENSOR_N_DIM_1   (1)

Maximum supported number of tensor dimensions

Typedef Documentation

◆ cuphyUciOnPuschSegLLRs0Hndl_t

typedef struct cuphyUciOnPuschSegLLRs0* cuphyUciOnPuschSegLLRs0Hndl_t

cuPHY uciOnPuschSegLLRs0 handle

Enumeration Type Documentation

◆ cuphyDataType_t

cuPHY data types

Enumerator
CUPHY_VOID 

uninitialized type

CUPHY_BIT 

1-bit value

CUPHY_R_8I 

8-bit signed integer real values

CUPHY_C_8I 

8-bit signed integer complex values

CUPHY_R_8U 

8-bit unsigned integer real values

CUPHY_C_8U 

8-bit unsigned integer complex values

CUPHY_R_16I 

16-bit signed integer real values

CUPHY_C_16I 

16-bit signed integer complex values

CUPHY_R_16U 

16-bit unsigned integer real values

CUPHY_C_16U 

16-bit unsigned integer complex values

CUPHY_R_32I 

32-bit signed integer real values

CUPHY_C_32I 

32-bit signed integer complex values

CUPHY_R_32U 

32-bit unsigned integer real values

CUPHY_C_32U 

32-bit unsigned integer complex values

CUPHY_R_16F 

half precision (16-bit) real values

CUPHY_C_16F 

half precision (16-bit) complex values

CUPHY_R_32F 

single precision (32-bit) real values

CUPHY_C_32F 

single precision (32-bit) complex values

CUPHY_R_64F 

single precision (64-bit) real values

CUPHY_C_64F 

double precision (64-bit) complex values

◆ cuphyElementWiseOp_t

cuPHY element-wise operations

Enumerator
CUPHY_ELEMWISE_ADD 

Add elements

CUPHY_ELEMWISE_MUL 

Multiply elements

CUPHY_ELEMWISE_MIN 

Select the minimum of two elements

CUPHY_ELEMWISE_MAX 

Select the maximum of two elements

CUPHY_ELEMWISE_ABS 

Determine the absolute value of a single input

CUPHY_ELEMWISE_BIT_XOR 

Perform bitwise XOR (CUPHY_BIT tensors only)

◆ cuphyReductionOp_t

cuPHY reduction operations

Enumerator
CUPHY_REDUCTION_SUM 

Add elements

CUPHY_REDUCTION_MIN 

Select the minimum element

CUPHY_REDUCTION_MAX 

Select the maximum element

◆ cuphyStatus_t

cuPHY error codes

Enumerator
CUPHY_STATUS_SUCCESS 

The API call returned with no errors.

CUPHY_STATUS_INTERNAL_ERROR 

An unexpected, internal error occurred.

CUPHY_STATUS_NOT_SUPPORTED 

The requested function is not currently supported.

CUPHY_STATUS_INVALID_ARGUMENT 

One or more of the arguments provided to the function was invalid.

CUPHY_STATUS_ARCH_MISMATCH 

The requested operation is not supported on the current architecture.

CUPHY_STATUS_ALLOC_FAILED 

A memory allocation failed.

CUPHY_STATUS_SIZE_MISMATCH 

The size of the operands provided to the function do not match.

CUPHY_STATUS_MEMCPY_ERROR 

An error occurred during a memcpy operation.

CUPHY_STATUS_INVALID_CONVERSION 

An invalid conversion operation was requested.

CUPHY_STATUS_UNSUPPORTED_TYPE 

An operation was requested on an unsupported type.

CUPHY_STATUS_UNSUPPORTED_LAYOUT 

An operation was requested on an unsupported layout.

CUPHY_STATUS_UNSUPPORTED_RANK 

An operation was requested on an unsupported rank.

CUPHY_STATUS_UNSUPPORTED_CONFIG 

An operation was requested on an unsupported configuration.

CUPHY_STATUS_UNSUPPORTED_ALIGNMENT 

One or more API arguments don't have the required alignment.

CUPHY_STATUS_VALUE_OUT_OF_RANGE 

Data conversion could not occur because an input value was out of range.

Function Documentation

◆ cuphyConvertVariant()

cuphyStatus_t cuphyConvertVariant ( cuphyVariant_t *  v,
cuphyDataType_t  t 
)

Attempts to convert the given variant to a value of the specified cuPHY data type. Integer conversions to a destination type that cannot represent the source value will return CUPHY_STATUS_VALUE_OUT_OF_RANGE. For floating point types, Inf values will be generated without an error.

Returns CUPHY_STATUS_INVALID_ARGUMENT if v is NULL or t is CUPHY_VOID Returns CUPHY_STATUS_INVALID_CONVERSION if conversion to the destination type is not supported Returns CUPHY_STATUS_VALUE_OUT_OF_RANGE if the destination type cannot represent the source value Returns CUPHY_STATUS_SUCCESS if conversion was successful

Parameters
v- address of variant to convert
t- destination data type
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT CUPHY_STATUS_INVALID_CONVERSION CUPHY_STATUS_VALUE_OUT_OF_RANGE
See also
cuphyDataType_t,cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString

◆ cuphyFillTensor()

cuphyStatus_t cuphyFillTensor ( cuphyTensorDescriptor_t  tDst,
void *  pDst,
const cuphyVariant_t *  v,
cudaStream_t  strm 
)

Populates tensor memory described by the given descriptor with a single value.

Returns CUPHY_STATUS_INVALID_ARGUMENT if tDst, pDst, or v is NULL, or if the type of the input variable v is CUPHY_VOID Returns CUPHY_STATUS_INVALID_CONVERSION if conversion to the destination type is not supported Returns CUPHY_STATUS_VALUE_OUT_OF_RANGE if the destination type cannot represent the source value Returns CUPHY_STATUS_SUCCESS if the conversion process was initiated

Parameters
tDst- descriptor for output tensor
pDst- address of output tensor memory
v- address of variant to populate tensor with
strm- CUDA stream for invocation of fill operation
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT CUPHY_STATUS_INVALID_CONVERSION CUPHY_STATUS_VALUE_OUT_OF_RANGE
See also
cuphyDataType_t,cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString

◆ cuphyLDPCEncodeGetDescrInfo()

cuphyStatus_t cuphyLDPCEncodeGetDescrInfo ( size_t *  pDescrSizeBytes,
size_t *  pDescrAlignBytes,
uint16_t  maxUes,
size_t *  pWorkspaceBytes 
)
Parameters
[in,out]pDescrSizeBytesSize in bytes of descriptor
[in,out]pDescrAlignBytesAlignment in bytes of descriptor
[in]maxUesMaximum number of UEs processed with this workspace. Can use PDSCH_MAX_UES_PER_CELL_GROUP as max.
[in,out]pWorkspaceBytesNumber of workspace bytes; it's a function of maxUes (allocated by caller)
Returns
CUPHY_STATUS_SUCCESS or CUPHY_STATUS_INVALID_ARGUMENT

◆ cuphyPolarEncRateMatch()

cuphyStatus_t cuphyPolarEncRateMatch ( uint32_t  nInfoBits,
uint32_t  nTxBits,
uint8_t const *  pInfoBits,
uint32_t *  pNCodedBits,
uint8_t *  pCodedBits,
uint8_t *  pTxBits,
uint32_t  procModeBmsk,
cudaStream_t  strm 
)
Parameters
[in]nInfoBits: Number of information bits, range [1,164]
[in]nTxBits: Number of rate-matched transmit bits, range [1, 8192]
[in]pInfoBits: Pointer to GPU memory containing information bit stream packed in a uint8_t array (with at least 32b alignment), size ceiling(nInfoBits/8), up to 21 bytes (164 bits)
[in]pNCodedBitsPointer to CPU memory to store store the encoded bit length (valid values: 32,64,128,256,512)
[out]pCodedBits: Pointer to GPU memory to store polar encoded bit stream packed in a uint8_t array (with atleast 32b alignment), size ceiling(nMaxCodedBits/8) = 64 bytes
[out]pTxBits: Pointer to device memory for storing polar rate-matched transmit bit stream packed in a uint8_t array (with atleast 32b alignment), size must be a multiple of 4 bytes (padded to nearest 32b boundary) with max size being ceiling(nTxBits/8), upto 1024 bytes
[in]procModeBmskBit mask indicating DL (default) or UL Encoding
[in]strm: CUDA stream for kernel launch.
Returns
CUPHY_STATUS_SUCCESS or CUPHY_STATUS_INVALID_ARGUMENT or CUPHY_STATUS_UNSUPPORTED_ALIGNMENT or CUPHY_STATUS_INTERNAL_ERROR

◆ cuphySetupLDPCEncode()

cuphyStatus_t cuphySetupLDPCEncode ( cuphyLDPCEncodeLaunchConfig_t  ldpcEncodeLaunchConfig,
cuphyTensorDescriptor_t  inDesc,
void *  inAddr,
cuphyTensorDescriptor_t  outDesc,
void *  outAddr,
int  BG,
int  Z,
uint8_t  puncture,
int  maxParityNodes,
int  max_rv,
uint8_t  batching,
int  batched_TBs,
void **  inBatchedAddr,
void **  outBatchedAddr,
void *  h_workspace,
void *  d_workspace,
void *  cpu_desc,
void *  gpu_desc,
uint8_t  enable_desc_async_copy,
cudaStream_t  strm 
)
Parameters
[in]ldpcEncodeLaunchConfigPointer to cuphyDlRateMatchingLaunchConfig.
[in]inDesctensor descriptor for LDPC encoder's input
[in]inAddraddress for LDPC encoder's input, only used if batching is disabled
[in]outDesctensor descirptor for LDPC encoder's output
[in]outAddraddress for LDPC encoder's output, only used if batching is disabled
[in]BGbase graph type; supported values 1 or 2.
[in]Zlifting size
[in]puncturepuncture nodes if set to 1; no puncturing if 0.
[in]maxParityNodesmaximum number of parity nodes to compute; set to 0 if unknown or if no optimization is needed.
[in]max_rvredundancy version, the max. in the batch
[in]batchingwhen enabled, the input and output addresses used are the first batched_TBs elements inBatchedAddr and outBatchedAddr respectively, and not inAddr or outAddr. The TBs batched can also belong to different cells.
[in]batched_TBsnumber of transport blocks (TBs) processed in a single kernel launch
[in]inBatchedAddrarray of per-TB input addresses; first batched_TBs elements are valid if batching is 1
[in]outBatchedAddrarray of per-TB output addresses; first batched_TBs elements are valid if batching is 1
[in]h_workspacepre-allocated host buffer used internally in LDPC
[in]d_workspacedevice memory for h_workspace. The H2D copy from h_workspace to d_workspace happens within cuphySetupDLDPCEncode if enable_desc_async_copy is set.
[in]cpu_descPointer to descriptor in CPU memory
[in]gpu_descPointer to descriptor in GPU memory
[in]enable_desc_async_copyasync copy CPU descriptor into GPU if set.
[in]strmCUDA stream for async copy
Returns
CUPHY_STATUS_SUCCESS or CUPHY_STATUS_INVALID_ARGUMENT

◆ cuphyTensorElementWiseOperation()

cuphyStatus_t cuphyTensorElementWiseOperation ( cuphyTensorDescriptor_t  tDst,
void *  pDst,
cuphyTensorDescriptor_t  tSrcA,
const void *  pSrcA,
const cuphyVariant_t *  alpha,
cuphyTensorDescriptor_t  tSrcB,
const void *  pSrcB,
const cuphyVariant_t *  beta,
cuphyElementWiseOp_t  elemOp,
cudaStream_t  strm 
)

Populates an output tensor by performing an element-wise operation on input tensors.

Returns CUPHY_STATUS_INVALID_ARGUMENT if tDst, pDst, tSrcA, pSrcA, tSrcB, or pSrcB is NULL Returns CUPHY_STATUS_UNSUPPORTED_TYPE if the tensor types of tDst, tSrcA, and tSrcB do not match the requirements for elemOp Returns CUPHY_STATUS_SIZE_MISMATCH if the dimensions of the source and destination tensors do not match. Returns CUPHY_STATUS_INVALID_CONVERSION if the value for alpha or beta cannot be converted to the arithmetic/output type Returns CUPHY_STATUS_VALUE_OUT_OF_RANGE if the value for alpha or beta is out of range for the arithmetic/output data type Returns CUPHY_STATUS_SUCCESS if the element-wise operation was initiated

Tensor Input Requirements:

  • CUPHY_ELEMWISE_ADD
    • destination and source A must be non-NULL
    • destination and source A data types must be the same
    • if source B is non-NULL, its data type must match destination and A
  • CUPHY_ELEMWISE_MUL (currently unimplemented)
    • destination and source A must be non-NULL
    • destination and source A data types must be the same
    • if source B is non-NULL, its data type must match destination and A
  • CUPHY_ELEMWISE_MIN (currently unimplemented)
    • destination, source A, and source B must be non-NULL
    • destination, source A, and source B data types must be the same
  • CUPHY_ELEMWISE_MAX (currently unimplemented)
    • destination, source A, and source B must be non-NULL
    • destination, source A, and source B data types must be the same
  • CUPHY_ELEMWISE_ABS (currently unimplemented)
    • destination and source A must be non-NULL
    • source B must be NULL
    • destination and source A data types must be the same
  • CUPHY_ELEMWISE_BIT_XOR
    • destination, source A, and source B must be non-NULL
    • destination, source A, and source B data types must be CUPHY_BIT
Parameters
tDst- descriptor for output tensor
pDst- address of output tensor memory
tSrcA- descriptor for input tensor A
pSrcA- address of input tensor memory A
alpha- scaling value for input A
tSrcB- descriptor for input tensor B
pSrcB- address of input tensor memory B
beta- scaling value for input B
elemOp- cuphyElementWiseOp_t describing the operation to perform
strm- CUDA stream for invocation of tile operation
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT CUPHY_STATUS_UNSUPPORTED_TYPE CUPHY_STATUS_INVALID_CONVERSION CUPHY_STATUS_VALUE_OUT_OF_RANGE
See also
cuphyDataType_t,cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyElementWiseOp_t

◆ cuphyTensorReduction()

cuphyStatus_t cuphyTensorReduction ( cuphyTensorDescriptor_t  tDst,
void *  pDst,
cuphyTensorDescriptor_t  tSrc,
const void *  pSrc,
cuphyReductionOp_t  redOp,
int  reductionDim,
size_t  workspaceSize,
void *  workspace,
cudaStream_t  strm 
)

Populates an output tensor by performing an user-specified reduction operation on an input tensor.

The size of dimension reductionDim of the destination tensor tDst should be equal to 1. All other dimensions of tDst should be the same as the corresponding dimension in tSrc.

Returns CUPHY_STATUS_INVALID_ARGUMENT if tDst, pDst, tSrc, or pSrc is NULL, or if reductionDim is less than 0 or greater than CUPHY_DIM_MAX Returns CUPHY_STATUS_UNSUPPORTED_TYPE if the tensor types of tDst, and tSrc do not match the requirements for redOp Returns CUPHY_STATUS_SIZE_MISMATCH if the dimensions of the source and destination tensors do not match the requirements for a reduction Returns CUPHY_STATUS_SUCCESS if the reduction operation was initiated

Tensor Input Requirements:

  • CUPHY_ELEMWISE_ADD
    • The following type pairs are supported:
      • source = CUPHY_R_32F, destination = CUPHY_R_32F
      • source = CUPHY_BIT, destination = CUPHY_R_32U (count of bits in a column)
  • CUPHY_ELEMWISE_MIN (currently unimplemented)
    • destination and source tensors must be the same type
  • CUPHY_ELEMWISE_MAX (currently unimplemented)
    • destination and source tensors must be the same type
Parameters
tDst- descriptor for output tensor
pDst- address of output tensor memory
tSrc- descriptor for input tensor
pSrc- address of input tensor memory
redOp- cuphyReductionOp_t describing the operation to perform
reductionDim- dimension to reduce across
workspaceSize- size of workspace buffer (currently ignored)
workspace- address of workspace buffer (currently ignored)
strm- CUDA stream for invocation of tile operation
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT CUPHY_STATUS_SIZE_MISMATCH CUPHY_STATUS_UNSUPPORTED_TYPE
See also
cuphyDataType_t,cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyReductionOp_t

◆ cuphyTileTensor()

cuphyStatus_t cuphyTileTensor ( cuphyTensorDescriptor_t  tDst,
void *  pDst,
cuphyTensorDescriptor_t  tSrc,
const void *  pSrc,
int  tileRank,
const int *  tileExtents,
cudaStream_t  strm 
)

Populates tensor memory by replicating the input tensor using one or more copies in each dimension.

Returns CUPHY_STATUS_INVALID_ARGUMENT if tDst, pDst, tSrc, pSrc, or tileExtents is NULL, or if tileRank is 0 Returns CUPHY_STATUS_UNSUPPORTED_TYPE if the tensor type of tDst and tSrc do not match Returns CUPHY_STATUS_SIZE_MISMATCH if the destination tensor dimensions are not equal to the product of the source dimensions and the tile extents Returns CUPHY_STATUS_SUCCESS if the tiling operation was initiated

Parameters
tDst- descriptor for output tensor
pDst- address of output tensor memory
tSrc- descriptor for input tensor
pSrc- address of input tensor memory
tileRank- number of tile dimensions
tileExtents- array with the number of tiles in each dimension
strm- CUDA stream for invocation of tile operation
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT CUPHY_STATUS_INVALID_CONVERSION CUPHY_STATUS_VALUE_OUT_OF_RANGE
See also
cuphyDataType_t,cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString