diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..609f49b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +riva_quickstart*/ \ No newline at end of file diff --git a/README.md b/README.md index 18d92e9..1a7eed6 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,10 @@ # Learning Riva -## Setup +## Setup Pre-reqs -Get NGC setup +Get NGC setup with `ngc-cli` or `docker`. After logging into https://ngc.nvidia.com/ go to Profile > Setup to get the cli and API KEY. On my Orin I installed the ngc-cli to /opt/nvida/ngc-cli with a symlink into /usr/local/bin. -Use the ngc-cli (Installed on Orin at /opt/nvida/ngc-cli with a symlink into /usr/local bin) - -Or +Or with docker: ``` docker login nvcr.io @@ -15,5 +13,118 @@ Username: $oauthtoken Password: YOUR API KEY ``` +## Nvidia Docker on Ubuntu 22.04 + + +We need the Nvidia container toolkit for GPU docker integration. [The Docker Utility Engine for NVIDIA GPUs](https://docs.nvidia.com/ai-enterprise/deployment-guide/dg-docker.html) install the nvidia-container-toolkit. This should allow you to run a sample gpu enabled container like: + +First check you Cuda driver using `nvidia-smi` on the host, then check the docker environment: + +``` +docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi +``` + +This resulted in an error because I didn't have cuda drivers installed. See next if this is the case for you. + +### Nvidia Driver Installation + +Since I didn't have an `nvida-smi` binary I didn't have the Nvidia Driver installed for use with Cuda. + +Following the Quickstart guide for nvidia driver install https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html#ubuntu-lts. I had some conflicts, which simply required updating `nvidia-kernel-source-515` and `nvidia-kernel-common-515`. + +I could then: + +``` +sudo apt-get -y install cuda-drivers +``` + +Which required a reboot: + +``` +... +A modprobe blacklist file has been created at /etc/modprobe.d to prevent Nouveau +from loading. This can be reverted by deleting the following file: +/etc/modprobe.d/nvidia-graphics-drivers.conf + +A new initrd image has also been created. To revert, please regenerate your +initrd by running the following command after deleting the modprobe.d file: +`/usr/sbin/initramfs -u` + +***************************************************************************** +*** Reboot your computer and verify that the NVIDIA graphics driver can *** +*** be loaded. *** +********************* +... +``` + +After reboot `nvidia-smi` displays the cuda driver info + +``` +un Nov 13 10:54:34 2022 ++-----------------------------------------------------------------------------+ +| NVIDIA-SMI 520.61.05 Driver Version: 520.61.05 CUDA Version: 11.8 | +|-------------------------------+----------------------+----------------------+ +| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | +| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | +| | | MIG M. | +|===============================+======================+======================| +| 0 NVIDIA GeForce ... On | 00000000:09:00.0 On | N/A | +| 35% 36C P8 21W / 350W | 594MiB / 12288MiB | 2% Default | +| | | N/A | ++-------------------------------+----------------------+----------------------+ + ++-----------------------------------------------------------------------------+ +| Processes: | +| GPU GI CI PID Type Process name GPU Memory | +| ID ID Usage | +|=============================================================================| +| 0 N/A N/A 2077 G /usr/lib/xorg/Xorg 316MiB | +| 0 N/A N/A 2336 G /usr/bin/gnome-shell 145MiB | +| 0 N/A N/A 3432 G ...7/usr/lib/firefox/firefox 131MiB | ++-----------------------------------------------------------------------------+ +``` + +I can also see I can run the Docker Container now: + +``` +docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi + +Sun Nov 13 15:55:57 2022 ++-----------------------------------------------------------------------------+ +| NVIDIA-SMI 520.61.05 Driver Version: 520.61.05 CUDA Version: 11.8 | +|-------------------------------+----------------------+----------------------+ +| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | +| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | +| | | MIG M. | +|===============================+======================+======================| +| 0 NVIDIA GeForce ... On | 00000000:09:00.0 On | N/A | +| 0% 36C P8 19W / 350W | 593MiB / 12288MiB | 0% Default | +| | | N/A | ++-------------------------------+----------------------+----------------------+ + ++-----------------------------------------------------------------------------+ +| Processes: | +| GPU GI CI PID Type Process name GPU Memory | +| ID ID Usage | +|=============================================================================| ++-----------------------------------------------------------------------------+ +``` + +### Additional Audio Testing + +I downloaded the Audacity tool which comes as an AppImage. This requires the [FUSE (Filesystem in user space)](https://github.com/AppImage/AppImageKit/wiki/FUSE) setup which is installable from the universe repo with: + +``` +sudo apt install libfuse2 +``` + +## Actual Riva Setup + +Following the quick-start guide https://resources.nvidia.com/en-us-riva-asr-briefcase/quick-start-guide directed me to the AMD64 or ARM64 utility scripts )https://catalog.ngc.nvidia.com/orgs/nvidia/teams/riva/resources/riva_quickstart/files?version=2.7.0. Using the Download and CLI option + +``` +ngc registry resource download-version "nvidia/riva/riva_quickstart:2.7.0" +``` +This downloads the quickstart scripts to my local directory. I have excluded these from this repo since they are version and platform dependent. I was content with the default settings of the `config.sh`, so I simply