diff --git a/src/operator/ILayerNormImpl_CUDA_kernels.cu b/src/operator/ILayerNormImpl_CUDA_kernels.cu
index 72a1371fde04960230dfb0d2010562f69ee43bb6..d9c655a6be2735a37ae4fbe195d7ba844a9b5b26 100644
--- a/src/operator/ILayerNormImpl_CUDA_kernels.cu
+++ b/src/operator/ILayerNormImpl_CUDA_kernels.cu
@@ -61,7 +61,8 @@ __global__ void ILayerNormforward_(T* input, double SF, int* dims, int* quantize
         {
             k = floorf((k + floorf(sum / k))/2);
         }
-        int factor = (((1 << 31) - 1) / k);
+
+        unsigned int factor = (((1u << 31) - 1) / k);
         for (int i = 0; i < dims[3]; i++) {
             int idx = maxIdx + i;
             square_tensor[idx] =  (biase[idx]/weight[idx])/new_SF;
@@ -339,4 +340,4 @@ void ILayerNormbackward<double>(const double* input_tensor, const double* output
     cudaFree(bias_grad_);
 }
 
-}
\ No newline at end of file
+}