From a1630573e17a6f0ba0e7127ab957cc1b00e0ea39 Mon Sep 17 00:00:00 2001 From: daminakaTT Date: Tue, 18 Feb 2025 06:04:37 +0000 Subject: [PATCH] Perf optimization. I-cache aware? --- tt_fabric/hw/inc/tt_fabric.h | 1 - tt_fabric/hw/inc/tt_fabric_interface.h | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/tt_fabric/hw/inc/tt_fabric.h b/tt_fabric/hw/inc/tt_fabric.h index 04fa643b82c..a9bc309ee09 100644 --- a/tt_fabric/hw/inc/tt_fabric.h +++ b/tt_fabric/hw/inc/tt_fabric.h @@ -494,7 +494,6 @@ typedef struct fvc_producer_state { next_routing_ptr = (tt_routing*)(next_header_ptr + packet_header_routing_offset_dwords - dwords_before_wrap); } else { -#pragma GCC unroll 12 for (uint32_t i = 0; i < dwords_to_copy; i++) { packet_header_ptr[i] = next_header_ptr[i]; } diff --git a/tt_fabric/hw/inc/tt_fabric_interface.h b/tt_fabric/hw/inc/tt_fabric_interface.h index 9f8c1daa949..c8f85efb926 100644 --- a/tt_fabric/hw/inc/tt_fabric_interface.h +++ b/tt_fabric/hw/inc/tt_fabric_interface.h @@ -140,8 +140,8 @@ constexpr uint32_t packet_header_routing_offset_dwords = offsetof(packet_header_ void tt_fabric_add_header_checksum(packet_header_t* p_header) { uint16_t* ptr = (uint16_t*)p_header; uint32_t sum = 0; - for (uint32_t i = 2; i < sizeof(packet_header_t) / 2; i++) { - sum += ptr[i]; + for (uint32_t i = 2; i + 1 < sizeof(packet_header_t) / 2; i += 2) { + sum += ptr[i] + ptr[i + 1]; } sum = ~sum; sum += sum; @@ -152,8 +152,8 @@ bool tt_fabric_is_header_valid(packet_header_t* p_header) { #ifdef TT_FABRIC_DEBUG uint16_t* ptr = (uint16_t*)p_header; uint32_t sum = 0; - for (uint32_t i = 2; i < sizeof(packet_header_t) / 2; i++) { - sum += ptr[i]; + for (uint32_t i = 2; i + 1 < sizeof(packet_header_t) / 2; i += 2) { + sum += ptr[i] + ptr[i + 1]; } sum = ~sum; sum += sum;