BinaryByter
lol no idea
Manuele
^
nope, this is a standard Recurrent Layer
Manuele
the LSTM is more
BinaryByter
BinaryByter
i haven't done a lot of ML tbh
Manuele
so, as i said, you know nothing about ML
BinaryByter
but saying that I have no idea of it is an understatement
Manuele
BinaryByter
Manuele
also, theory and practice are a lot different in ML
Dima
Stap fighting
Manuele
does implementing a NN make you know it?
not only implementing it. you have to implement all the functions (too easy to use numpy), testing it, applying optimizations (and prevent exploding/vanishing gradient) and a lot of other things
Dima
BinaryByter
BinaryByter
github.com/Wittmaxi/Zeneural
Manuele
> 55 commits
Manuele
LOL
BinaryByter
yea I kinda fucked up a few times
Manuele
this is only a full connected NN lib
Manuele
std::vector? you know how much std::vector is slower than a float*?
Manuele
> no softmax
BinaryByter
Manuele
Dima
STL.... rip
BinaryByter
Manuele
tested myself personally
Dima
throw away
Manuele
do you use openMP at least?
Jussi
Lol
Jussi
This guy was talking about C vs. C++ performance yesterday
BinaryByter
i'm still trying to implement it ( I have weird problems lol )
Jussi
Dpesnt even use aligned vectors
BinaryByter
Dima
looool
Manuele
so stop putting shit on C and learn it
BinaryByter
@OxFFFFFFFF what are aligned vectors?
Manuele
maybe you'll find why a lot of people use it
Manuele
and i'm also a C++ programmer, so i'm not talking as a C fanboy
Manuele
i also prefer C++ to C
Jussi
Can I now show a real example of c code optimization?
Manuele
Dima
Jussi
Jussi
https://hastebin.com/fowitiwutu.cpp
Jussi
Here's a simple calculator of correlated pairs in a PNG image
Jussi
Here's a rather optimized version of same code:
https://hastebin.com/erumesanod.cpp
Jussi
The latter is about 80 times faster than the first one
Manuele
cool but it's nothing special, you simply use matrix/tensors as vectors
Dima
why no restrict pointer
Manuele
Jussi
Jussi
look at the code again lol
Manuele
uhm you are right
Jussi
I'm using data aligned vectors, float8_t takes 8 floats and can calculate all of them at the same time in cpu
Manuele
you should add shared to omp
Jussi
mm true
Manuele
Jussi
c++ is way too bloated nowadays imo, that's why I cant understand people forcing it
BinaryByter
It's deep
Manuele
and here add a pragma omp parallel for reduction(+:help)
Ибраги́м
Ибраги́м
Jussi
Manuele
because C++ is a C projection with OOP, but all the basic memory concepts are from C, like pointers and memory allocation
Ибраги́м
Manuele
Manuele
since cryptocurrency are build for HPC
Manuele
so CUDA and OpenCL for Ethereum
Manuele
ASIC --> Verilog/VHDL for bitcoin
Manuele
so you can also use python as far as i care, the performance are given by these other languages/extensions on accelerators
Jussi
Manuele
Manuele