0

I am trying to teach myself DL and among other difficulties I found it quite challenging to structurize a very basic terminology vocabulary especially when it includes not only theoretical stuff but also commercial names.
These are my questions for now:

1.1. What is Cuda?

1.2 Is it used only for learning, or also for running an already trained model?

1.3 When I train a network with GPU, is the training always done with the help of Cuda, or can it also be done on the same GPU without Cuda?
(I've seen YouTube videos where people install Cuda, but in the online course I am taking these days, the lecturer did not mention it, he just gave a couple of instructions on how to install darknet for OCU and for GPU. Maybe he meant that if I have a GPU I've already installed the Cuda?)

1.4 Are Cuda and the Cuda programming languge the same thing?

1.5 Do I need the Cuda programming language to train neural networks on GPU? If not, when and where is this language used?

2.1 What is Jetson?

2.2 Is it an alternative framework just like darknet or tensorflow?

3.1 Why do we need Microsoft Visual Studio to train Yolo? (I am finishing an online course now and that is what needs to be installed.)

3.2 Are there alternatives to Microsoft Visual Studio for these goals?

4.1 amAbout the frameworks: As far as I know when it comes to Yolo (for example), it can be trained on different frameworks.
But who supports who - is the framework while being created done in a specific way to support different networks (let's say Yolo and r-cnn) or does the one who creates a neural network do it in such a way that it can work with the desired frameworks (for example, tensorflow and darknet)?

4.2 When running the same network on different frameworks what are the differences while training? Do I need to use different commands and different synthax?

4.3 If I train on GPU and as a framework use darknet, and tomorrow I decide to move to tensorflow, not including the coding and syntax, are there things that should be installed again in a different way? For instance, maybe darknet needs Microsoft Visual Studio while tensorflow doesn't...

Mithical
  • 2,885
  • 5
  • 27
  • 39
Igor
  • 181
  • 10

1 Answers1

3

1.1 NVIDIA's architecture of processing cores designed for certain specific types of calculations, like 3D graphics that also can speed up DL calculations.

1.2 Both. CUDA cores are great for speeding up matrix multiplication calculations which are big part of neural network inference. This process is used both during training and execution.

1.3 It is CUDA, regular GPUs don't have any other processing units than CUDA that could be beneficial to DL. Modern card though have also tensorcores that are specifically designed for speeding up DL calculations.

1.4 Let's say CUDA programming language is way to communicate with CUDA cores.

1.5 You don't have to because popular frameworks such as PyTorch or Tensorflow already have it implemented on its lower level of architecture. You need language such as Python to use these frameworks though. But of course you could learn if you have a lot of time and are very passionate about low-level deep learning architectures.

2.1 To my knowledge it is only NVIDIA's series of embedded products such as Jetson Nano which are SBC (single board computers) that, contrary to for example popular Raspberry PIs, also have some CUDA/tensorcores which makes them more suitable for DL models. Usually used in robotics, self-driving vehicles and some industrial sites. Small, light, compact and low power alternatives for regular PCs with GPU.

2.2 I don't think so, although there is some software/code/frameworks that helps you implement your models on these devices. But you still need to train you model with pytorch or tensorflow first.

3.1 YOLO generally is just an architecture, more like theoretical model with particular settings but not piece of code or implementation. If you wanna use YOLO you have to first code this model, what is usually achieved with frameworks such as pytorch/tensorflow/darknet. Probably particular implementation of YOLO, used in this course, uses some other libraries that require some elements of Visual Studio. I am pretty sure that if you look deeper you will find some different YOLO's implementation that do not use VS, even coded from scratch. For example: https://youtu.be/Grir6TZbc1M.

3.2 Yes. Try ultralytic's model that I believe uses only pytorch: https://github.com/ultralytics/yolov5. I used this one and don't remember installing anything else besides regular python libs and pytroch.

4.1 Different frameworks are coded in different ways and use different commands. If you code one model in tensorflow it is not gonna work in darknet or pytorch because they use different syntax, functions and classes. Maybe you would be able to find some frameworks that work as universal model exporters/importers, that can export Tensorflow model to some intermediary format and later import it in darknet, but I have no knowledge on them. Also keep in mind that DL models usually need some additional functions that preprocess input data and later postprocess output data to a usable for human form that usually come with given implementations or frameworks.

4.2 Yes, they depend on the frameworks and particular implementations of given model. YOLO can have multiple implementations within one framework and it all depends on authors of the particular implementation how the interface is gonna be.

4.3 Probably yes. Different frameworks use different dependencies.

GKozinski
  • 1,240
  • 8
  • 19