       break;
 
     case 16:
-      cudaFuncSetCacheConfig (k_jacobianReduceHessianGradient<16,true>, cudaFuncCachePreferShared);
+      cudaFuncSetCacheConfig (k_jacobianReduceHessianGradient<16,false>, cudaFuncCachePreferL1);
       k_jacobianReduceHessianGradient<16, false><<< dimGrid, dimBlock >>>(jacobian_input_device,
                                                                           residual_input_device,
                                                                           visibility_input_device,

      break;

    case  4:
      cudaFuncSetCacheConfig (k_jacobianReduceHessianGradient<4,true>, cudaFuncCachePreferShared);
      k_jacobianReduceHessianGradient<4, false><<< dimGrid, dimBlock >>>(jacobian_input_device,
                                                                         residual_input_device,
                                                                         visibility_input_device,

      break;

    case 128:
      cudaFuncSetCacheConfig (k_jacobianReduceHessianGradient<128,true>, cudaFuncCachePreferL1);
      k_jacobianReduceHessianGradient<128, true><<< dimGrid, dimBlock >>>(jacobian_input_device,
                                                                          residual_input_device,
                                                                          visibility_input_device,
