From ee365bbc66c0b015e7455c44664fc0e3e0db60bf Mon Sep 17 00:00:00 2001 From: "PoYen, Chen" Date: Thu, 11 Jul 2024 00:26:18 +0000 Subject: [PATCH] Fix wrong answer when interleaved=true --- .../host/reference/reference_rotary_position_embedding.hpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/ck_tile/host/reference/reference_rotary_position_embedding.hpp b/include/ck_tile/host/reference/reference_rotary_position_embedding.hpp index 926ff1a595..07e5f42ec5 100644 --- a/include/ck_tile/host/reference/reference_rotary_position_embedding.hpp +++ b/include/ck_tile/host/reference/reference_rotary_position_embedding.hpp @@ -53,8 +53,9 @@ CK_TILE_HOST void reference_rotary_position_embedding(const HostTensor if(interleaved) { - const index_t pos = (i_d < half_hdim ? (i_d * 2 + 1) : (i_d - half_hdim) * 2); - const ComputeDataType sign = (i_d < half_hdim ? 1 : -1); + const bool is_even = (i_d % 2 == 0); + const index_t pos = i_d + (is_even ? 1 : -1); + const ComputeDataType sign = (is_even ? -1 : 1); return sign * type_convert(input_bhsd(i_b, i_h, i_s, pos)); } else