         ptr_input += input_w; // next input line
       }
       // Update output
-      *ptr_output = sum;
+      *ptr_output = sum/float(kW*kH);
     }
   }
 }

      int kx, ky;
      for(ky = 0; ky < kH; ky++) {
        for(kx = 0; kx < kW; kx++) {
          atomicAdd(&(ptr_gradInput[kx]), z);
        }
        ptr_gradInput += input_w;
      }

      int kx, ky;
      for(ky = 0; ky < kH; ky++) {
        for(kx = 0; kx < kW; kx++)
          ptr_gradInput[kx] += z / float(kW*kH);
        ptr_gradInput += input_w;
      }
    }
