* Added -fopenmp so that eigen can used the parallelized matrix matrix multiplication
* Did large scale testing for the eucliean layer.
* Experimented with alternative ways of implementing gpu_sub. Grid stride kernel is finally used. It doesn't make much difference though.