ultimately it wasn't that difficult to get that python3/tensorflow pair running under Slackware-Current on a Linode VPS with NVIDIA Quadro RTX 6000 GPU - you just need to have all software versions in the pipeline in harmony. here my very
rudimentary summary - but i really suggest to read carefully the nVidia's CUDA and cuDNN instructions :
0) install Slack-Current temporarilly on a Linode VPS type g6-nanode-1
1) install gcc v7.5.0 (because v9 is much too new) in /opt
2) type (so that gcc75 is invoked before gcc9) :
Code:
PATH="/opt/bin:$PATH"
3) disable nouveau :
Code:
installpkg xf86-video-nouveau-blacklist-noarch-1.txz
4)
clone Linode nanode into a g1-gpu-rtx6000-1 (expensive!). use
linode-cli for that. boot that GPU box.
5) PATH="/opt/bin:$PATH
6) install the regular nVidia graphics driver (not CUDA!) :
Quote:
sh NVIDIA-Linux-x86_64-410.104.run
|
7) nvidia-smi --> see output
8) reboot
9) PATH="/opt/bin:$PATH
10) ls -l /dev/nvidia*
11) install CUDA (without nVidia graphics driver !) :
Code:
sh cuda_10.0.130_410.48_linux.run --override --toolkit --samples --silent
12) /etc/bashrc :
Code:
PATH="/opt/bin:$PATH"
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-0.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
13) /etc/rc.d/rc.local :
Code:
/usr/bin/nvidia-persistenced --verbose
14) reboot
15) PATH="/opt/bin:$PATH
16) cat /proc/driver/nvidia/version --> see output
17) nvcc -V --> see output
18) cd /root/NVIDIA_CUDA-10.0_Samples ; make
19) ./bin/x86_64/linux/release/deviceQuery --> see output
20) ./bin/x86_64/linux/release/bandwidthTest --> see output
21) lspci -v | grep -i nvidia --> see output
22) dmesg | grep -i NVRM --> see output
23) ls -l /usr/lib64/libcuda.so*
24) install cuDNN :
Code:
cd /tmp/GPU ; tar xfv cudnn-10.0-linux-x64-v7.6.5.32.tgz
25) copy *cudnn* files to designated directories and do chmod a+r on them
26) deb2tgz libcudnn7-doc_7.6.5.32-1+cuda10.1_amd64.deb
27) tar xfv libcudnn7-doc_7.6.5.32-1+cuda10.0_amd64.txz
28) cd $PWD/usr/src/cudnn_samples_v7/mnistCUDNN
29) gcc --version (should be 7.5 !)
30) make clean ; make
31) ./mnistCUDNN --> see output
32) reboot
33) install TensorFlow 2:
Code:
pip3 install --upgrade pip
pip3 install --upgrade tensorflow-gpu
34) python3 :
Code:
>>> import tensorflow as tf
>>> print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
>>> print(tf.reduce_sum(tf.random.normal([1000, 1000])))
35)
clone the Linode g1-gpu-rtx6000-1 VPS back into a g6-nanode-1 VPS (to save money):
Code:
linode-cli linodes clone yourSourceID --linode_id yourTargetID
36) delete the g6-nanode-1 VPS
37) now you got your affordable g6-nanode-1
template VPS which you can anytime clone into any of the Linode VPS types including those expensive GPU VPSs.
good luck...