From 7d8304e100171b52b39c3f7bea48f45e33893dd8 Mon Sep 17 00:00:00 2001 From: Saleel Kudchadker Date: Tue, 12 Nov 2024 20:36:43 +0000 Subject: [PATCH] SWDEV-497886 - Fix unaligned size copy for kernel args Change-Id: If6675b98178aeb35f376d6994555cbf941b048c3 [ROCm/clr commit: 2273a1dbdc3bea13fa0ebf7edd517e46a887adf6] --- projects/clr/rocclr/device/rocm/rocvirtual.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/projects/clr/rocclr/device/rocm/rocvirtual.cpp b/projects/clr/rocclr/device/rocm/rocvirtual.cpp index f5957f6851..cfec1ecbd2 100644 --- a/projects/clr/rocclr/device/rocm/rocvirtual.cpp +++ b/projects/clr/rocclr/device/rocm/rocvirtual.cpp @@ -3115,6 +3115,13 @@ static inline void nontemporalMemcpy( _mm_stream_si32(reinterpret_cast(dst)++, *reinterpret_cast(src)++); } + + size = size % sizeof(int); + // Copy remaining bytes for unaligned size + std::memcpy(dst, src, size); + + // Add memory fence + _mm_sfence(); #else std::memcpy(dst, src, size); #endif