Part 3. Configure gNB Server using Aerial Devkit

To install the Aerial tools follow the cuBB installation guide.

The ARC thread to core assignment functionality has been improved. The L1 related threads, that need to isolate cores in a monolithic block, were moved and the rest are left to OAI L2+ to use. Core 2-6 are used for cuPHY workers cores. Core 7 is used for cuPHY lowprio thread. Core 8 is used for the cuPHY timer thread and core 9 for PTP and PHC2SYS.

To install the Aerial tools follow the Aerial devkit cuBB installation guide.

The ARC thread-to-core assignment functionality is different from standard Aerial installation. Layer 1 threads need to be isolated in a monolithic block and have been moved, with the rest left to layers 2 and higher. Cores 2-6 are used as cuPHY workers cores. Core 7 is used for the cuPHY lowprio thread. Core 8 is used for the cuPHY timer thread, and core 9 for PTP and PHC2SYS.

Configure Linux Kernel Command-Line for ARC

To set kernel command-line parameters, edit the GRUB_CMDLINE_LINUX_DEFAULT parameter in the grub file /etc/default/grub andmodify the following parameters.

Note

The following kernel parameters are optimized for the Aerial DevKit with 24 cores Xeon Gold 6240R and 96GB memory. For ARC, typically it is optimal to configure the gNB to isolate core 2 to 10 for Aerial, and leave the other cores for use by OAI L2+.

To automatically append the grub file with these changes, enter this command:

Copy
Copied!
            

$ sudo sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& default_hugepagesz=1G hugepagesz=1G hugepages=16 tsc=reliable clocksource=tsc intel_idle.max_cstate=0 mce=ignore_ce processor.max_cstate=0 intel_pstate=disable audit=0 idle=poll isolcpus=2-10 rcu_nocb_poll nosoftlockup iommu=off intel_iommu=off irqaffinity=0-1,22-23/' /etc/default/grub


Apply the Changes and Reboot to Load the Kernel

Copy
Copied!
            

$ sudo update-grub $ sudo reboot

After rebooting, enter the following command to check whether the system has booted into the low-latency kernel:

Copy
Copied!
            

$ uname -r 5.15.0-1042-nvidia-lowlatency

Enter this command to check that the kernel command-line parameters are configured properly:

Copy
Copied!
            

$ cat /proc/cmdline BOOT_IMAGE=/vmlinuz-5.15.0-1042-nvidia-lowlatency root=/dev/mapper/ubuntu--vg-ubuntu--lv ro default_hugepagesz=1G hugepagesz=1G hugepages=16 tsc=reliable clocksource=tsc intel_idle.max_cstate=0 mce=ignore_ce processor.max_cstate=0 intel_pstate=disable audit=0 idle=poll isolcpus=2-10 rcu_nocb_poll nosoftlockup iommu=off intel_iommu=off irqaffinity=0-1,22-23


Change Core for ptp4l and phc2sys

Edit /lib/systemd/system/ptp4l.service:

Copy
Copied!
            

ExecStart=taskset -c 9 /usr/sbin/ptp4l -f /etc/ptp.conf

Edit /lib/systemd/system/phc2sys.service:

Copy
Copied!
            

ExecStart=/bin/sh -c "taskset -c 9 /usr/sbin/phc2sys -s /dev/ptp$(ethtool -T ens6f0 | grep PTP | awk '{print $4}')-c CLOCK_REALTIME -n 24 -O 0 -R 256 -u 256"


To install the Aerial tools, follow the Dell R750 cuBB installation guide.

The ARC thread-to-core assignment functionality is different from standard Aeriald installation. Layer 1 threads need to be isolated in a monolithic block and have been moved, with the rest left to layers 2 and higher. Cores 5,7,9,11,13 are used as cuPHY workers cores. Core 17 is used for the cuPHY lowprio thread. Core 15 is used for the cuPHY timer thread, and core 19 for PTP and PHC2SYS.

Configure the Linux Kernel Command Line for ARC

To set kernel command-line parameters, modify the following parameters under the``GRUB_CMDLINE_LINUX_DEFAULT`` parameter in the grub file (/etc/default/grub).

To automatically append the grub file with these changes, use this command:

Copy
Copied!
            

$ sudo sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& pci=realloc=off default_hugepagesz=1G hugepagesz=1G hugepages=16 tsc=reliable clocksource=tsc intel_idle.max_cstate=0 mce=ignore_ce processor.max_cstate=0 intel_pstate=disable audit=0 idle=poll rcu_nocb_poll nosoftlockup iommu=off irqaffinity=0-3,44-47 isolcpus=5,7,9,11,13,15,17,19,21 noht/' /etc/default/grub


Apply the Changes and Load the Kernel

Use the following commands to apply the command-line changes and reboot the system.

Copy
Copied!
            

$ sudo update-grub $ sudo reboot

After rebooting, enter the following command to check whether the system has booted into the low-latency kernel:

Copy
Copied!
            

$ uname -r 5.15.0-1042-nvidia-lowlatency

Enter this command to check that the kernel command-line parameters are configured properly:

Copy
Copied!
            

$ cat /proc/cmdline BOOT_IMAGE=/vmlinuz-5.15.0-1042-nvidia-lowlatency root=/dev/mapper/ubuntu--vg-ubuntu--lv ro pci=realloc=off default_hugepagesz=1G hugepagesz=1G hugepages=16 tsc=reliable clocksource=tsc intel_idle.max_cstate=0 mce=ignore_ce processor.max_cstate=0 intel_pstate=disable audit=0 idle=poll rcu_nocb_poll nosoftlockup iommu=off irqaffinity=0-3,44-47 isolcpus=5,7,9,11,13,15,17,19,21 noht


Change the Core for ptp4l and phc2sys

Edit the /lib/systemd/system/ptp4l.service file:

Copy
Copied!
            

ExecStart=taskset -c 19 /usr/sbin/ptp4l -f /etc/ptp.conf

Edit the /lib/systemd/system/phc2sys.service file:

Copy
Copied!
            

ExecStart=/bin/sh -c "taskset -c 19 /usr/sbin/phc2sys -s /dev/ptp$(ethtool -T enp204s0f1np1 | grep PTP | awk '{print $4}')-c CLOCK_REALTIME -n 24 -O 0 -R 256 -u 256"


Previous Part 2. Configure the Network Hardware
Next Part 4. Install ARC Using SDK Manager
© Copyright 2023, NVIDIA.. Last updated on Feb 13, 2024.