Supported Test Vector Configurations
This release of the cuBB SDK currently supports the following test-vector configurations.
TC start |
TC end |
Description |
TV generated |
cuPHY pass |
cuBB pass |
---|---|---|---|---|---|
7201 | 7201 | base | 1 | 1 | 1 |
7202 | 7203 | mcsTable | 2 | 2 | 2 |
7204 | 7204 | mcs | 1 | 1 | 1 |
7205 | 7207 | num of layers | 3 | 3 | 3 |
7208 | 7208 | rb0, Nrb | 1 | 1 | 1 |
7209 | 7210 | sym0 | 2 | 2 | 2 |
7211 | 7211 | dmsr0 | 1 | 1 | 1 |
7212 | 7213 | Nsym | 2 | 2 | 2 |
7214 | 7214 | SCID | 1 | 1 | 1 |
7215 | 7215 | BWP0, nBWP | 1 | 1 | 1 |
7216 | 7216 | RNTI | 1 | 1 | 1 |
7217 | 7219 | addPos | 3 | 3 | 3 |
7220 | 7220 | dataScId | 1 | 1 | 1 |
7221 | 7222 | maxLen | 2 | 2 | 2 |
7223 | 7223 | dmrsScId | 1 | 1 | 1 |
7224 | 7224 | nCdm | 1 | 1 | 1 |
7225 | 7225 | port0 | 1 | 1 | 1 |
7226 | 7228 | nAnt | 3 | 2 | 1 |
7229 | 7229 | slotIdx | 1 | 1 | 1 |
7230 | 7232 | rvIdx | 3 | 3 | 3 |
7233 | 7235 | FDM | 3 | 3 | 3 |
7236 | 7241 | CDM | 6 | 6 | 5 |
7242 | 7244 | rvIdx>0/BGN=1 | 3 | 3 | 3 |
7245 | 7245 | ulGridSize=106 | 1 | 1 | 0 |
7246 | 7247 | dmrs_par per Ueg | 2 | 2 | 2 |
7248 | 7250 | additional FDM | 3 | 3 | 3 |
7251 | 7257 | precoding | 7 | 7 | 7 |
7258 | 7260 | mapping type B | 3 | 3 | 3 |
7261 | 7272 | Flexible DMRS ports | 12 | 12 | 11 |
7273 | 7273 | MCS > 28 | 1 | 1 | 1 |
7274 | 7279 | additional nCDM=1 | 6 | 6 | 6 |
7280 | 7283 | Flexible SLIV | 4 | 4 | 4 |
7301 | 7320 | multi-params | 20 | 20 | 18 |
7321 | 7323 | LBRM | 3 | 3 | 3 |
7324 | 7326 | HARQ-rx | 3 | 3 | 0 |
7327 | 7330 | 8/16 UEs | 4 | 4 | 4 |
7331 | 7338 | multiple layers | 8 | 8 | 8 |
7340 | 7340 | Multi-layers with nAnt=16 | 1 | 1 | 0 |
7401 | 7403 | CFO | 3 | 3 | 3 |
7404 | 7406 | TO | 3 | 3 | 3 |
7407 | 7407 | RSSI | 1 | 1 | 1 |
7408 | 7408 | CFO w/ SDM | 1 | 1 | 1 |
7409 | 7409 | TO w/ SDM | 1 | 1 | 1 |
7410 | 7411 | CEE-TDI | 2 | 2 | 2 |
7412 | 7413 | rx power | 2 | 2 | 2 |
7414 | 7414 | TDI maxLen = 2 | 1 | 1 | 1 |
7415 | 7417 | small/big/zero rx | 3 | 3 | 3 |
7418 | 7419 | additional TDI | 2 | 2 | 2 |
7420 | 7426 | IRC=0 | 7 | 7 | 7 |
7427 | 7432 | SINR meas | 6 | 6 | 6 |
7501 | 7516 | UCI on PUSCH (w/o data) | 16 | 16 | 16 |
7517 | 7530 | UCI on PUSCH (w/ data) | 14 | 14 | 14 |
7531 | 7531 | UciOnPusch DTX | 1 | 1 | 0 |
7532 | 7532 | UciOnPusch CRC fail | 1 | 1 | 0 |
7533 | 7534 | UciOnPusch addPos | 2 | 2 | 2 |
7551 | 7570 | UciOnPusch (multi-params) | 20 | 20 | 20 |
7571 | 7575 | UCI w/ and w/o data | 5 | 5 | 1 |
7601 | 7613 | FR1 BW mu = 1 | 13 | 13 | 1 |
7614 | 7621 | FR1 BW mu = 0 | 8 | 8 | 0 |
7901 | 7901 | demo_msg3 | 1 | 1 | 1 |
7902 | 7902 | demo_traffic_ul | 1 | 1 | 1 |
7903 | 7904 | UciOnPusch conformance | 0 | 0 | 0 |
7016 | 7153 | sweep Zc/mcs (skip 7016,7017,7024,7025,7032,7039,7045,7057) | 130 | 130 | 128 |
TC start |
TC end |
Description |
TV generated |
cuPHY pass |
cuBB pass |
---|---|---|---|---|---|
6001 | 6003 | bases for format 0 | 3 | 3 | 3 |
6004 | 6010 | vary single parameter for format 0 | 7 | 7 | 7 |
6011 | 6040 | vary multiple parameters for format 0 | 30 | 30 | 30 |
6041 | 6046 | vary slotIdx (single-UCI) for format 0 | 6 | 6 | 6 |
6047 | 6056 | multi-UCI tests for format 0 | 10 | 10 | 10 |
6057 | 6061 | vary slotIdx (multi-UCI) for format 0 | 5 | 5 | 5 |
6101 | 6103 | bases for format 1 | 3 | 3 | 3 |
6104 | 6116 | vary single parameter for format 1 | 13 | 13 | 13 |
6117 | 6146 | vary multiple parameters for format 1 | 30 | 30 | 30 |
6147 | 6155 | vary slotIdx (single-UCI) for format 1 | 9 | 9 | 9 |
6156 | 6173 | multi-UCI tests for format 1 | 18 | 18 | 18 |
vary slotIdx (multi-UCI) for format 1 | |||||
6201 | 6203 | bases for format 2 | 3 | 3 | 3 |
6204 | 6219 | test Nf for format 2 | 16 | 16 | 16 |
6220 | 6235 | test Nt and freq hopping for format 2 | 16 | 16 | 16 |
6236 | 6236 | 11 info bits and 2 PRBS for format 2 | 1 | 1 | 1 |
6239 | 6245 | different payload sizes for format 2 | 7 | 7 | 7 |
6301 | 6310 | bases for format 3 | 10 | 10 | 10 |
6311 | 6313 | multi-UCI tests for format 3 | 3 | 3 | 3 |
6314 | 6324 | tests with freqHop enabled for format 3 | 11 | 11 | 11 |
6325 | 6335 | tests with freqHop disabled for format 3 | 11 | 11 | 11 |
6336 | 6346 | tests with add’l DMRS postion, freqHop enabled for format 3 | 11 | 11 | 11 |
6347 | 6357 | tests with add’l DMRS postion, freqHop disabled for format 3 | 11 | 11 | 11 |
6358 | 6364 | different payload sizes for format 3 | 7 | 7 | 7 |
6365 | 6373 | 24-UCI tests for format 3 | 9 | 9 | 9 |
6501 | 6513 | sweep different bandwidth for format 0, mu = 1 | 13 | 13 | 13 |
6514 | 6526 | sweep different bandwidth for format 1, mu = 1 | 13 | 13 | 13 |
6527 | 6539 | sweep different bandwidth for format 2, mu = 1 | 13 | 13 | 13 |
6540 | 6552 | sweep different bandwidth for format 3, mu = 1 | 13 | 13 | 13 |
6553 | 6560 | sweep different bandwidth for format 0, mu = 0 | 8 | 8 | 0 |
6561 | 6568 | sweep different bandwidth for format 1, mu = 0 | 8 | 8 | 0 |
6569 | 6576 | sweep different bandwidth for format 2, mu = 0 | 8 | 8 | 0 |
6577 | 6584 | sweep different bandwidth for format 3, mu = 0 | 8 | 8 | 0 |
6585 | 6586 | rx power for format 0 | 2 | 2 | 2 |
6587 | 6588 | rx power for format 1 | 2 | 2 | 2 |
6589 | 6590 | rx power for format 2 | 2 | 2 | 2 |
6591 | 6592 | rx power for format 3 | 2 | 2 | 2 |
6593 | 6595 | very small/very big/forcRxZero rx power for format 0 | 3 | 3 | 3 |
6596 | 6598 | very small/very big/forcRxZero rx power for format 1 | 3 | 3 | 3 |
6599 | 6601 | very small/very big/forcRxZero rx power for format 2 | 3 | 3 | 3 |
6602 | 6605 | very small/very big/forcRxZero rx power for format 3 | 4 | 4 | 4 |
6801 | 6802 | perf TV F08 | 2 | 2 | 2 |
6803 | 6804 | perf TV F14 | 2 | 2 | 2 |
TC start |
TC end |
Description |
TV generated |
cuPHY pass |
cuBB pass |
---|---|---|---|---|---|
5001 | 5001 | base | 1 | 1 | 1 |
5002 | 5002 | format 0 | 1 | 1 | 0 |
5003 | 5003 | rootIdx | 1 | 1 | 1 |
5004 | 5004 | zoneIdx | 1 | 1 | 1 |
5005 | 5005 | prmbIdx | 1 | 1 | 1 |
5006 | 5006 | Nant | 1 | 1 | 0 |
5007 | 5007 | N_nc | 1 | 1 | 1 |
5008 | 5008 | delay | 1 | 1 | 1 |
5009 | 5009 | SNR | 1 | 1 | 1 |
5010 | 5010 | CFO | 1 | 1 | 1 |
5011 | 5011 | 2-UE | 1 | 1 | 1 |
5012 | 5012 | 4-UE | 1 | 1 | 1 |
5013 | 5013 | 4FDM/16UE | 1 | 1 | 1 |
5014 | 5018 | rx power | 5 | 5 | 5 |
5101 | 5101 | FDD,mu=0,B4,nAnt=2 | 1 | 1 | 0 |
5102 | 5102 | FDD,mu=1,B4,nAnt=4 | 1 | 1 | 1 |
5103 | 5103 | TDD,mu=0,B4,nAnt=8 | 1 | 1 | 0 |
5104 | 5104 | TDD,mu=1,B4,nAnt=16 | 1 | 1 | 0 |
5105 | 5105 | FDD,mu=0,F0,nAnt=16 | 1 | 1 | 0 |
5106 | 5106 | FDD,mu=1,F0,nAnt=8 | 1 | 1 | 0 |
5107 | 5107 | TDD,mu=0,F0,nAnt=4 | 1 | 1 | 0 |
5108 | 5108 | TDD,mu=1,F0,nAnt=2 | 1 | 1 | 0 |
5201 | 5213 | FR1 BW mu = 1 | 13 | 13 | 13 |
5214 | 5221 | FR1 BW mu = 0 | 8 | 8 | 0 |
5801 | 5802 | perf TV F08 | 2 | 2 | 2 |
5803 | 5804 | perf TV F14 | 2 | 2 | 0 |
5901 | 5901 | demo_msg1 | 1 | 1 | 1 |
5911 | 5914 | comformance TC | 4 | 4 | 0 |
TC start |
TC end |
Description |
TV generated |
cuPHY pass |
cuBB pass |
---|---|---|---|---|---|
3201 | 3201 | base | 1 | 1 | 1 |
3202 | 3203 | mcsTable | 2 | 2 | 2 |
3204 | 3204 | mcs | 1 | 1 | 1 |
3205 | 3207 | num of layers | 3 | 3 | 3 |
3208 | 3208 | rb0, Nrb | 1 | 1 | 1 |
3209 | 3210 | sym0 | 2 | 2 | 2 |
3211 | 3211 | dmrs0 | 1 | 1 | 1 |
3212 | 3213 | Nsym | 2 | 2 | 2 |
3214 | 3214 | SCID | 1 | 1 | 0 |
3215 | 3215 | BWP0, nBWP | 1 | 1 | 1 |
3216 | 3216 | RNTI | 1 | 1 | 1 |
3217 | 3219 | addPos | 3 | 3 | 3 |
3220 | 3220 | dataScId | 1 | 1 | 1 |
3221 | 3222 | maxLen | 2 | 2 | 2 |
3223 | 3223 | dmrsScId | 1 | 1 | 1 |
3224 | 3224 | nCdm | 1 | 1 | 1 |
3225 | 3225 | port0 | 1 | 1 | 0 |
3226 | 3228 | nAnt | 3 | 3 | 1 |
3229 | 3229 | slotIdx | 1 | 1 | 1 |
3230 | 3232 | rvIdx | 3 | 3 | 3 |
3233 | 3235 | FDM | 3 | 3 | 3 |
3236 | 3241 | SDM/SCID | 6 | 6 | 4 |
3242 | 3244 | rvIdx>0/BGN=1 | 3 | 3 | 3 |
3245 | 3245 | dlGridSize=106 | 1 | 1 | 0 |
3246 | 3247 | dmrs_par per Ueg | 2 | 2 | 1 |
3248 | 3254 | precoding | 7 | 7 | 4 |
3255 | 3257 | mapping type B | 3 | 3 | 3 |
3258 | 3260 | mixed precoding | 3 | 3 | 1 |
3261 | 3261 | refPoint | 1 | 1 | 1 |
3262 | 3262 | TxPower | 1 | 1 | 1 |
3263 | 3263 | modComp | |||
3264 | 3264 | precoding (mixed nPorts) | 1 | 1 | 0 |
3265 | 3265 | TxPower with 2 UEs | 1 | 1 | 1 |
3266 | 3267 | different rv | 2 | 2 | 2 |
3268 | 3269 | multi-layer | 2 | 2 | 0 |
3271 | 3276 | nCDM = 1 | 6 | 6 | 5 |
3321 | 3322 | LBRM | 2 | 2 | 2 |
3323 | 3333 | RE map from CSI-RS | 11 | 11 | 11 |
3334 | 3336 | 8/16 UEs (SU-MIMO) | 3 | 3 | 3 |
3337 | 3337 | 16 UEs (MU-MIMO) | 1 | 1 | 0 |
3401 | 3413 | FR1 BW mu = 1 | 13 | 13 | 1 |
3414 | 3421 | FR1 BW mu = 0 | 8 | 8 | 0 |
3901 | 3901 | demo_coreset0 | 1 | 1 | 1 |
3902 | 3902 | demo_msg2 | 1 | 1 | 1 |
3903 | 3903 | demo_msg4 | 1 | 1 | 1 |
3904 | 3904 | demo_traffic_dl | 1 | 1 | 1 |
3001 | 3015 | multi-params | 15 | 15 | 15 |
3016 | 3154 | sweep Zc/mcs (3016,3017,3024,3025,3032,3039,3045,3057 are skipped) | 131 | 131 | 131 |
TC start |
TC end |
Description |
TV generated |
cuPHY pass |
cuBB pass |
---|---|---|---|---|---|
2001 | 2001 | base | 1 | 1 | 0 |
2002 | 2002 | slotIdx | 1 | 1 | 1 |
2003 | 2003 | nBWP | 1 | 1 | 1 |
2004 | 2004 | BPW0 | 1 | 1 | 1 |
2005 | 2005 | sym0 | 1 | 1 | 1 |
2006 | 2007 | Nsym | 2 | 2 | 2 |
2008 | 2009 | crstIdx | 2 | 2 | 2 |
2010 | 2010 | intl | 1 | 1 | 1 |
2011 | 2012 | nBndl | 2 | 2 | 2 |
2013 | 2014 | nIntl | 2 | 2 | 2 |
2015 | 2015 | nShift | 1 | 1 | 1 |
2016 | 2016 | isCSS | 1 | 1 | 1 |
2017 | 2017 | rnti | 1 | 1 | 1 |
2018 | 2018 | scrbId | 1 | 1 | 1 |
2019 | 2019 | scrbRnti | 1 | 1 | 1 |
2020 | 2022 | aggrL | 3 | 3 | 3 |
2023 | 2023 | dbQam | 1 | 1 | 1 |
2024 | 2024 | dbDmrs | 1 | 1 | 1 |
2025 | 2025 | Npayload | 1 | 1 | 1 |
2026 | 2027 | crstMap | 2 | 2 | 2 |
2028 | 2028 | nDCI | 1 | 1 | 1 |
2029 | 2029 | Npayload | 1 | 1 | 1 |
2030 | 2030 | aggrL | 1 | 1 | 1 |
2031 | 2031 | precoding | 1 | 1 | 1 |
2032 | 2032 | modComp | |||
2033 | 2033 | multi-PDCCH | 1 | 1 | 1 |
2101 | 2112 | multi-params | 12 | 12 | 12 |
2201 | 2213 | FR1 BW mu = 1 | 13 | 13 | 1 |
2214 | 2221 | FR1 BW mu = 0 | 8 | 8 | 0 |
2801 | 2802 | perf TV F14 | 2 | 2 | 2 |
2803 | 2804 | perf TV F08 | 2 | 2 | 2 |
2805 | 2806 | perf TV F09 | 2 | 2 | 2 |
2901 | 2901 | demo_msg2 | 1 | 1 | 1 |
2902 | 2902 | demo_msg4 | 1 | 1 | 1 |
2903 | 2903 | demo_coreset0 | 1 | 1 | 1 |
2904 | 2904 | demo_traffic_dl | 1 | 1 | 1 |
2905 | 2905 | demo_msg5 | 1 | 1 | 1 |
TC start |
TC end |
Description |
TV generated |
cuPHY pass |
cuBB pass |
---|---|---|---|---|---|
1001 | 1001 | base | 1 | 1 | 1 |
1002 | 1002 | mu = 0 | 1 | 1 | 0 |
1003 | 1003 | N_CELL_ID | 1 | 1 | 1 |
1004 | 1004 | n_hf = 1 | 1 | 1 | 1 |
1005 | 1005 | L_max = 4 | 1 | 1 | 1 |
1006 | 1006 | k_SSB | 1 | 1 | 1 |
1007 | 1007 | offsetPointA | 1 | 1 | 1 |
1008 | 1008 | SFN | 1 | 1 | 1 |
1009 | 1009 | blockIdx | 1 | 1 | 1 |
1010 | 1010 | precoding | 1 | 1 | 1 |
1011 | 1011 | betaPss | 1 | 1 | 1 |
1101 | 1101 | mu=0, 1SSB | 1 | 1 | 0 |
1102 | 1102 | mu=1, 1SSB | 1 | 1 | 1 |
1103 | 1103 | mu=1, 2SSB | 1 | 1 | 0 |
1104 | 1104 | mu=1, 2SSB | 1 | 1 | 1 |
1202 | 1213 | FR1 BW, mu = 1 | 12 | 12 | 7 |
1214 | 1221 | FR1 BW, mu = 0 | 8 | 8 | 0 |
1801 | 1801 | Perf TV | 1 | 1 | 1 |
1901 | 1901 | demo_ssb | 1 | 1 | 1 |
1902 | 1902 | for CP pipeline | 1 | 1 | 1 |
TC start |
TC end |
Description |
TV generated |
cuPHY pass |
cuBB pass |
---|---|---|---|---|---|
4001 | 4004 | nPorts = 1 | 4 | 4 | 4 |
4005 | 4007 | nPorts = 2 | 3 | 3 | 1 |
4008 | 4009 | nPorts = 4 | 2 | 2 | 2 |
4010 | 4038 | nPorts > 4, row > 5 | 29 | 29 | 0 |
4039 | 4039 | RB0 | 1 | 1 | 1 |
4040 | 4040 | nRB | 1 | 1 | 1 |
4041 | 4041 | sym0 | 1 | 1 | 1 |
4042 | 4042 | sym1 | 1 | 1 | 0 |
4043 | 4043 | nID | 1 | 1 | 1 |
4044 | 4044 | power control | 1 | 1 | 0 |
4045 | 4050 | freqDomainAllocation | 6 | 6 | 3 |
4051 | 4051 | idxSlot | 1 | 1 | 1 |
4052 | 4054 | batching | 3 | 3 | 3 |
4055 | 4055 | small gird size | 1 | 1 | 0 |
4056 | 4056 | TRS | 1 | 1 | 1 |
4057 | 4057 | precoding | |||
4058 | 4058 | modComp | |||
4059 | 4060 | 16/32 CSIRS PDUs | 2 | 2 | 2 |
4101 | 4103 | multiple parameters | 3 | 3 | 0 |
4201 | 4213 | FR1 BW mu = 1 | 13 | 13 | 0 |
4214 | 4221 | FR1 BW mu = 0 | 8 | 8 | 0 |
4801 | 4801 | perf TV F08 | 1 | 1 | 1 |
4802 | 4802 | perf TV F09 | 1 | 1 | 0 |
4803 | 4803 | perf TV F14 | 1 | 1 | 0 |
TC start |
TC end |
Description |
TV generated |
cuPHY pass |
cuBB pass |
---|---|---|---|---|---|
90001 | 90007 | single channel | 7 | 7 | 7 |
90011 | 90012 | dlmix/ulmix | 2 | 2 | 2 |
90013 | 90015 | s-slot | 3 | 3 | 3 |
90016 | 90018 | multi-cell base case | 3 | 3 | 3 |
90019 | 90019 | prcd+noPrcd | 1 | 1 | 1 |
90020 | 90020 | BFP14+BFP9 | 1 | 1 | 1 |
90021 | 90022 | HARQ | 2 | 2 | 2 |
90023 | 90023 | empty slot | 1 | 1 | 1 |
The ldpc\_perf\_collect.py
Python script from the cuPHY repository can
be used to perform error rate tests for the cuPHY LDPC decoder.
Currently, there are test input files defined for Z = [64, 128, 256,
384], BG = [1,2]. The current tests check whether the block error rate
(BLER, also sometimes referred to as Frame Error Rate or FER) is less
than 0.1.
From the build directory, the following commands will run the tests:
../util/ldpc/ldpc\_perf\_collect.py --mode test -i
../util/ldpc/test/ldpc\_decode\_BG1\_Z64\_BLER0.1.txt -f -w 800 -P
../util/ldpc/ldpc\_perf\_collect.py --mode test -i
../util/ldpc/test/ldpc\_decode\_BG1\_Z128\_BLER0.1.txt -f -w 800 -P
../util/ldpc/ldpc\_perf\_collect.py --mode test -i
../util/ldpc/test/ldpc\_decode\_BG1\_Z256\_BLER0.1.txt -f -w 800 -P
../util/ldpc/ldpc\_perf\_collect.py --mode test -i
../util/ldpc/test/ldpc\_decode\_BG1\_Z384\_BLER0.1.txt -f -w 800 -P
../util/ldpc/ldpc\_perf\_collect.py --mode test -i
../util/ldpc/test/ldpc\_decode\_BG2\_Z64\_BLER0.1.txt -f -w 800 -P
../util/ldpc/ldpc\_perf\_collect.py --mode test -i
../util/ldpc/test/ldpc\_decode\_BG2\_Z128\_BLER0.1.txt -f -w 800 -P
../util/ldpc/ldpc\_perf\_collect.py --mode test -i
../util/ldpc/test/ldpc\_decode\_BG2\_Z256\_BLER0.1.txt -f -w 800 -P
../util/ldpc/ldpc\_perf\_collect.py --mode test -i
../util/ldpc/test/ldpc\_decode\_BG2\_Z384\_BLER0.1.txt -f -w 800 -P
Each test input file contains multiple tests for different code rates, as specified by the number of parity nodes. The format of the input files has the following form:
# BG Z num_parity num_iter SNR max_BER max_BLER
#--------------------------------------------------------------
1 384 4 10 6.87 1 0.1
1 384 5 10 6.15 1 0.1
1 384 6 10 5.64 1 0.1
1 384 7 10 5.17 1 0.1
1 384 8 10 4.79 1 0.1
...
After running each of the test cases, the ldpc\_perf\_collect.py
script
will display an output table:
+-----------------------------------------------------------------------------------------------------------+
| # BG Z num\_parity num\_iter SNR max\_BER BER max\_BLER BLER STATUS |
| |
| 1 384 4 10 6.870 1.000000e+00 4.833980e-04 1.000000e-01 8.750000e-02 PASS |
| |
| 1 384 5 10 6.150 1.000000e+00 1.481120e-04 1.000000e-01 7.250000e-02 PASS |
| |
| 1 384 6 10 5.640 1.000000e+00 5.652230e-05 1.000000e-01 8.000000e-02 PASS |
| |
| 1 384 7 10 5.170 1.000000e+00 7.886480e-05 1.000000e-01 8.750000e-02 PASS |
| |
| 1 384 8 10 4.790 1.000000e+00 1.673470e-04 1.000000e-01 8.375000e-02 PASS |
| |
| 1 384 9 10 4.480 1.000000e+00 1.185190e-04 1.000000e-01 7.625000e-02 PASS |
| |
| 1 384 10 10 4.200 1.000000e+00 8.552320e-05 1.000000e-01 8.875000e-02 PASS |
| |
| 1 384 11 10 3.920 1.000000e+00 5.385890e-05 1.000000e-01 8.375000e-02 PASS |
| |
| 1 384 12 10 3.660 1.000000e+00 1.234020e-04 1.000000e-01 9.125000e-02 PASS |
| |
| 1 384 13 10 3.450 1.000000e+00 7.013490e-05 1.000000e-01 8.000000e-02 PASS |
| |
| 1 384 14 10 3.220 1.000000e+00 7.620150e-05 1.000000e-01 8.125000e-02 PASS |
| |
| 1 384 15 10 3.020 1.000000e+00 5.800190e-05 1.000000e-01 7.250000e-02 PASS |
| |
| 1 384 16 10 2.830 1.000000e+00 8.774270e-05 1.000000e-01 8.375000e-02 PASS |
| |
| 1 384 17 10 2.640 1.000000e+00 4.838420e-05 1.000000e-01 7.750000e-02 PASS |
| |
| 1 384 18 10 2.500 1.000000e+00 3.950640e-05 1.000000e-01 7.875000e-02 PASS |
| |
| 1 384 19 10 2.310 1.000000e+00 3.551140e-05 1.000000e-01 8.375000e-02 PASS |
| |
| 1 384 20 10 2.150 1.000000e+00 2.500590e-05 1.000000e-01 8.500000e-02 PASS |
| |
| 1 384 21 10 1.980 1.000000e+00 3.181230e-05 1.000000e-01 7.625000e-02 PASS |
| |
| 1 384 22 10 1.810 1.000000e+00 3.299600e-05 1.000000e-01 8.000000e-02 PASS |
| |
| 1 384 23 10 1.670 1.000000e+00 2.618960e-05 1.000000e-01 9.125000e-02 PASS |
| |
| 1 384 24 10 1.530 1.000000e+00 3.136840e-05 1.000000e-01 7.875000e-02 PASS |
| |
| 1 384 25 10 1.400 1.000000e+00 2.663350e-05 1.000000e-01 8.375000e-02 PASS |
| |
| 1 384 26 10 1.270 1.000000e+00 3.255210e-05 1.000000e-01 8.625000e-02 PASS |
| |
| 1 384 27 10 1.140 1.000000e+00 2.692950e-05 1.000000e-01 7.500000e-02 PASS |
| |
| 1 384 28 10 0.999 1.000000e+00 5.149150e-05 1.000000e-01 9.250000e-02 PASS |
| |
| 1 384 29 10 0.889 1.000000e+00 3.225620e-05 1.000000e-01 8.750000e-02 PASS |
| |
| 1 384 30 10 0.772 1.000000e+00 3.536340e-05 1.000000e-01 9.375000e-02 PASS |
| |
| 1 384 31 10 0.650 1.000000e+00 4.113400e-05 1.000000e-01 9.125000e-02 PASS |
| |
| 1 384 32 10 0.547 1.000000e+00 3.965440e-05 1.000000e-01 8.750000e-02 PASS |
| |
| 1 384 33 10 0.428 1.000000e+00 5.489460e-05 1.000000e-01 9.625000e-02 PASS |
| |
| 1 384 34 10 0.333 1.000000e+00 5.030780e-05 1.000000e-01 8.875000e-02 PASS |
| |
| 1 384 35 10 0.220 1.000000e+00 3.906250e-05 1.000000e-01 8.875000e-02 PASS |
| |
| 1 384 36 10 0.127 1.000000e+00 2.929690e-05 1.000000e-01 8.250000e-02 PASS |
| |
| 1 384 37 10 0.034 1.000000e+00 3.225620e-05 1.000000e-01 9.000000e-02 PASS |
| |
| 1 384 38 10 -0.066 1.000000e+00 2.737330e-05 1.000000e-01 8.375000e-02 PASS |
| |
| 1 384 39 10 -0.170 1.000000e+00 2.722540e-05 1.000000e-01 8.500000e-02 PASS |
| |
| 1 384 40 10 -0.253 1.000000e+00 3.521540e-05 1.000000e-01 7.500000e-02 PASS |
| |
| 1 384 41 10 -0.344 1.000000e+00 5.563450e-05 1.000000e-01 9.375000e-02 PASS |
| |
| 1 384 42 10 -0.424 1.000000e+00 2.559780e-05 1.000000e-01 8.750000e-02 PASS |
| |
| 1 384 43 10 -0.515 1.000000e+00 4.690460e-05 1.000000e-01 9.500000e-02 PASS |
| |
| 1 384 44 10 -0.605 1.000000e+00 5.755800e-05 1.000000e-01 9.125000e-02 PASS |
| |
| 1 384 45 10 -0.693 1.000000e+00 3.980230e-05 1.000000e-01 8.000000e-02 PASS |
| |
| 1 384 46 10 -0.766 1.000000e+00 5.208330e-05 1.000000e-01 9.875000e-02 PASS |
| |
| 43 TESTS PASSED, 0 TESTS FAILED |
+-----------------------------------------------------------------------------------------------------------+
Plots of current SNR values used for BLER testing are shown below:
The Shared Memory (SHM) configuration file is located at ./cuPHY-CP/gt\_common\_libs/nvlog/config/nvlog\_config.yaml
. It contains
the following:
# nvlog config
# name: can see log file at /dev/shm/${name}.log and /tmp/${name}.log
# primary: In all processes logging to the same file, set the first starting porcess to be primary, set others to be secondary.
# Log levels: -1 - LOG\_NONE, 0 - LOG\_ERROR, 1 - LOG\_CONSOLE, 2 - LOG\_WARN, 3 - LOG\_INFO, 4 - LOG\_DEBUG, 5 - LOG\_VERBOSE
# prefix\_opts: refer to nvlog.h
# b7 - CPU core number that the caller thread is running on
# b6 - Caller thread name
# b5 - Caller thread ID
# b4 - Global 64-bit sequence number
# b3 - Log level: 'E', 'C', 'W', 'I', 'D', 'V' (Error, Console,
Warning, Info, Debug, Verbose)
# b2 - Module type: 'P', 'S', 'U' (Primary, Secondary, Unknown)
# b1 - Date and Time: 1970-01-01 00:00:00.000000
# b0 - Time Only: 00:00:00.000000
nvlog:
name: phy
shm\_log\_level: 3 # SHM log level
console\_log\_level: 1 # Console log level
max\_file\_size\_bits: 28 # Size = 2 ^ bits: The rotating log file /var/log/aerial/${name}.log size
shm\_cache\_size\_bits: 21 # Size = 2 ^ bits: SHM cache file /dev/shm/${name}.log size
log\_buf\_size: 1024 # Max length of one time call of the nvlog API
max\_threads: 64 # The MAX thread count which using nvlog togehter
save\_to\_file: 1 # Whether to save to a file
cpu\_core\_id: -1 # CPU core ID for the background log saving thread.-1 means not bind.
prefix\_opts: 0x89 # Log prefix of each line
max\_tag\_len: 32 # Max 31 printable characters
max\_tag\_num: 1024 # Max tag number
nvlog\_tags:
- 0: "" # Reserve number 0 for no tag print
shm\_level: 3 # Example: overlay shm\_log\_level for a tag
console\_level: 1 # Example: overlay console\_log\_level for a tag
- 10: "NVLOG" # nvlog
- 11: "NVLOG.TEST"
- 12: "NVLOG.ITAG"
Max_threads specifies the maximum number of process threads. The default value is 64 threads. To improve performance, the lock-free mechanism doesn’t use Compare-And-Swap, but needs to configure a maximum thread number.
Usage
String Tags
To print with a string tag, define a string TAG in code and use it directly:
#define STAG "NVLOG.STAG"
NVLOGI(STAG, "This is STAG C printf style log. level=%d\\n",LOG\_INFO);
NVSLOGI(STAG) << "This is STAG C++ stream style log. level=" <<LOG\_INFO << "\\n";
To print with a pre-defined integer tag, define an integer TAG in
nvlog\_config.yaml
:
nvlog\_tags:
- 10: "NVLOG" # nvlog
- 11: "NVLOG.TEST"
- 12: "NVLOG.ITAG"
Then use the integer TAG in code:
#define NVLOG\_TAG\_BASE\_NVLOG 10 // nvlog
#define ITAG (NVLOG\_TAG\_BASE\_NVLOG + 2) // "NVLOG.ITAG"
NVLOGI(ITAG, "This is ITAG C printf style log. level=%d\\n", LOG\_INFO);
NVSLOGI(ITAG) << "This is ITAG C++ stream style log. level=" << LOG\_INFO << "\\n";