Source: dgx-desktop-defaults
Section: non-free/libs
XS-Autobuild: yes
Priority: optional
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Build-Depends:
 debhelper-compat (= 13),
 dh-modaliases,
 shellcheck,
Standards-Version: 4.7.2
Vcs-Browser: https://git.launchpad.net/~canonical-nvidia/ubuntu/+source/dgx-desktop-defaults
Vcs-Git: https://git.launchpad.net/~canonical-nvidia/ubuntu/+source/dgx-desktop-defaults

Package: hwe-dgx-gb300ws-meta
Architecture: all
XB-Modaliases: ${modaliases}
Depends:
 ${misc:Depends},
Recommends:
 dgx-desktop-no-systemd-suspend,
 dgx-desktop-app-profiles-mixed-coherency,
 dgx-desktop-docker-gpus,
 dgx-desktop-docker-options,
 dgx-desktop-enable-persistenced,
 dgx-desktop-disable-init-on-alloc,
 dgx-desktop-disable-numa-balancing,
 dgx-desktop-enable-power-meter-cap,
 dgx-desktop-limits,
 dgx-desktop-nvidia-fs-loader,
 dgx-desktop-nvme-interrupt-coalescing,
 dgx-desktop-arp-configuration,
 dgx-desktop-crashkernel-configuration,
Description: Optimization Metapackage specific to NVIDIA DGX GB300ws machines
 This package provide several system configuration to optimize and
 improve the performance of NVIDIA DGX GB300 workstations.

Package: hwe-dgx-gb10-meta
Architecture: all
XB-Modaliases: ${modaliases}
Depends:
 ${misc:Depends},
 dgx-desktop-cppc-cpufreq-options,
 dgx-desktop-no-systemd-suspend,
 dgx-desktop-sbsa-gwdt-options,
Recommends:
 dgx-desktop-pro-activation,
 dgx-desktop-enable-persistenced,
 dgx-desktop-disable-init-on-alloc,
 dgx-desktop-disable-numa-balancing,
 dgx-desktop-enable-power-meter-cap,
 dgx-desktop-limits,
 dgx-desktop-nvidia-fs-loader,
 dgx-desktop-nvme-interrupt-coalescing,
 dgx-desktop-arp-configuration,
 dgx-desktop-kernel-configuration,
 dgx-desktop-crashkernel-configuration,
Description: Optimization Metapackage specific to NVIDIA DGX GB10 machines
 This package provide several system configuration to optimize and
 improve the performance of NVIDIA DGX GB10-based machines.

Package: dgx-desktop-disable-init-on-alloc
Architecture: all
Depends:
 ${misc:Depends},
Description: Disable init_on_alloc for NVIDIA DGX Desktop
 Prevents using CPU cycles to zero out memory before
 returning it to the caller. The requestor is the kernel, not user,
 thus already within the trust boundary and would be
 redundant. This is a huge perf impact if enabled on coherent
 memory systems.

Package: dgx-desktop-cppc-cpufreq-options
Architecture: all
Depends:
 ${misc:Depends},
Description: cppc_cpufreq configuration specific to Grace Blackwell machines
 This package provides a cppc_cpufreq configuration specific
 to Grace Blackwell GB10 machines

Package: dgx-desktop-disable-numa-balancing
Architecture: all
Depends:
 ${misc:Depends},
Description: Disable numa balancing for NVIDIA DGX Desktop
 Disables automatic page fault NUMA memory balancing for a
 perf benefit on the Grace Blackwell systems.

Package: dgx-desktop-enable-power-meter-cap
Architecture: all
Depends:
 ${misc:Depends},
Description: Enable power meter capability for NVIDIA DGX Desktop
 Exposes the power_cap sysfs nodes to enable finer grained
 power tuning.

Package: dgx-desktop-limits
Architecture: all
Depends:
 ${misc:Depends},
Description: Larger file descriptor limits to NVIDIA DGX Desktop
 High-performance GPU workloads often require increased file
 descriptor limits to support multiple concurrent processes and network
 connections

Package: dgx-desktop-nvidia-fs-loader
Architecture: all
Depends:
 ${misc:Depends},
Description: Load the nvidia-fs module to enable GDS
 GPUDirect Storage (GDS) enables direct memory access (DMA) transfers between
 GPU memory and storage devices, bypassing CPU bounce buffers. This direct
 data path significantly increases system bandwidth, reduces latency, and
 decreases CPU utilization, making it essential for data-intensive AI and HPC
 workloads on the DGX Station GB300.

