CPU vs GPU | Neural Network

GPU vs CPU neural network

I have done two libraries for AI,

  • CPU with Eigen 1 2
  • GPU with CUDA 1 2

They are optimized and work properly. However, there are significant differences in performance.

The GPU library can adapt to other Nvidia graphic card and furthermore improve the time that I obtain within my circumstances. In addition, the graphics card industry is constantly improving their models and we have recently seen the clusters of the graphics card in the business.

The CPU library is stable and can work on any computer because it does not rely on Nvidia hardware, it is a completely cross-platform library that only needs Eigen library which is compatible with every OS.

I have used for the test: i7-7700k vs Nvidia GeForce GTX 1070

Continue reading “CPU vs GPU | Neural Network”

AI + GPU

Deep Neural Network in GPU

I have been developing a neural network API for GPUs. It is based on CUDA technology and I tried to exploit the full potential of the computer.

Most of us, do not know the real potential of GPUs in AI. This kind of hardware is specialized in logical operations and it was used by the industry of engines and videogames. Some years ago, we have experienced a ‘boom’ in graphics cards, the improvement in speed, price and the ease of programming had triggered a new mother-lode.

GPUs provide a bunch of parallelism algorithms to improve performance.

As we know, neural networks use matrix-to-matrix and matrix-to-vector operations. We can take advance in the optimization of them. Unfortunately, feed-forward and backpropagation are linear functions, they can neither be optimized nor parallelized.

    \[Output=\sigma(W*\sigma(...\sigma(W*Input+Bias)...)+Bias)\]

Continue reading “AI + GPU”

Autonomous Car – Learning Algorithms

Genetic algorithm and Backpropagation in autonomous cars

Autonomous cars need learning in order to recognize their environment and behave consistently. Neural networks give us the opportunity to develop complex behaviors and tasks like driving.

I have implemented two algorithms that are widely used in machine learning: backpropagation (supervised learning) and genetic algorithm (reinforcement learning).

Continue reading “Autonomous Car – Learning Algorithms”

LiDAR: Autonomous Car

LiDAR implementation in self-driving cars

LiDAR (Light Imaging, Direction And Ranging) is a method that measures the distance to a target by illuminating the target with pulsed laser light and measuring the reflected pulses with a sensor. Autonomous cars take advantage of this new technology.

Continue reading “LiDAR: Autonomous Car”

Chemistry Studio 2019 ©

Molecular Chemistry Simulator & Editor

This application allows you to create molecules with bonds between atoms. There is no need a further background in chemistry, it has an intuitive user interface and only a few instructions of use:

  • New: This creates a new molecule.
  • Add: adds new atom to the atom selected.
  • Atom Type: enable you to select atoms in a wide variety of them.
  • Delete: deletes the molecule.

Continue reading “Chemistry Studio 2019 ©”

RSA Algorithm

RSA encryption and decryption algorithm and implementation in C++

RSA is an algorithm used by modern computers to encrypt and decrypt messages. Modern encryption is mostly based on this algorithm.

It is an asymmetric cryptographic algorithm.

Asymmetric means that there are two different keys. This is also called public key cryptography because one of the keys can be given to anyone. The other key must be kept private, Elliptic curve algorithm uses asymmetric cryptography also.

The algorithm is based on the fact that finding the factors of a large composite number is difficult: when the integers are prime numbers, the problem is called prime factorization. It is also a key pair (public and private key) generator.

Continue reading “RSA Algorithm”