I get a Jetson Nano module from my industrial computer supplier (adxxxxxxh) , Everything go well when I run my program in docker in a CPU environment. However, When I want to use cuda , I find some expected problem before I trying.
The free space of the computer I got is only about 7GB left (with os installed, but cuda is not yet installed ), and the cuda in sdk manager are about 4GB, and the docker cuda based image which Nvidia provided is about 2GB, that means I have nearly no space left to put my application program in.
I ask my supplier if they can level up the eMMC to 32GB but the supplier says according to the nvidia’s Jetson nano SoM, they can do nothing to change the eMMC.
Since cuda is almost the essential part to run the Jetson and put the program to the docker image is the recommend way to do the work. How do you guy actually put them together into the limited storage space?
Cuda should be already be in the default filesystem . The SDKmanager itself installs CUDA toolkit for your host PC. Could you share what method you used to flash the nano ?
You can verify using :
apt list --installed | grep cuda
I got these messages:
(I think this computer should be Jetson Xavier but the supplier insisted this is nano.)
mic-710aix@ubuntu:~$ apt list --installed | grep cuda
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
cuda-repo-ubuntu1804-11-0-local/now 11.0.2-450.51.05-1 arm64 [installed,local]
nvidia-l4t-cuda/now 32.4.3-20200625213407 arm64 [installed,local]
mic-710aix@ubuntu:~$ ls /usr/local/cuda
ls: cannot access ‘/usr/local/cuda’: No such file or directory
the nano was flashed by my computer supplier. Since they said they didn’t install cuda when they flashed due to the space issue, there should be no cuda.
I also run the sdk manager myself to take a look, I see that the cuda installation in the sdk manager is optional so I think it is not default . ( I also tried other Jetson serials modules before and they were also without cuda, but I cannot check now )
after installed OS, you can remove some components you don’t need
- Remove all JetPack compute components.
If you are running JetPack 4.4, use the following command:
sudo apt autoremove --purge nvidia-container-csv-cuda libopencv-python libvisionworks-sfm-dev libvisionworks-dev libvisionworks-samples libnvparsers6 libcudnn7-doc libcudnn7-dev libnvinfer-samples libnvinfer-bin nvidia-container-csv-cudnn libvisionworks-tracking-dev vpi-samples tensorrt libopencv libnvinfer-doc libnvparsers-dev libcudnn7 libnvidia-container0 cuda-toolkit-10-0 nvidia-container-csv-visionworks graphsurgeon-tf libopencv-samples python-libnvinfer-dev libnvinfer-plugin-dev libnvinfer-plugin6 nvidia-container-toolkit libnvinfer-dev libvisionworks libopencv-dev nvidia-l4t-jetson-multimedia-api vpi-dev vpi python3-libnvinfer python3-libnvinfer-dev opencv-licenses nvidia-container-csv-tensorrt libnvinfer6 libnvonnxparsers-dev libnvonnxparsers6 uff-converter-tf nvidia-docker2 libvisionworks-sfm libnvidia-container-tools nvidia-container-runtime python-libnvinfer libvisionworks-tracking
If you are running JetPack 4.5, use the following command:
sudo apt autoremove --purge nvidia-container-csv-cuda libopencv-python libvisionworks-sfm-dev libvisionworks-dev libvisionworks-samples libnvparsers7 libcudnn8-doc libcudnn8-dev libnvinfer-samples libnvinfer-bin nvidia-container-csv-cudnn libvisionworks-tracking-dev vpi-samples tensorrt libopencv libnvinfer-doc libnvparsers-dev libcudnn8 libnvidia-container0 cuda-toolkit-10-2 nvidia-container-csv-visionworks graphsurgeon-tf libopencv-samples python-libnvinfer-dev libnvinfer-plugin-dev libnvinfer-plugin7 nvidia-container-toolkit libnvinfer-dev libvisionworks libopencv-dev nvidia-l4t-jetson-multimedia-api vpi-dev vpi python3-libnvinfer python3-libnvinfer-dev opencv-licenses nvidia-container-csv-tensorrt libnvinfer7 libnvonnxparsers-dev libnvonnxparsers7 uff-converter-tf nvidia-docker2 libvisionworks-sfm libnvidia-container-tools nvidia-container-runtime python-libnvinfer libvisionworks-tracking
If the current version of JetPack was installed using SDK Manager, remove the local repo. (The example shown below assumes you will upgrade from JetPack 4.3.)
sudo apt purge cuda-repo-l4t-10-0-local-10.0.326 libvisionworks-repo libvisionworks-sfm-repo libvisionworks-tracking-repo
Free up additional disk space.
sudo apt clean
I got a real Jetson nano module computer for testing ( called mic-710ai ), I flash out anything and install anything from sdkmanager and run the auto-remove command. Now I see that I have about 5GB and seems the CUDA library is still there, I’ll see what I can do to run the cuda docker in these space.
However, I’m curious that why to bother to do that “install anything then remove the non-cuda program”. Why not just make it optional , I even don’t want to see your parking lot tracking demo .
Practically we cannot have that temporary space to install all the components then remove half of them since we still need to install some sensors’ drivers.