Different message prompt on google colab vs Pycharm - python-3.x

I am running the same CNN model on the same dataset (with 50000 training examples) with exactly same parameters on both Google Colab (I think it has K80 GPU) and my own system (with GTX 1080 GPU and 8700K CPU). I am using the batch_size=32 on both but I am surprised to see that while training, Google Colab shows me;
while my own system (using PyCharm), shows me
I can understand that the difference in accuracies is may be due to different random initializations but why on Google Colab it shows the training during each epoch in terms of number of batches 1563/1563 while on my machine, it shows me in terms of number of examples in the training set i.e. 50000/50000
In both cases I am using tf.keras.
Has it anything to do with the version. On my (Windows) machine, the tensorflow-gpu version is 2.1.0 whereas, on the Google Colab (probably Linux) machine, it is 2.2.0. I cannot upgrade the version on my windows machine from 2.1.0 to 2.2.0, probably they are same as can be seen here;
Please correct me if I am wrong.

Related

torch.cuda.is_available() returns false despite GPU settings and cuda installed on Colab

On Colab, my code constantly returns GPU not available. I thought that it might be a problem with the regular subscription, but even after getting Colab Pro, I still have this issue.
I checked the following:
Notebook settings have hardware accelerator set to GPU
nvidia-smi returns the following:
nvcc-version returns the following:
Does anyone know how to resolve this? Thanks!

Does torch.distributed support point-to-point communication for GPU?

I am looking into how to do point-to-point communication with multiple GPUs on separate nodes in PyTorch.
As of version 1.10.0, the documentation page for PyTorch says question marks for send and recv for GPU with the MPI backend. What does this mean? If anyone has successfully set up PyTorch so that torch.distributed allows point-to-point communication on multiple GPUs, please let me know and how you set it up. Specifically, which MPI are you using? What about the versions of pyTorch and Cuda?
I guess I'll post what I have learned so far.
Pytorch does seem to support p-to-p communication with MPI on GPU. However, this requires you to have a Cuda-aware MPI. (If your MPI isn't Cuda-aware, you'll need to build MPI from source with a specific parameter). In addition, if your Pytorch doesn't have MPI enabled, you need to compile Pytorch from source with MPI installed. This seems a very complicated route to go.
However, it seems the documentation I linked to is misleading. Looking at the release note, Pytorch supports send/recv in NCCL backend since 1.8.0... That being said, I have tried doing send/recv with NCCL but it throws errors saying NCCL are getting invalid arguments. I'm not sure if it's my problem or there are still bugs in pytorch distributed code.

Brain.js is not utilizing GPU for training

I have been using Brain.js to train a Neural network, and it has been working just fine, except it seems that it is only using CPU to train the neural net.
I am using Windows, and the Task Manager shows the Node process using ~25% CPU (I assume it is maxing out a single thread). Looking at MSI Afterburner, the GPU is not being utilized at all.
The GPU is an Nvidia RTX 2060 super.
What can I do to make Brain.js use my GPU? I have searched around but have not been able to find much info at all so far...

How to build Tensorflow for my AMD Linux system?

I recently installed Tensorflow onto my system. Upon fitting to the model, I am getting this error in the Jupyter Notebook terminal:
This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations: AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
I read that I am supposed to build Tensorflow for my system, but I am unaware how to. What kinda settings do I need to set? What compiler flags do I need? Here is my setup:
GPU: AMD RX 5700XT
CPU: AMD Ryzen 9 3900X
RAM: 64GB DDR4
OS: Ubuntu 20.04
Can someone give me advice on how to build Tensorflow for my system?
Most deep learning and machine learning frameworks and libraries use NVIDIA CUDA for GPU processing, we would need to select an NVIDIA graphics card.
Note While Amd has some excellent graphics card models, their compatibility and support with ML tasks are still experimental. So we will need to stick to NViDia.
AMD provides a ROCm enabled TensorFlow library for AMD GPUs. It's based on the ROCm software stack. To know more about this library: MIOpen - ROCm.
Based on these factors, the following graphics cards families can be recommended:
GeForce 10 series
GeForce 16 series.
GeForce 20 series.
GeForce 30 series

Setting up keras and tensoflow to operate with AMD GPU

I am trying to set up Keras in order to run models using my GPU. I have a Radeon RX580 and am running Windows 10.
I saw realized that CUDA only supports NVIDIA GPUs and was having difficulty finding a way to get my code to run on the GPU. I tried downloading and setting up plaidml but afterwards from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
only printed that I was running on a CPU and there was not a GPU available even though the plaidml setup was a success. I have read that PyOpenCl is needed but have not gotten a clear answer as to why or to what capacity. Does anyone know how to set up this AMD GPU to work properly? any help would be much appreciated. Thank you!
To the best of my knowledge, PlaidML was not working because I did not have the required prerequisites such as OpenCL. Once I downloaded the Visual Studio C++ build tools in order to install PyopenCL from a .whl file. This seemed to resolve the issue

Resources