diff --git a/exllamav3/exllamav3_ext/quant/codebook.cuh b/exllamav3/exllamav3_ext/quant/codebook.cuh index f26e19e..3b1ea24 100644 --- a/exllamav3/exllamav3_ext/quant/codebook.cuh +++ b/exllamav3/exllamav3_ext/quant/codebook.cuh @@ -4,8 +4,8 @@ __device__ inline half decode_3inst(uint32_t x) { - x *= 89226354u; - x += 64248484u; + x *= 0xFF7A83E5u; // x *= 89226354u; + // x += 64248484u; x &= 0b10001111111111111000111111111111u; x ^= 0b00111011011000000011101101100000u; half2_uint32 xu(x); @@ -14,10 +14,10 @@ __device__ inline half decode_3inst(uint32_t x) __device__ inline half2 decode_3inst_2(uint32_t x0, uint32_t x1) { - x0 *= 89226354u; - x1 *= 89226354u; - x0 += 64248484u; - x1 += 64248484u; + x0 *= 0xFF7A83E5u; // x0 *= 89226354u; + x1 *= 0xFF7A83E5u; // x1 *= 89226354u; + // x0 += 64248484u; + // x1 += 64248484u; x0 &= 0b10001111111111111000111111111111u; x1 &= 0b10001111111111111000111111111111u; x0 ^= 0b00111011011000000011101101100000u;