     auto end = std::chrono::steady_clock::now();
 
     auto forward_time = std::chrono::duration<double, std::micro>(end - start).count() / numRepeats;
-    int backward_time = 0;
+    int bwd_data_time = 0;
+    int bwd_params_time = 0;
 
     if (!inference) {
         //Warm up


            weights_ = rand<T>(std::vector<int>{static_cast<int>(weight_size_ / sizeof(T)), 1}, curand_gen);


            std::vector<int> dim = {weights_.size(), 1, 1};
            wDesc_ = FilterDescriptorNd<T>(CUDNN_TENSOR_NCHW, dim);


                                                        time_steps,
                                                        xDescArray_.ptr(),
                                                        &workspace_size_) );

            dW_ = zeros<T>(std::vector<int>{static_cast<int>(weight_size_ / sizeof(T)), 1});

            workspace_ = zeros<float>(std::vector<int>{static_cast<int>(workspace_size_ / sizeof(float)), 1});

