For Pytorch and Tensorflow, there are tags which differentiate devel and runtime, I am not quite sure what are the difference between these two, can someone help me understand that better?
Asked
Active
Viewed 1.9k times
49
-
1Regarding tensorflow, the [image page on docker hub](https://hub.docker.com/r/tensorflow/tensorflow) points to a [directory on github](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/dockerfiles) where you will find the tooling they use to build their images and [the different docker files](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/dockerfiles/dockerfiles) used for each version. You will see in details what is included in each version. You can probably find the same info for your other image. – Zeitounator Jun 01 '19 at 08:58
2 Answers
60
Copy from nvidia-docker:
CUDA images come in three flavors and are available through the NVIDIA public hub repository.
base:
starting from CUDA 9.0, contains the bare minimum (libcudart) to deploy a pre-built CUDA application. Use this image if you want to manually select which CUDA packages you want to install.runtime:
extends the base image by adding all the shared libraries from the CUDA toolkit. Use this image if you have a pre-built application using multiple CUDA libraries.devel:
extends the runtime image by adding the compiler toolchain, the debugging tools, the headers and the static libraries. Use this image to compile a CUDA application from sources.

FantasyJXF
- 754
- 7
- 14
-
Just to put this into context, I guess you need `devel` if you want to use `TensorRT` functionality. Then you don't need to compile the apps yourself, but the library does that for you. Would appreciate, if someone can confirm this idea. – phi Jan 15 '22 at 12:26
3
Basically, development containers have all the stack required for compilation of your own CUDA based application, including headers, static files and more. The end result is having a much larger image, but also one that allows compilation. The base/runtime containers have the bear minimum to resolve runtime dependencies after you application/any other CUDA applications have been compiled. Similiary to how development pacakages and runtime packages work.

Shauli
- 61
- 2