 // else
 //     new_input[0][wid] = 0
 template <typename T, typename TComplex>
-__global__ void __launch_bounds__(TPB *TPB, 10) idxst_idctPreprocess(const T *input, TComplex *output, const int M, const int N,
+__global__ void __launch_bounds__(TPB * TPB, 8) idxst_idctPreprocess(const T *input, TComplex *output, const int M, const int N,
                                                                      const int halfM, const int halfN,
                                                                      const TComplex *__restrict__ expkM, const TComplex *__restrict__ expkN)
 {

// else
//     new_input[hid][0] = 0
template <typename T, typename TComplex>
__global__ void __launch_bounds__(TPB * TPB, 10) idct_idxstPreprocess(const T *input, TComplex *output, const int M, const int N,
                                                                     const int halfM, const int halfN,
                                                                     const TComplex *__restrict__ expkM, const TComplex *__restrict__ expkN)
{

}

template <typename T, typename TComplex>
__global__ void __launch_bounds__(TPB * TPB, 8) dct2dPostprocess(const TComplex *V, T *y, const int M, const int N,
                                                             const int halfM, const int halfN, const T two_over_MN, const T four_over_MN,
                                                             const TComplex *__restrict__ expkM, const TComplex *__restrict__ expkN)
{
