Issue
Recently, I wanted to move my Python libraries to a pendrive to keep all the libraries constant while switching between my workstation and laptop. (Also so that if I update one, it's updated on other also.)
For this, I have installed a tensorflow-gpu version on my pendrive (my laptop doesn't have a GPU). Everything works fine without a problem on both PC (it detects and uses my GPU without a problem) and laptop (it automatically uses my CPU).
That's where my question lies. What is the difference between a
tensorflow-gpu
AND just
tensorflow
? (Because when no GPU is found, tensorflow-gpu automatically uses the CPU version.)
Does the difference lie only in the GPU support? Then why at all have a non GPU version of tensorflow?
Also, is it alright to proceed like this? Or should I create virtual environments to keep separate installations for CPU and GPU?
The closest answer I can find is How to develop for tensor flow with gpu without a gpu.
But it only specifies that it's completely okay to use tensorflow-gpu on a CPU platform, but it still does not answer my first question. Also, the answer might be outdated as tensorflow keeps releasing new updates.
I had installed the tensorflow-gpu version on my workstation with GTX 1070 (Thus a successful install).
Also I understand the difference is that pip install tensorflow-gpu
will require CUDA enabled device to install, but my question is more towards the usage of the libraries because I am not getting any problems when using the tensorflow-gpu
version on my laptop (with no GPU) and all my scripts run without any error.
(Also removed pip install from above to avoid confusion)
Also, isn't running tensorflow-gpu
on a system with no GPU the same as setting CUDA_VISIBLE_DEVICES=-1
?
Solution
Updated answer 2023 (Tensorflow 2.x and above:)
Verify the CPU setup:
python3 -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([100, 100])))"
If a tensor is returned, you've installed TensorFlow successfully.
Verify the GPU setup:
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
If a list of GPU devices is returned, you've installed TensorFlow successfully.
Source: Tensorflow installation guide
Old answer(Tensorflow 1.x):
One thing to Note: CUDA can be installed even if you don't have a GPU in your system.
For packages tensorflow
and tensorflow-gpu
I hope this clears the confusion. yes/no means "Will the package work out of the box when executing import tensorflow as tf
"? Here are the differences:
| Support for TensorFlow libraries | tensorflow | tensorflow-gpu |
| for hardware type: | tf | tf-gpu |
|----------------------------------|------------|-----------------|
| cpu-only | yes | no (~tf-like) |
| gpu with cuda+cudnn installed | yes | yes |
| gpu without cuda+cudnn installed | yes | no (~tf-like) |
Edit: Confirmed the no
answers on a cpu-only
system and the gpu without cuda+cudnn installed
(by removing CUDA+CuDNN env variables).
~tf-like
means even though the library is tensorflow-gpu
, it would behave like tensorflow
library.
Answered By - burglarhobbit
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.