Skip to content

Development Environment Setup (Required)

To build, develop, and ship NWAVE consistently across multiple GPU platforms, we provide preconfigured Docker environments for developing PyTorch extensions with HIP, supporting both:

  • AMD GPUs (ROCm)
  • NVIDIA GPUs (CUDA)
  • No GPU setups (cpu-only) (with limited features)

These environments ensure:

  • Identical toolchains across platforms
  • Consistent ROCm / CUDA / HIP versions
  • Proper GPU access and permissions
  • A reproducible setup for all developers

Warning

Using these environments is strongly recommended. Deviating from them will likely result in build issues, missing symbols, or platform-specific incompatibilities.

The Dockerfiles are derived from the official ROCm examples repository, and are available in the downloaded zip file for completeness.


What’s Included

Each environment comes fully set up with:

  • Ubuntu base image
  • HIP development tools and libraries
  • Support for ROCm (AMD)/CUDA (NVIDIA)/CPU-only
  • Anaconda Python distribution
  • A ready-to-use Conda environment (PyTorch)
  • CMake and standard development tools
  • Correct GPU device access, IPC, and shared memory configuration

Prerequisites

Before building or running the containers, make sure you have:

  • Docker installed
  • Linux based OS (or WSL if using windows)
  • If you have GPU:

    • AMD users:

      • ROCm-compatible GPU
      • ROCm drivers installed on the host
    • NVIDIA users:

      • CUDA-compatible GPU
      • NVIDIA drivers installed on the host
  • The extracted NWAVE package containing:

    • assets/downloads/nwave-100a/install.sh
    • wheel files and Dockerfile templates in the same folder

Mac-OS is not tested due to limited hardware supports, feel free to test the CPU-only environments on mac machines!


Automated Installation

Before starting the installation, you should create a folder named DockerMem in a filesystem position that is easily accessible (for instance in /home/<user>). This is the folder in which all files/projects must be be placed in order to be used in the container (and therefore by NWAVE too).

All environment setup steps are automated through install.sh. From the package folder:

cd nwave-100a
chmod +x install.sh

After that, in both the GPU vendor case, an image name and a container name must be chosen to launch the installer (any name is ok, as long as it doesn't contains - or /).

AMD (ROCm)

./install.sh \
  --vendor amd \
  --dockermem-dir /absolute/path/to/DockerMem \
  --image-name kernel_devel_amd_630 \
  --container-name nwave_amd_dev \
  --amd-gfx 11.0.0

Use --amd-gfx 10.3.0 for RDNA/RDNA2 when needed.

NVIDIA (CUDA)

./install.sh \
  --vendor nvidia \
  --dockermem-dir /absolute/path/to/DockerMem \
  --image-name kernel_devel_nvidia_630 \
  --container-name nwave_nvidia_dev

CPU-only

./install.sh \
  --vendor cpu \
  --dockermem-dir /absolute/path/to/DockerMem \
  --image-name kernel_devel_cpu_630 \
  --container-name nwave_cpu_dev

Using the Environment

NWAVE runs inside a Docker container.
A container is like a ready-to-use environment with everything already installed (Python, PyTorch, etc.).


Using the Environment (Terminal)

Start or enter the container

If it’s already running:

docker attach {your_container_name}

If it’s not running:

docker start -ai {your_container_name}

If you used the install script, the name is usually: nwave_{vendor}_dev


Activate the environment

Once inside, run:

source activate PyTorch

⚠️ You must run this every time you enter the container.


Using the Environment in VSCode

Click the bottom-left corner in VSCode:

Docker attach button

Then select:

"Attach to Running Container..."

Docker attach button

Choose your container from the list.


If no container appears

Start it first from the terminal:

docker start -ai {your_container_name}

Notes

  • Select the PyTorch environment in VSCode
  • Files are available under /home/workspaces that mirrors the host folder /home/{your-pc-name}/DockerMem
  • Install the Jupyter extension if you want to run notebooks

Troubleshooting

GPU Not Detected

  • AMD: Verify ROCm installation and presence of /dev/kfd and /dev/dri
  • NVIDIA: Verify NVIDIA Container Toolkit and driver installation

Permission Issues

  • Ensure your user is in the docker group
  • Confirm UID/GID match between host and container
  • Check permissions on the shared workspace directory

Contributing

For issues, feature requests, or questions, either raise a github issue on the release repo or send a mail at giuseppe@neuronovatech.com.