From 880abbd1cd0081e5aaeae76fc77a2c2a77255574 Mon Sep 17 00:00:00 2001 From: Dmitry Sidorov Date: Wed, 9 Sep 2020 13:22:33 +0300 Subject: [PATCH 1/3] [SYCL] Unroll several loops in __init method accessor class It might improve performance on several platforms. Co-author: Mark Mendell Signed-off-by: Dmitry Sidorov --- sycl/include/CL/sycl/accessor.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sycl/include/CL/sycl/accessor.hpp b/sycl/include/CL/sycl/accessor.hpp index dd4f7fc09be01..6ce0b93959619 100755 --- a/sycl/include/CL/sycl/accessor.hpp +++ b/sycl/include/CL/sycl/accessor.hpp @@ -851,6 +851,7 @@ class accessor : void __init(ConcreteASPtrType Ptr, range AccessRange, range MemRange, id Offset) { MData = Ptr; + [[clang::unroll]] for (int I = 0; I < AdjustedDim; ++I) { getOffset()[I] = Offset[I]; getAccessRange()[I] = AccessRange[I]; @@ -1388,6 +1389,7 @@ class accessor AccessRange, range, id) { MData = Ptr; + [[clang::unroll]] for (int I = 0; I < AdjustedDim; ++I) getSize()[I] = AccessRange[I]; } From 80006f35093de2842b557d7728b56264eca53fce Mon Sep 17 00:00:00 2001 From: Dmitry Sidorov Date: Thu, 10 Sep 2020 23:46:23 +0300 Subject: [PATCH 2/3] Attr -> pragma Signed-off-by: Dmitry Sidorov --- sycl/include/CL/sycl/accessor.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sycl/include/CL/sycl/accessor.hpp b/sycl/include/CL/sycl/accessor.hpp index 6ce0b93959619..fff2ff46340ca 100755 --- a/sycl/include/CL/sycl/accessor.hpp +++ b/sycl/include/CL/sycl/accessor.hpp @@ -851,7 +851,7 @@ class accessor : void __init(ConcreteASPtrType Ptr, range AccessRange, range MemRange, id Offset) { MData = Ptr; - [[clang::unroll]] + #pragma unroll for (int I = 0; I < AdjustedDim; ++I) { getOffset()[I] = Offset[I]; getAccessRange()[I] = AccessRange[I]; @@ -1389,7 +1389,7 @@ class accessor AccessRange, range, id) { MData = Ptr; - [[clang::unroll]] + #pragma unroll for (int I = 0; I < AdjustedDim; ++I) getSize()[I] = AccessRange[I]; } From 3bfd020d9f909907ece08df3cd205ece2beec5e8 Mon Sep 17 00:00:00 2001 From: Dmitry Sidorov Date: Fri, 11 Sep 2020 16:25:54 +0300 Subject: [PATCH 3/3] Apply clang-format Signed-off-by: Dmitry Sidorov --- sycl/include/CL/sycl/accessor.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sycl/include/CL/sycl/accessor.hpp b/sycl/include/CL/sycl/accessor.hpp index fff2ff46340ca..bce13bf54a7e7 100755 --- a/sycl/include/CL/sycl/accessor.hpp +++ b/sycl/include/CL/sycl/accessor.hpp @@ -851,7 +851,7 @@ class accessor : void __init(ConcreteASPtrType Ptr, range AccessRange, range MemRange, id Offset) { MData = Ptr; - #pragma unroll +#pragma unroll for (int I = 0; I < AdjustedDim; ++I) { getOffset()[I] = Offset[I]; getAccessRange()[I] = AccessRange[I]; @@ -1389,7 +1389,7 @@ class accessor AccessRange, range, id) { MData = Ptr; - #pragma unroll +#pragma unroll for (int I = 0; I < AdjustedDim; ++I) getSize()[I] = AccessRange[I]; }