Software and Environment Management
6% of the NCA-ADS exam. Read each objective's key points, open “What NVIDIA says” to see the source, then practise.
Data Manipulation and Preparation · Machine Learning With RAPIDS · Data Science Pipelines and Workflow Automation · Descriptive Analysis and Visualization · Foundations of Accelerated Data Science · Introductory MLOps Practices · Advance Data Structures · Software and Environment Management
8.1 Environment files
env.yaml and requirements.txt, and versioned project configuration.
Key points
An environment file is a text file that lists the packages a project needs. Anyone can rebuild the same environment from it.
What NVIDIA says (2)
“To begin, you will need to create a few local files for your custom build: a Dockerfile and a configuration file ( env.yaml for conda or requirements.txt for pip).”
“When using conda , edit your local env.yaml file to add the desired libraries.”
AI Workbench is NVIDIA's tool for managing data science projects in containers. Keeping environment config next to code lets anyone rebuild it.
What NVIDIA says (2)
“Versioned configuration files let you define and adapt environments to machines and users.”
“Both code and environment are Git managed with changes detected and surfaced in the Desktop App.”
Key terms: NVIDIA AI Workbench Environment file Container
8.2 Conda, pip and Docker
How conda and pip handle CUDA libraries, and lean custom images.
Key points
Conda manages both Python and non-Python packages. pip installs Python packages and relies on the system for the rest. CUDA means NVIDIA's parallel computing platform.
What NVIDIA says (2)
“When installing libraries via conda, the package manager automatically pulls the required CUDA runtime libraries alongside CuPy and other dependencies, providing complete dependency management in a single installation step.”
“Since pip cannot install system-level CUDA libraries, CuPy expects these libraries to already be present in the system environment.”
A container image packages software and its dependencies. Smaller images move and start faster.
What NVIDIA says (1)
“These size reductions result in faster container pulls and deployments, reduced storage costs in container registries, lower bandwidth usage in distributed environments, and quicker startup times for containerized applications.”
Key terms: conda pip Container Dockerfile
8.3 Dependencies and team collaboration
Conda channel conflicts and sharing projects through Git hosting.
Key points
A conda channel is a source of packages. Mixing incompatible channels causes subtle dependency conflicts. CSV means comma-separated values.
What NVIDIA says (1)
“The defaults channel is not supported by these packages, which are built to be compatible with dependencies from the conda-forge channel.”
Git hosting services store repositories online so many people can work on them. Each person works on their own copy and shares changes.
What NVIDIA says (2)
“AI Workbench provides integration with GitHub for project collaboration and version control.”
“AI Workbench supports both GitLab.com and self-hosted GitLab instances.”
Key terms: conda Conda channel Git hosting service
8.4 Checking the GPU environment
Driver and CUDA version conflicts, nvidia-smi and CUDA_VISIBLE_DEVICES.
Key points
The NVIDIA driver supports up to a certain CUDA version. Packages built for a newer CUDA need a new enough driver. CUDA means NVIDIA's parallel computing platform.
What NVIDIA says (2)
“You will have to ensure the CUDA driver on your machine supports the CUDA version you are trying to install with conda.”
“If conda has incorrectly identified the CUDA driver, you can override by setting the CONDA_OVERRIDE_CUDA environment variable.”
nvidia-smi is NVIDIA's command-line utility for GPU monitoring and management. Run it first when checking a GPU environment.
What NVIDIA says (1)
“nvidia-smi (also NVSMI) provides monitoring and management capabilities for each of NVIDIA's Tesla, Quadro, GRID and GeForce devices”
CUDA_VISIBLE_DEVICES is an environment variable that controls which GPUs a program can see. The visible GPUs are renumbered from 0 inside the program.
What NVIDIA says (1)
“To specify a device to run on, we recommend using the CUDA_VISIBLE_DEVICES ( doc ) environment variable.”
Key terms: CUDA_VISIBLE_DEVICES nvidia-smi CUDA driver
8.5 Git basics
Repositories, projects under Git, and Git LFS for large files.
Key points
Git is a version control system that records every change to a set of files. A repository is the folder of files plus that history.
What NVIDIA says (2)
“Key Concepts # Project A Git repository under management by AI Workbench.”
“AI Workbench provides reproducibility by managing software, containers and Git repositories.”
Git LFS stores large files outside the normal Git history and keeps small pointers in the repository. That keeps clones fast.
What NVIDIA says (2)
“A Git extension for versioning large files efficiently.”
“AI Workbench automatically configures certain directories (like data/ and models/ ) to use Git LFS.”
Key terms: NVIDIA AI Workbench Git Repository Git LFS Git hosting service