added mkl and cublas implementations