Package: dgx-desktop-nvme-interrupt-coalescing
Architecture: all
Depends:
 ${misc:Depends}, nvme-cli,
Description: Enable NVMe Interrupt coalescing on compatible systems
 Interrupt coalescing batches multiple I/O completion events into a
 single interrupt, improving system performance under high storage
 throughput workloads

Package: dgx-desktop-sbsa-gwdt-options
Architecture: all
Depends:
 ${misc:Depends},
Description: GRUB configuration scripts specific to NVIDIA GB10 machines
 It configures the watchdog accordingly to the vendor recommendations.
 It prevents a firmware race condition that would cause unattended reboots,
 before this upstream fix https://lkml.org/lkml/2025/7/8/1771

Package: dgx-desktop-app-profiles-mixed-coherency
Architecture: all
Depends:
 ${misc:Depends},
Description: NVIDIA Application Profiles as Mixed Coherency Systems
 NVIDIA GPU drivers provide an Application Profiles mechanism that
 allows system administrators to configure GPU selection policies and
 performance optimizations for specific applications based on their runtime
 characteristics.
 .
 In systems with both coherent (ATS-enabled) and non-coherent GPUs, certain
 applications may experience performance degradation or compatibility issues
 when automatically scheduled to ATS-capable devices. Application profiles
 enable fine-grained control over GPU assignment based on executable patterns,
 shared library dependencies, or process names.

Package: dgx-desktop-kernel-configuration
Architecture: all
Depends:
 ${misc:Depends},
Recommends: linux-nvidia,
Description: Kernel configuration for NVIDIA DGX Desktop
 This package provides kernel configuration parameters. It uses
 GRUB_FLAVOUR_ORDER in grub configuration to make sure that the 
 -nvidia kernel will be the one prefered when booting the system.
 It also contains a systemd generator to load the right realtek 
 driver according to the kernel used.

Package: dgx-desktop-pro-activation
Architecture: all
Depends:
 ${misc:Depends},
 efivar,
 jq,
 network-manager,
 ubuntu-advantage-tools,
Description: Ubuntu Pro Activation for DGX Desktop
 Some DGX Desktop machines are shipped with Ubuntu Pro token preloaded.
 This package contains the necessary configuration to attach to the preloaded
 token and enable Ubuntu Pro.

Package: dgx-desktop-docker-gpus
Architecture: all
Depends:
 ${misc:Depends},
 pciutils,
Description: Limit docker to 3D Controller class GPUs aka Compute GPUs
 This package limit nvidia docker to use 3D Controller class GPUs
 aka Compute GPUs. It is a systemd generator that creates a containerd service
 override file with the right DeviceAllow in it.

Package: dgx-desktop-docker-options
Architecture: all
Depends:
 ${misc:Depends},
Description: Docker daemon options
 Contains recommended docker daemon settings for NVIDIA systems.
 It creates an override configuration file for the docker service
 to force it to wait for the gpu-reset target before starting.

Package: dgx-desktop-enable-persistenced
Architecture: all
Depends:
 ${misc:Depends},
Description: Enable NVIDIA GPU persistence mode
 NVIDIA GPUs can operate in persistence mode, which keeps the GPU driver loaded
 and initialized even when no applications are actively using the GPU. This
 reduces application startup latency and ensures consistent GPU state across
 workload lifecycles.

Package: dgx-desktop-arp-configuration
Architecture: all
Depends:
 ${misc:Depends},
Description: Configure arp behavior for NVIDIA DGX Desktop
 Prevents routing ambiguity on systems with multiple network interfaces by
 ensuring all arp requests and responses use the correct network interface

Package: dgx-desktop-no-systemd-suspend
Architecture: all
Depends:
 ${misc:Depends},
Description: Prevents the machine to suspend
 Disables suspend using systemd drop-in configuration.
 GB10 devices are not compatible with suspend and this will
 make all suspend operations exit gracefully.

Package: dgx-desktop-crashkernel-configuration
Architecture: all
Depends:
 ${misc:Depends},
Description: Configure crashkernel reservation for NVIDIA DGX Desktop
 Reserves no memory for crash kernel on systems with 1 GB or more of RAM.
 This configuration disables kdump crash dumping to maximize available memory
 for AI workloads.
