I’m trying to run a service based on CUDA with balenaOS (on a Generic x86_64 device), but I’m running into some issues. Based on this blog I see that there is a scheduled feature for allowing “hostapp extensions” for layering additional software, like NVIDIA drivers, on top of the balenaOS host OS. Based on this comment from @alexgg it seems that the balena team is still actively working on this and that there is no release date planned yet.
-
From my understanding I would need to add hostapp extensions at least for the NVIDIA driver and the NVIDIA Container Toolkit. This should allow me to pass through my GPU devices to my services. I am unsure if I need a CUDA hostapp extension as well, or if it is sufficient to install CUDA within the service itself. Is my understanding of hostapp extensions correct here?
-
Is this already possible? Even if it is using a beta or experimental version of balenaOS, I would love to give this a shot.
-
If this is not possible (yet), is there a known workaround to get CUDA services to work (on Generic x86_64 devices) on balenaOS?
-
With
qemu
I can passthrough the GPU to the virtual machine using IOMMU, allowing for raw access but prohibiting access to the GPU from the host OS. It would mean limiting to only a single service, since it will “own” that GPU, but it will work for my case. I found it difficult to find resources online for something like this. Is such a thing possible with Docker (and therefore balenaOS)?