cuPHY  0.1
CUDA PHY Layer Acceration Library
Functions
Modulation Mapper

This section describes the modulation function(s) of the cuPHY application programming interface. More...

Functions

cuphyStatus_t cuphyModulationGetDescrInfo (size_t *pDescrSizeBytes, size_t *pDescrAlignBytes)
 : Compute descriptor size and alignment for modulation mapper. 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...
 

Detailed Description

Function Documentation

◆ cuphyModulationGetDescrInfo()

cuphyStatus_t cuphyModulationGetDescrInfo ( size_t *  pDescrSizeBytes,
size_t *  pDescrAlignBytes 
)
Parameters
[in,out]pDescrSizeBytesSize in bytes of descriptor
[in,out]pDescrAlignBytesAlignment in bytes of descriptor
Returns
CUPHY_STATUS_SUCCESS or CUPHY_STATUS_INVALID_ARGUMENT

◆ cuphySetupModulation()

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 
)
Parameters
[in]modulationLaunchConfigPointer to cuphyModulationLaunchConfig.
[in]d_paramsPointer to PdschDmrsParams on the device. If nullptr, then symbols are allocated contiguously, starting from zero in modulation_output. If not, symbols are allocated in the appropriate Rbs, start position, in the {273*12, 14, 16} modulation_output tensor.
[in]input_descinput tensor descriptor; dimension ceil(num_bits/32.0). Not used.
[in]modulation_inputpointer to input tensor data Data is expected to be contiguously allocated for every layer without any gaps. Each layer should start at a uint32_t aligned boundary.
[in]max_num_symbolsmaximum number of symbols across all TBs.
[in]max_bits_per_layermaximum number of bits per layer across all TBs in modulation_input.
[in]num_TBsnumber of Transport Blocks contained in modulation_input
[in]workspacepointer to # TBs PerTBParams struct on the device. Only fields G and Qm are used.
[in]output_descoutput tensor descriptor; dimension (num_bits / modulation_order) if d_params=nullptr or {273*12, 14, 16} otherwise. Not used.
[in,out]modulation_outputpointer to output tensor (preallocated) Each symbol is a complex number using half-precision for the real and imaginary parts.
[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