DeepPipe2 Deep-Learning library using GPU(CUDA/cuBLAS)

Source: Deep Learning on Medium

DeepPipe2 Deep-Learning library using GPU(CUDA/cuBLAS)

Do you remember me?
In June, 2019, I was making a library for Deep-Learning by Elixir. The library is called DeepPipe. I introduced it on Medium.

Change of the plan
Deep-Learning requires fast matrix calculations. Elixir is not suitable for such fast calculations. So I was looking at Hastega (now Pelemey). It was announced that it can handle GPU. However, as of February 2020, it can not handle GPU. I gave it up and looked for a new way.

cuMatrix
I decided to make a matrix calculation library myself. I studied Elixir’s mechanism NIFs. NIFs is a mechanism to call external C and C ++ code. NVIDIA’s nvcc compiler is basically GCC. I expected to be able to use it via NIFs as well. It was as expected. I could called CUDA code from NIFs. This allowed us to call cuBLAS, a high-speed matrix calculation library. I named the library cuMatirx.

DeepPipe2
DeepPipe2 inherits the features of the previous DeepPipe. It describes neural networks using Elixir-like pipe operators. I am trying to make it as easy as possible. Because it uses the cuMatrix library mentioned above, it runs very fast. Finally, I can see the light in Deep Learning by Elixir.

CNN
For now, DeepPipe2 describes only simple networks. I plan to write convolution and pooling functions in CUDA.

GitHub
The code is published on Github.

https://github.com/sasagawa888/deeppipe2