Skip to content

Commit d8505ad

Browse files
committed
[SYCL] Stop placeholder accessor acting like host accessor.
Accessor with placeholder template parameter set to true should not trigger copying memory to host and blocking operations with a memory object during its lifetime. It should only capture information about target memory, access mode, base type and so on, to be later bound to some specific command group. Signed-off-by: Vlad Romanov <vlad.romanov@intel.com>
1 parent 7b2f630 commit d8505ad

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

sycl/include/CL/sycl/accessor.hpp

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -756,10 +756,12 @@ class accessor :
756756
detail::convertToArrayOfN<3, 1>(BufferRef.get_range()), AccessMode,
757757
detail::getSyclObjImpl(BufferRef).get(), AdjustedDim, sizeof(DataT),
758758
BufferRef.OffsetInBytes, BufferRef.IsSubBuffer) {
759-
detail::EventImplPtr Event =
760-
detail::Scheduler::getInstance().addHostAccessor(
761-
AccessorBaseHost::impl.get());
762-
Event->wait(Event);
759+
if (!IsPlaceH) {
760+
detail::EventImplPtr Event =
761+
detail::Scheduler::getInstance().addHostAccessor(
762+
AccessorBaseHost::impl.get());
763+
Event->wait(Event);
764+
}
763765
#endif
764766
}
765767

@@ -798,10 +800,12 @@ class accessor :
798800
detail::convertToArrayOfN<3, 1>(BufferRef.get_range()), AccessMode,
799801
detail::getSyclObjImpl(BufferRef).get(), Dimensions, sizeof(DataT),
800802
BufferRef.OffsetInBytes, BufferRef.IsSubBuffer) {
801-
detail::EventImplPtr Event =
802-
detail::Scheduler::getInstance().addHostAccessor(
803-
AccessorBaseHost::impl.get());
804-
Event->wait(Event);
803+
if (!IsPlaceH) {
804+
detail::EventImplPtr Event =
805+
detail::Scheduler::getInstance().addHostAccessor(
806+
AccessorBaseHost::impl.get());
807+
Event->wait(Event);
808+
}
805809
}
806810
#endif
807811

@@ -840,10 +844,12 @@ class accessor :
840844
AccessMode, detail::getSyclObjImpl(BufferRef).get(),
841845
Dimensions, sizeof(DataT), BufferRef.OffsetInBytes,
842846
BufferRef.IsSubBuffer) {
843-
detail::EventImplPtr Event =
844-
detail::Scheduler::getInstance().addHostAccessor(
845-
AccessorBaseHost::impl.get());
846-
Event->wait(Event);
847+
if (!IsPlaceH) {
848+
detail::EventImplPtr Event =
849+
detail::Scheduler::getInstance().addHostAccessor(
850+
AccessorBaseHost::impl.get());
851+
Event->wait(Event);
852+
}
847853
}
848854
#endif
849855

0 commit comments

Comments
 (0)