Generating Test Vectors using Matlab 5GModel

Trying to generate GPU input vectors I get the following running the matlab command line

runRegression({‘TestVector’}, {‘allChannels’},‘compact’, [0, 1] )

Run genCfgTemplate …
Test runSim for DL …
Read config from cfg_template_DL.yaml

Channel: ssb pdcch pdsch csirs prach pucch pusch srs

Alloc: 1 1 1 1 0 0 0 0

==> PASS

Test runSim for UL …
Read config from cfg_template_UL.yaml

Channel: ssb pdcch pdsch csirs prach pucch pusch srs

Alloc: 0 0 0 0 1 1 1 1

UE # 0: PUSCH TB detected
RO # 0: 1 Prmb detected
UE # 0: PUCCH UCI detected
==> PASS

Test runSim_multiSlot …
Read config from cfg_dl_s0.yaml

Read config from cfg_dl_s1.yaml

Read config from cfg_ul_s1.yaml

Read config from cfg_ul_s2.yaml

Read config from ul_harq2_tx0.yaml

Read config from cfg_ul_s4.yaml

Read config from ul_harq2_tx1.yaml
‘nrPDCCHDecode’ requires 5G Toolbox.

Error in detPdcch>detPdcch_cuphy (line 253)
dcicw = nrPDCCHDecode(x(:),dmrsId,rntiBits);

Error in detPdcch (line 97)
[pdcch_payload] = detPdcch_cuphy(PdcchParamsList, Xtf);

Error in UEreceiver>UeDlPhyDetSig (line 587)
pdcch_payload_list = detPdcch(pdcchPduList, table, carrier, Xtf);

Error in UEreceiver (line 81)
[Phy, FAPIpdu] = UeDlPhyDetSig(Phy, FAPIpdu, rxSamp, rxSamp_noNoise);

Error in nrSimulator (line 308)
UE{idxUE} = UEreceiver(UE{idxUE}, rxSamp, rxSamp_noNoise);

Error in runSim_multiSlot (line 109)
[SysParList, UE, gNB] = nrSimulator(SysParList);

Error in runRegression (line 290)
errFlag = runSim_multiSlot(‘cfg_list.yaml’, ‘cfg_list’);

With ref to the document here e.g.
running-aerial-cuphy.pdf

I understand running this “All the cuPHY test vectors are generated and stored under nr_matlab/GPU_test_input .”

Can you please confirm how to fix the errors above so that I can generate the GPU test input.

I also get errors running only PUSCH e.g.

runRegression({‘TestVector’},{‘pusch’}, ‘full’)

Error using initChan
Unrecognized function or variable ‘nrTDLChannel’.

Error in nrSimulator (line 126)
Chan_UL{idxUE} = initChan(SysPar, idxUE, ‘UL’);

Error in testCompGenTV_pusch (line 961)
parfor n = 1:NallTest

Error in runRegression (line 439)
[nTC_pusch, err_pusch, nTV_pusch, detErr_pusch] = testCompGenTV_pusch(caseSet, compTvMode, subSetMod, relNum);

Example running UL rate match with h5 generated from the above push vector command line

cuPHY/examples/pusch_rateMatch$ ./cuphy_ex_pusch_rateMatch -i ./TVnr_7018_PUSCH_gNB_CUPHY_s0p0.h5
AERIAL_LOG_PATH set to /home/sbaker/AERIAL_LOG
Log file set to /home/sbaker/AERIAL_LOG/pusch_rateMatch.log
10:47:51.910299 WRN 1161612 0 [NVLOG.CPP] Using /home/sbaker/zodiacArtemis2/zodiac/trunk/Prototypes/Artemis2/cuda_test_3/cuPHY/nvlog/config/nvlog_config.yaml for nvlog configuration
nUes 1, nUeGrps 1
nMaxCbsPerTb 1 num_CBs 1
uciOnPuschFlag OFF
nMaxTbs 1 nMaxCbsPerTb 1 maxBytesRateMatch 52224
10:47:52.024385 WRN 1161612 0 [CUPHY.PUSCH_RX] LDPC throughput mode disabled
10:47:52.061376 WRN 1161612 0 [CUPHY.PUSCH_RX] detected 0 mismatches out of 416 rateMatchedLLRs
Exiting bg_fmtlog_collector - log queue ever was full: 0

Hi @stuart.baker ,

5G Model requires some toolboxes of MATLAB, e.g. 5G Toolbox.

Aerial container includes compiled version of 5G model, which does not require a MATLAB license. You can follow the steps in Using Aerial Python mcore Module to generate the test vectors.

Thank you.

This error is also due to the 5G Toolbox. You should not see this issue if Aerial mcore module is used to generate the TVs.

    case 'TDLA30-5-Low' 
        if strcmp(Chan.model_source, 'MATLAB5Gtoolbox')
            tdl = nrTDLChannel; % use MATLAB 5G toolbox

@stuart.baker

Please use the following command to use the TV for the whole push pipeline.

cuPHY/build/examples/pusch_rx_multi_pipe/cuphy_ex_pusch_rx_multi_pipe -i ~/<tv_name>.h5 -m 1

The test vectors are not meant to be used with individual PUSCH (or any other PHY channel) components.

Thank you.

Understood thank you for your replies we can close this issue.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.