2

I am developing a desktop application that utilises Tensorflow. The aim of the application is to let users easily train a given model and use it for inference within the app. I want to support training and inference via the GPU, if available on the end-user's machine.

The primary issue appears to be setting up Nvidia dependencies: driver, CUDA Toolkit and cudnn. These are required on the end-user's machine for GPU support.

Ultimately, I don't want the end-user to faff about installing dependencies for my application to work.

Some ideas that only half work:

1. Use Docker

I can create a Docker image that contains the required components. The only thing the user will have to do is make sure they have a Nvidia driver installed on the host machine. Unfortunately, this approach requires the end-user to first install and configure Docker itself. Not ideal.

2. Package CUDA libraries and dependencies... somehow

First I need to check if Nvidia's licences allow me to do so, but in theory I could somehow include the libraries in the installer of my application? I am assuming I need C++ knowledge for this.

How can I achieve this?


I am developing on Linux. Main end-user demographic is primarily Windows, but ideally I would be able to do cross-platform.

turnip
  • 1,657
  • 2
  • 15
  • 21
  • in case anyone was wondering why nVidia's proprietary monopoly was a problem, now they know. – user253751 Sep 14 '21 at 08:15
  • Well, I don't know those NVidia libs specifically, but aren't those standard DLLs which might be simply placed in your application's folder for distribution? So you can just zip them together if you want to create a "portable" distribution, or use your favorite Windows installer kit (like WiX or NSIS) to create a setup package? – Doc Brown Sep 14 '21 at 08:40
  • @DocBrown I suspect so, hence point #2 in my post, but I am not sure about the details of it. Also not sure if it's considered "hacky". – turnip Sep 14 '21 at 08:42
  • Does this answer your question? [Installation process for a modern complex Windows Software Installation?](https://softwareengineering.stackexchange.com/questions/385684/installation-process-for-a-modern-complex-windows-software-installation). And no, installer packages are OS specific, don't expect this to work cross-platform. – Doc Brown Sep 14 '21 at 08:50

0 Answers0