     hPreload[y][x] =  tex1Dfetch<float>(hidActs, hidActsLoadOffset + (y) * B_Y * numModules * numImages + (x) * B_X); \
 }
 
-/*****************************Function Revision Record*****************************
- * Author: Tencent BestImage Team(ankerguo@tencent.com)                           *
- * Date:   2015-05-18                                                             *
- * Reason: Optimizing kernel to get faster speed according to GPU features        *
- * Method:                                                                        *
- *         1. reorganizing data structure to avoid bank conflict;                 *
- *         2. using vectorized data type;                                         *
- *         3. improving instruction-level parallelism;                            *
- *         4. removing redundant 'if' branches;                                   *
- *         5. removing local variables to save registers.                         *
- *         6. dividing the process into two steps with less data loaded.          *
- *********************************************************************************/
-
 template <int B_Y, int B_X, int imgsPerThread, int colorsPerThread, int filterCacheF, int filterCacheH, bool scale, bool checkCaseBounds, bool conv>
 __global__ void
-__launch_bounds__(256, 3)   // 256 threads per block, 3 blocks per multiprocessor
+__launch_bounds__(256, 2)   // 256 threads per block, 2 blocks per multiprocessor
                             // These launch bounds ensure 25% occupancy (128 registers used)
                             // as oppposed to 13% (130 registers) achieved by defaults.
 conv_img_acts_manycolor_preloadfh_ty_8_tx_32_c_8_ff_32_fh_16_tex(cudaTextureObject_t hidActs, cudaTextureObject_t filters, float* targets,

        }
    }

    checkCudaErrors(cudaDeviceSetSharedMemConfig(cudaSharedMemBankSizeFourByte));
    getLastCudaError("imgActs: kernel execution failed");
}


    }
}

/*
 * New Titan-optimized stuff.
 */
