 				get_hermitian100_tt_fp16<<<batch_size, 64, SCAN_BATCH * f/2*sizeof(float2)>>>
 					(batch_offset, (half2*) xx, cscColIndex, cscRowIndex, lambda, n, f, XT);
 				#else
-				get_hermitian100<<<batch_size, 64, SCAN_BATCH * f/2*sizeof(float2)>>>
+				get_hermitian100<<<batch_size, 55, SCAN_BATCH * f/2*sizeof(float2)>>>
 					(batch_offset, (float2*)xx, cscColIndex, cscRowIndex, lambda, n, f, XT);
 				#endif
 			}

		//iteration: copy gmem-->smem; aggregate smem-->register
		for (int iter = 0; iter < iterations; iter ++){
			//phase 1 in iteration: gmem --> smem
			//REQ: blockDim.x >= F/2
			if(threadIdx.x < F/2){
				for(int k = 0; k< SCAN_BATCH; k++){

					saveDeviceFloatArrayToFile(std::string("./log/cg-xx16-tt16.") + std::to_string(iter),  f * f * batch_size/2, tt);
					#endif					
				#else
				get_hermitian100<<<batch_size, 55, SCAN_BATCH * f/2*sizeof(float2)>>>
					(batch_offset, (float2*)tt, csrRowIndex, csrColIndex, lambda, m, f, thetaT);
					#ifdef CUMF_SAVE_MODEL
					saveDeviceFloatArrayToFile(std::string("./log/0904/tt32.") + std::to_string(iter),  f * f * batch_size, tt);
