I am trying to find a solution on how I can make a compiled OpenCV (with CUDA) on one platform, for example, Jetson Nano (running JP4.4) to run on different JP version or on different Jetson platform, for example Xavier NX.
In order to explain this scenario, lets say I am compiling OpenCV 4.4 with CUDA support on Jetson Nano which has JP 4.4 installed. Now I want to take this compile OpenCV and run on another Nano which has JP 4.3. Is it possible? I am having difficulty doing it, I managed to compile my project/software using a virtual environment but when I tried to run the program it is saying, “CUDA driver version is insufficient for CUDA runtime version in function …”. This probably means the graphics driver version is older than what it expects.
I am looking into this issue from production, deployment and maintenance perspective. If a Jetson is delivered to a customer with JP 4.4 and in future JP 4.5 is released, the existing installations running JP 4.4 cannot be upgraded with to the newest release of the software built on JP 4.5 unless JP is upgraded at the client end. In order to solve this issue the solutions that I see is:
Compile OpenCV and any other components that have dependencies with driver version, CUDA version, DNN version etc on every JP releases and use the particular one that the customer has to build a release of the software for upgrade.
The issue with this concept is you have to keep too many releases of the software.
Compile OpenCV and any other components that have dependencies with driver version, CUDA version, DNN version etc on a particular JP release and use it to build the software with virtual environment (the software release will have all the dependencies within). Benefit of this concept is you will have only one release of the software which could be installed and run on atleast few older/newer releases of JP.
I am trying the second option.
Would appreciate any inputs from experts on this matter.
Thanks in advance.