@@ -46,6 +46,14 @@ static const pi_uint32 ZeSerialize = [] {
46
46
return SerializeModeValue;
47
47
}();
48
48
49
+ // This is an experimental option to test performance of device to device copy
50
+ // operations on copy engines (versus compute engine)
51
+ static const bool UseCopyEngineForD2DCopy = [] {
52
+ const char *CopyEngineForD2DCopy =
53
+ std::getenv (" SYCL_PI_LEVEL_ZERO_USE_COPY_ENGINE_FOR_D2D_COPY" );
54
+ return (CopyEngineForD2DCopy && (std::stoi (CopyEngineForD2DCopy) != 0 ));
55
+ }();
56
+
49
57
// This class encapsulates actions taken along with a call to Level Zero API.
50
58
class ZeCall {
51
59
private:
@@ -4946,17 +4954,6 @@ pi_result piEnqueueMemBufferWriteRect(
4946
4954
EventWaitList, Event);
4947
4955
}
4948
4956
4949
- // This is an experimental option to test performance of device to device copy
4950
- // operations on copy engines (versus compute engine)
4951
- static bool UseCopyEngineForD2DCopy (bool HasCopyEngine) {
4952
- if (HasCopyEngine) {
4953
- const char *CopyEngineForD2DCopy =
4954
- std::getenv (" SYCL_PI_LEVEL_ZERO_USE_COPY_ENGINE_FOR_D2D_COPY" );
4955
- return (CopyEngineForD2DCopy && (std::stoi (CopyEngineForD2DCopy) != 0 ));
4956
- }
4957
- return false ;
4958
- }
4959
-
4960
4957
pi_result piEnqueueMemBufferCopy (pi_queue Queue, pi_mem SrcBuffer,
4961
4958
pi_mem DstBuffer, size_t SrcOffset,
4962
4959
size_t DstOffset, size_t Size,
@@ -4970,8 +4967,7 @@ pi_result piEnqueueMemBufferCopy(pi_queue Queue, pi_mem SrcBuffer,
4970
4967
bool PreferCopyEngine = (SrcBuffer->OnHost || DstBuffer->OnHost );
4971
4968
4972
4969
// Temporary option added to use copy engine for D2D copy
4973
- // This is an experimental option and will be removed soon
4974
- PreferCopyEngine |= UseCopyEngineForD2DCopy (Queue->Device ->hasCopyEngine ());
4970
+ PreferCopyEngine |= UseCopyEngineForD2DCopy;
4975
4971
4976
4972
return enqueueMemCopyHelper (
4977
4973
PI_COMMAND_TYPE_MEM_BUFFER_COPY, Queue,
@@ -6222,8 +6218,7 @@ pi_result piextUSMEnqueueMemcpy(pi_queue Queue, pi_bool Blocking, void *DstPtr,
6222
6218
!IsDevicePointer (Queue->Context , DstPtr);
6223
6219
6224
6220
// Temporary option added to use copy engine for D2D copy
6225
- // This is an experimental option and will be removed soon
6226
- PreferCopyEngine |= UseCopyEngineForD2DCopy (Queue->Device ->hasCopyEngine ());
6221
+ PreferCopyEngine |= UseCopyEngineForD2DCopy;
6227
6222
6228
6223
return enqueueMemCopyHelper (
6229
6224
// TODO: do we need a new command type for this?
0 commit comments