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

Official objective: “Contributing to reproducibility in data science projects by maintaining environment files”

env.yaml and requirements.txt, and versioned project configuration.

Key points

  1. 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).”

    — RAPIDS Deployment: Custom RAPIDS Docker guide

    “When using conda , edit your local env.yaml file to add the desired libraries.”

    — RAPIDS Deployment: Custom RAPIDS Docker guide

  2. 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.”

    — NVIDIA AI Workbench: Introduction

    “Both code and environment are Git managed with changes detected and surfaced in the Desktop App.”

    — NVIDIA AI Workbench: Introduction

Key terms: NVIDIA AI Workbench Environment file Container

Practice 8.1 (2 questions) Objective page

8.2 Conda, pip and Docker

Official objective: “Configuring reproducible Python environments using Conda, PIP, or Docker”

How conda and pip handle CUDA libraries, and lean custom images.

Key points

  1. 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.”

    — RAPIDS Deployment: Custom RAPIDS Docker guide

    “Since pip cannot install system-level CUDA libraries, CuPy expects these libraries to already be present in the system environment.”

    — RAPIDS Deployment: Custom RAPIDS Docker guide

  2. 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.”

    — RAPIDS Deployment: Custom RAPIDS Docker guide

Key terms: conda pip Container Dockerfile

Practice 8.2 (2 questions) Objective page

8.3 Dependencies and team collaboration

Official objective: “Managing software dependencies efficiently and collaborating in multi-user data science environments”

Conda channel conflicts and sharing projects through Git hosting.

Key points

  1. 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.”

    — NVIDIA CUDA-X Data Science: Installation guide

  2. 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.”

    — NVIDIA AI Workbench: Glossary

    “AI Workbench supports both GitLab.com and self-hosted GitLab instances.”

    — NVIDIA AI Workbench: Glossary

Key terms: conda Conda channel Git hosting service

Practice 8.3 (2 questions) Objective page

8.4 Checking the GPU environment

Official objective: “Performing GPU environment check (driver/CUDA/RAPIDS compatibility, nvidia-smi, device visibility) and resolving a dependency conflict”

Driver and CUDA version conflicts, nvidia-smi and CUDA_VISIBLE_DEVICES.

Key points

  1. 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.”

    — NVIDIA CUDA-X Data Science: Installation guide

    “If conda has incorrectly identified the CUDA driver, you can override by setting the CONDA_OVERRIDE_CUDA environment variable.”

    — NVIDIA CUDA-X Data Science: Installation guide

  2. 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”

    — nvidia-smi documentation

  3. 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.”

    — cuML: Advanced usage (device selection)

Key terms: CUDA_VISIBLE_DEVICES nvidia-smi CUDA driver

Practice 8.4 (3 questions) Objective page

8.5 Git basics

Official objective: “Understanding the basics of version control using git”

Repositories, projects under Git, and Git LFS for large files.

Key points

  1. 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.”

    — NVIDIA AI Workbench: Introduction

    “AI Workbench provides reproducibility by managing software, containers and Git repositories.”

    — NVIDIA AI Workbench: Introduction

  2. 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.”

    — NVIDIA AI Workbench: Glossary

    “AI Workbench automatically configures certain directories (like data/ and models/ ) to use Git LFS.”

    — NVIDIA AI Workbench: Glossary

Key terms: NVIDIA AI Workbench Git Repository Git LFS Git hosting service

Practice 8.5 (2 questions) Objective page