12
12
13
13
using namespace sycl ;
14
14
15
+ namespace {
15
16
bool p2p_d2d_record = false ;
16
17
bool p2p_d2s_record = false ;
17
18
bool p2p_s2d_record = false ;
18
19
bool p2p_s2s_record = false ;
19
20
bool uuid_non_unique = false ;
20
21
bool memfill_uuid_zero = false ;
22
+ bool memcopy_type_valid = false ;
23
+ bool memsrc_type_valid = false ;
24
+ bool memdst_type_valid = false ;
21
25
bool non_p2p_d2d_exists = false ;
22
26
bool atleast_2_devices = false ;
23
27
bool p2p_device_access = false ;
28
+ } // namespace
24
29
25
30
void StartTracing () {
26
31
ASSERT_EQ (ptiViewEnable (PTI_VIEW_DEVICE_GPU_KERNEL), pti_result::PTI_SUCCESS);
@@ -81,6 +86,13 @@ static void BufferCompleted(unsigned char* buf, size_t buf_size, size_t used_byt
81
86
std::string memcpy_name = reinterpret_cast <pti_view_record_memory_copy*>(ptr)->_name ;
82
87
if (memcpy_name.find (" D2D)" ) != std::string::npos) {
83
88
non_p2p_d2d_exists = true ;
89
+ pti_view_record_memory_copy* rec = reinterpret_cast <pti_view_record_memory_copy*>(ptr);
90
+ if (rec->_memcpy_type == pti_view_memcpy_type::PTI_VIEW_MEMCPY_TYPE_D2D)
91
+ memcopy_type_valid = true ;
92
+ if (rec->_mem_src == pti_view_memory_type::PTI_VIEW_MEMORY_TYPE_DEVICE)
93
+ memsrc_type_valid = true ;
94
+ if (rec->_mem_dst == pti_view_memory_type::PTI_VIEW_MEMORY_TYPE_DEVICE)
95
+ memdst_type_valid = true ;
84
96
}
85
97
break ;
86
98
}
@@ -95,6 +107,14 @@ static void BufferCompleted(unsigned char* buf, size_t buf_size, size_t used_byt
95
107
if (memcmp (rec->_src_uuid , rec->_dst_uuid , PTI_MAX_DEVICE_UUID_SIZE) == 0 ) {
96
108
uuid_non_unique = true ;
97
109
}
110
+ if (p2p_d2s_record) {
111
+ if (rec->_memcpy_type == pti_view_memcpy_type::PTI_VIEW_MEMCPY_TYPE_D2S)
112
+ memcopy_type_valid = true ;
113
+ if (rec->_mem_src == pti_view_memory_type::PTI_VIEW_MEMORY_TYPE_DEVICE)
114
+ memsrc_type_valid = true ;
115
+ if (rec->_mem_dst == pti_view_memory_type::PTI_VIEW_MEMORY_TYPE_SHARED)
116
+ memdst_type_valid = true ;
117
+ }
98
118
break ;
99
119
}
100
120
case pti_view_kind::PTI_VIEW_DEVICE_GPU_MEM_FILL: {
@@ -216,7 +236,20 @@ void p2pTest() {
216
236
217
237
class MemoryOperationFixtureTest : public ::testing::Test {
218
238
protected:
219
- void SetUp () override {}
239
+ void SetUp () override {
240
+ p2p_d2d_record = false ;
241
+ p2p_d2s_record = false ;
242
+ p2p_s2d_record = false ;
243
+ p2p_s2s_record = false ;
244
+ uuid_non_unique = false ;
245
+ memfill_uuid_zero = false ;
246
+ memcopy_type_valid = false ;
247
+ memsrc_type_valid = false ;
248
+ memdst_type_valid = false ;
249
+ non_p2p_d2d_exists = false ;
250
+ atleast_2_devices = false ;
251
+ p2p_device_access = false ;
252
+ }
220
253
221
254
void TearDown () override {}
222
255
};
@@ -256,3 +289,39 @@ TEST_F(MemoryOperationFixtureTest, MemFilluuidDeviceNonZero) {
256
289
p2pTest ();
257
290
ASSERT_EQ (memfill_uuid_zero, false );
258
291
}
292
+
293
+ TEST_F (MemoryOperationFixtureTest, MemCopyTypeDevice) {
294
+ EXPECT_EQ (ptiViewSetCallbacks (BufferRequested, BufferCompleted), pti_result::PTI_SUCCESS);
295
+ p2pTest ();
296
+ ASSERT_EQ (memcopy_type_valid, true );
297
+ }
298
+
299
+ TEST_F (MemoryOperationFixtureTest, MemSrcTypeDevice) {
300
+ EXPECT_EQ (ptiViewSetCallbacks (BufferRequested, BufferCompleted), pti_result::PTI_SUCCESS);
301
+ p2pTest ();
302
+ ASSERT_EQ (memsrc_type_valid, true );
303
+ }
304
+
305
+ TEST_F (MemoryOperationFixtureTest, MemDstTypeDevice) {
306
+ EXPECT_EQ (ptiViewSetCallbacks (BufferRequested, BufferCompleted), pti_result::PTI_SUCCESS);
307
+ p2pTest ();
308
+ ASSERT_EQ (memdst_type_valid, true );
309
+ }
310
+
311
+ TEST_F (MemoryOperationFixtureTest, MemCopyTypeP2PDevice) {
312
+ EXPECT_EQ (ptiViewSetCallbacks (BufferRequested, BufferCompleted), pti_result::PTI_SUCCESS);
313
+ p2pTest ();
314
+ ASSERT_EQ (memcopy_type_valid, true );
315
+ }
316
+
317
+ TEST_F (MemoryOperationFixtureTest, MemSrcTypeShared) {
318
+ EXPECT_EQ (ptiViewSetCallbacks (BufferRequested, BufferCompleted), pti_result::PTI_SUCCESS);
319
+ p2pTest ();
320
+ ASSERT_EQ (memsrc_type_valid, true );
321
+ }
322
+
323
+ TEST_F (MemoryOperationFixtureTest, MemDstTypeShared) {
324
+ EXPECT_EQ (ptiViewSetCallbacks (BufferRequested, BufferCompleted), pti_result::PTI_SUCCESS);
325
+ p2pTest ();
326
+ ASSERT_EQ (memdst_type_valid, true );
327
+ }
0 commit comments