    //params.numXfBufs = params.numXfBufs < params.nyp ? params.numXfBufs : params.nyp;  
    //params.numXfBufs = 1;
 
-   params.preBufNum = params.localBufSizeX * params.nfp;
+   //params.preBufNum = params.localBufSizeX * params.nfp;
    params.weightsBufNum = params.nxp * params.nfp;
 
-   size_t sharedSize = sizeof(float) * (params.preBufNum + params.postBufNum + params.weightsBufNum);
+   //size_t sharedSize = sizeof(float) * (params.preBufNum + params.postBufNum + params.weightsBufNum);
+   size_t sharedSize = sizeof(float) * (params.postBufNum + params.weightsBufNum);
 
    if(sharedSize > device->get_local_mem()){
       printf("gpu post run: given shared memory size of %zu is bigger than allowed shared memory size of %zu\n", sharedSize, device->get_local_mem());

   for(int ky = 0; ky < params.nyp; ky++){
      //Copy global to local, do this with all threads
      //Pre buffer
      if(localIndex < warpSize){
         for(int i = localIndex; i < numXfBuffer; i+= warpSize){
            preBuffer[i] = params.preData[localStartSourceExt + ky * params.sy + i];
         }
      }
      //Weights
      if(localIndex < warpSize){
         for(int i = localIndex; i < numWeightsBuffer; i+= warpSize){

      printf("gpu post run: numFLocal must be 1\n");
      exit(-1);
   }
   //if(block_size.z != 1){
   //   printf("gpu post run: numYLocal must be 1\n");
   //   exit(-1);
   //}

   //printf("Using %d buffers\n", params.numXfBufs);
   
