Skip to content

Commit 5e6797b

Browse files
committed
Add DEBUG printfs
1 parent f9a49b2 commit 5e6797b

File tree

8 files changed

+94
-2
lines changed

8 files changed

+94
-2
lines changed

source/adapters/cuda/context.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,9 @@ CreateHostMemoryProvider(ur_device_handle_t_ *DeviceHandle,
9797
UMF_MEMORY_TYPE_HOST, MemoryProviderHost);
9898
UMF_RETURN_UR_ERROR(UmfResult);
9999

100+
fprintf(stderr, "CreateHostMemoryProvider() -> MemoryProviderHost=%p\n",
101+
(void *)*MemoryProviderHost);
102+
100103
return UR_RESULT_SUCCESS;
101104
}
102105

@@ -112,6 +115,9 @@ CreateHostMemoryPool(umf_memory_provider_handle_t MemoryProviderHost,
112115

113116
*MemoryPoolHost = _MemoryPoolHost;
114117

118+
fprintf(stderr, "CreateHostMemoryPool() -> MemoryPoolHost=%p\n",
119+
(void *)_MemoryPoolHost);
120+
115121
return UR_RESULT_SUCCESS;
116122
}
117123

source/adapters/cuda/kernel.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,22 +366,35 @@ UR_APIEXPORT ur_result_t UR_APICALL
366366
urKernelSetArgMemObj(ur_kernel_handle_t hKernel, uint32_t argIndex,
367367
const ur_kernel_arg_mem_obj_properties_t *Properties,
368368
ur_mem_handle_t hArgValue) {
369+
fprintf(stderr, "urKernelSetArgMemObj(buffer=%p) START\n", (void *)hArgValue);
370+
369371
// Below sets kernel arg when zero-sized buffers are handled.
370372
// In such case the corresponding memory is null.
371373
if (hArgValue == nullptr) {
374+
fprintf(stderr, "urKernelSetArgMemObj(buffer=%p) -> setKernelArg()\n",
375+
(void *)hArgValue);
372376
hKernel->setKernelArg(argIndex, 0, nullptr);
373377
return UR_RESULT_SUCCESS;
374378
}
375379

376380
ur_result_t Result = UR_RESULT_SUCCESS;
377381
try {
382+
fprintf(stderr, "urKernelSetArgMemObj(buffer=%p) -> getDevice()\n",
383+
(void *)hArgValue);
378384
auto Device = hKernel->getProgram()->getDevice();
379385
ur_mem_flags_t MemAccess =
380386
Properties ? Properties->memoryAccess
381387
: static_cast<ur_mem_flags_t>(UR_MEM_FLAG_READ_WRITE);
388+
fprintf(stderr, "urKernelSetArgMemObj(buffer=%p) -> addMemObjArg()\n",
389+
(void *)hArgValue);
382390
hKernel->Args.addMemObjArg(argIndex, hArgValue, MemAccess);
391+
fprintf(stderr, "urKernelSetArgMemObj(buffer=%p) -> isImage()\n",
392+
(void *)hArgValue);
383393
if (hArgValue->isImage()) {
384394
CUDA_ARRAY3D_DESCRIPTOR arrayDesc;
395+
fprintf(stderr,
396+
"urKernelSetArgMemObj(buffer=%p) -> cuArray3DGetDescriptor()\n",
397+
(void *)hArgValue);
385398
UR_CHECK_ERROR(cuArray3DGetDescriptor(
386399
&arrayDesc, std::get<SurfaceMem>(hArgValue->Mem).getArray(Device)));
387400
if (arrayDesc.Format != CU_AD_FORMAT_UNSIGNED_INT32 &&
@@ -393,11 +406,20 @@ urKernelSetArgMemObj(ur_kernel_handle_t hKernel, uint32_t argIndex,
393406
UR_RESULT_ERROR_ADAPTER_SPECIFIC);
394407
return UR_RESULT_ERROR_ADAPTER_SPECIFIC;
395408
}
409+
fprintf(stderr, "urKernelSetArgMemObj(buffer=%p) -> getSurface()\n",
410+
(void *)hArgValue);
396411
CUsurfObject CuSurf =
397412
std::get<SurfaceMem>(hArgValue->Mem).getSurface(Device);
413+
fprintf(stderr, "urKernelSetArgMemObj(buffer=%p) -> setKernelArg(1)\n",
414+
(void *)hArgValue);
398415
hKernel->setKernelArg(argIndex, sizeof(CuSurf), (void *)&CuSurf);
399416
} else {
417+
fprintf(stderr, "urKernelSetArgMemObj(buffer=%p) -> getPtr(2)\n",
418+
(void *)hArgValue);
400419
CUdeviceptr CuPtr = std::get<BufferMem>(hArgValue->Mem).getPtr(Device);
420+
fprintf(stderr,
421+
"urKernelSetArgMemObj(buffer=%p) -> setKernelArg(2) = %p\n",
422+
(void *)hArgValue, (void *)CuPtr);
401423
hKernel->setKernelArg(argIndex, sizeof(CUdeviceptr), (void *)&CuPtr);
402424
}
403425
} catch (ur_result_t Err) {

source/adapters/cuda/memory.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,15 @@ UR_APIEXPORT ur_result_t UR_APICALL urMemRelease(ur_mem_handle_t hMem) {
100100
try {
101101

102102
// Do nothing if there are other references
103-
if (hMem->decrementReferenceCount() > 0) {
103+
uint32_t rc = hMem->decrementReferenceCount();
104+
if (rc > 0) {
105+
fprintf(stderr, "urMemRelease() -> decrementReferenceCount(%p) = %u\n",
106+
(void *)hMem, rc);
104107
return UR_RESULT_SUCCESS;
105108
}
106109

110+
fprintf(stderr, "urMemRelease() -> Destroy(%p)\n", (void *)hMem);
111+
107112
// Call destructor
108113
std::unique_ptr<ur_mem_handle_t_> MemObjPtr(hMem);
109114

source/adapters/cuda/platform.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,40 @@ CreateDeviceMemoryProvidersPools(ur_platform_handle_t_ *Platform) {
4242
UMF_MEMORY_TYPE_DEVICE, &device_handle->MemoryProviderDevice);
4343
UMF_RETURN_UR_ERROR(UmfResult);
4444

45+
fprintf(stderr,
46+
"CreateDeviceMemoryProvidersPools() -> MemoryProviderDevice=%p\n",
47+
(void *)device_handle->MemoryProviderDevice);
48+
4549
// create UMF CUDA memory provider for the shared memory
4650
// (UMF_MEMORY_TYPE_SHARED)
4751
UmfResult = umf::createMemoryProvider(
4852
CUMemoryProviderParamsUnique.get(), device, context,
4953
UMF_MEMORY_TYPE_SHARED, &device_handle->MemoryProviderShared);
5054
UMF_RETURN_UR_ERROR(UmfResult);
5155

56+
fprintf(stderr,
57+
"CreateDeviceMemoryProvidersPools() -> MemoryProviderShared=%p\n",
58+
(void *)device_handle->MemoryProviderShared);
59+
5260
// create UMF CUDA memory pool for the device memory
5361
// (UMF_MEMORY_TYPE_DEVICE)
5462
UmfResult = umf::createMemoryProxyPool(device_handle->MemoryProviderDevice,
5563
&device_handle->MemoryPoolDevice);
5664
UMF_RETURN_UR_ERROR(UmfResult);
5765

66+
fprintf(stderr,
67+
"CreateDeviceMemoryProvidersPools() -> MemoryPoolDevice=%p\n",
68+
(void *)device_handle->MemoryPoolDevice);
69+
5870
// create UMF CUDA memory pool for the shared memory
5971
// (UMF_MEMORY_TYPE_SHARED)
6072
UmfResult = umf::createMemoryProxyPool(device_handle->MemoryProviderShared,
6173
&device_handle->MemoryPoolShared);
6274
UMF_RETURN_UR_ERROR(UmfResult);
75+
76+
fprintf(stderr,
77+
"CreateDeviceMemoryProvidersPools() -> MemoryPoolShared=%p\n",
78+
(void *)device_handle->MemoryPoolShared);
6379
}
6480

6581
return UR_RESULT_SUCCESS;

source/adapters/cuda/usm.cpp

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,10 +128,13 @@ ur_result_t USMFreeImpl(ur_context_handle_t hContext, void *Pointer) {
128128
umf_memory_pool_handle_t MemoryPool;
129129

130130
if (IsManaged) {
131+
fprintf(stderr, "Freeing memory from the SHARED memory pool\n");
131132
MemoryPool = Device->MemoryPoolShared;
132133
} else if (Type == CU_MEMORYTYPE_DEVICE) {
134+
fprintf(stderr, "Freeing memory from the DEVICE memory pool\n");
133135
MemoryPool = Device->MemoryPoolDevice;
134136
} else {
137+
fprintf(stderr, "Freeing memory from the HOST memory pool\n");
135138
MemoryPool = hContext->MemoryPoolHost;
136139
}
137140

@@ -146,8 +149,13 @@ ur_result_t USMFreeImpl(ur_context_handle_t hContext, void *Pointer) {
146149
///
147150
UR_APIEXPORT ur_result_t UR_APICALL urUSMFree(ur_context_handle_t hContext,
148151
void *pMem) {
149-
if (auto Pool = umfPoolByPtr(pMem))
152+
if (auto Pool = umfPoolByPtr(pMem)) {
153+
fprintf(stderr,
154+
"Freeing memory from the COMMON memory pool (hContext: %p, pMem: "
155+
"%p, Pool: %p)\n",
156+
(void *)hContext, pMem, (void *)Pool);
150157
return umf::umf2urResult(umfPoolFree(Pool, pMem));
158+
}
151159
return USMFreeImpl(hContext, pMem);
152160
}
153161

@@ -426,6 +434,9 @@ ur_usm_pool_handle_t_::ur_usm_pool_handle_t_(ur_context_handle_t Context,
426434
UmfHostParamsHandle.get())
427435
.second;
428436

437+
fprintf(stderr, "poolMakeUniqueFromOps(provider=%p) -> HostMemPool=%p\n",
438+
(void *)MemProvider.get(), (void *)HostMemPool.get());
439+
429440
for (const auto &Device : Context->getDevices()) {
430441
MemProvider =
431442
umf::memoryProviderMakeUnique<USMDeviceMemoryProvider>(Context, Device)
@@ -436,6 +447,10 @@ ur_usm_pool_handle_t_::ur_usm_pool_handle_t_(ur_context_handle_t Context,
436447
umf::poolMakeUniqueFromOps(umfDisjointPoolOps(), std::move(MemProvider),
437448
UmfDeviceParamsHandle.get())
438449
.second;
450+
451+
fprintf(stderr, "poolMakeUniqueFromOps(provider=%p) -> DeviceMemPool=%p\n",
452+
(void *)MemProvider.get(), (void *)DeviceMemPool.get());
453+
439454
MemProvider =
440455
umf::memoryProviderMakeUnique<USMSharedMemoryProvider>(Context, Device)
441456
.second;
@@ -445,6 +460,10 @@ ur_usm_pool_handle_t_::ur_usm_pool_handle_t_(ur_context_handle_t Context,
445460
umf::poolMakeUniqueFromOps(umfDisjointPoolOps(), std::move(MemProvider),
446461
UmfSharedParamsHandle.get())
447462
.second;
463+
464+
fprintf(stderr, "poolMakeUniqueFromOps(provider=%p) -> SharedMemPool=%p\n",
465+
(void *)MemProvider.get(), (void *)SharedMemPool.get());
466+
448467
Context->addPool(this);
449468
}
450469
}

source/common/umf_helpers.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,8 @@ auto poolMakeUnique(provider_unique_handle_t provider, Args &&...args) {
227227

228228
auto ret = umfPoolCreate(&ops, provider.get(), &argsTuple,
229229
UMF_POOL_CREATE_FLAG_OWN_PROVIDER, &hPool);
230+
fprintf(stderr, "poolMakeUnique(provider=%p) -> umfPoolCreate=%p\n",
231+
(void *)provider.get(), (void *)hPool);
230232
if (ret == UMF_RESULT_SUCCESS) {
231233
provider.release(); // pool now owns the provider
232234
}
@@ -240,6 +242,8 @@ static inline auto poolMakeUniqueFromOps(umf_memory_pool_ops_t *ops,
240242
umf_memory_pool_handle_t hPool;
241243
auto ret = umfPoolCreate(ops, provider.get(), params,
242244
UMF_POOL_CREATE_FLAG_OWN_PROVIDER, &hPool);
245+
fprintf(stderr, "poolMakeUniqueFromOps(provider=%p) -> umfPoolCreate=%p\n",
246+
(void *)provider.get(), (void *)hPool);
243247
if (ret != UMF_RESULT_SUCCESS) {
244248
return std::pair<umf_result_t, pool_unique_handle_t>{
245249
ret, pool_unique_handle_t(nullptr, nullptr)};

test/conformance/kernel/urKernelSetArgMemObj.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,29 @@ struct urKernelSetArgMemObjTest : uur::urKernelTest {
1212
void SetUp() {
1313
program_name = "fill";
1414
UUR_RETURN_ON_FATAL_FAILURE(urKernelTest::SetUp());
15+
fprintf(
16+
stderr,
17+
"urKernelSetArgMemObjTest::SetUp -> urMemBufferCreate(size=%zu) ...\n",
18+
16 * sizeof(uint32_t));
1519
ASSERT_SUCCESS(urMemBufferCreate(context, UR_MEM_FLAG_READ_WRITE,
1620
16 * sizeof(uint32_t), nullptr, &buffer));
21+
fprintf(stderr,
22+
"urKernelSetArgMemObjTest::SetUp -> urMemBufferCreate(size=%zu, "
23+
"buffer=%p) DONE\n",
24+
16 * sizeof(uint32_t), (void *)buffer);
1725
}
1826

1927
void TearDown() {
2028
if (buffer) {
29+
fprintf(
30+
stderr,
31+
"urKernelSetArgMemObjTest::TearDown -> urMemRelease(buffer=%p) ...\n",
32+
(void *)buffer);
2133
ASSERT_SUCCESS(urMemRelease(buffer));
34+
fprintf(stderr,
35+
"urKernelSetArgMemObjTest::TearDown -> urMemRelease(buffer=%p) "
36+
"DONE\n",
37+
(void *)buffer);
2238
}
2339
UUR_RETURN_ON_FATAL_FAILURE(urKernelTest::TearDown());
2440
}
@@ -28,7 +44,9 @@ struct urKernelSetArgMemObjTest : uur::urKernelTest {
2844
UUR_INSTANTIATE_DEVICE_TEST_SUITE(urKernelSetArgMemObjTest);
2945

3046
TEST_P(urKernelSetArgMemObjTest, Success) {
47+
fprintf(stderr, "TEST_P(urKernelSetArgMemObjTest, Success) START\n");
3148
ASSERT_SUCCESS(urKernelSetArgMemObj(kernel, 0, nullptr, buffer));
49+
fprintf(stderr, "TEST_P(urKernelSetArgMemObjTest, Success) END\n");
3250
}
3351

3452
TEST_P(urKernelSetArgMemObjTest, InvalidNullHandleKernel) {

test/conformance/kernel/urKernelSetArgPointer.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ struct urKernelSetArgPointerTest : uur::urKernelExecutionTest {
3434
UUR_INSTANTIATE_DEVICE_TEST_SUITE(urKernelSetArgPointerTest);
3535

3636
TEST_P(urKernelSetArgPointerTest, SuccessHost) {
37+
fprintf(stderr, "TEST_P(urKernelSetArgPointerTest, SuccessHost) START\n");
3738
ur_device_usm_access_capability_flags_t host_usm_flags = 0;
3839
ASSERT_SUCCESS(uur::GetDeviceUSMHostSupport(device, host_usm_flags));
3940
if (!(host_usm_flags & UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS)) {
@@ -48,6 +49,7 @@ TEST_P(urKernelSetArgPointerTest, SuccessHost) {
4849
ASSERT_SUCCESS(urKernelSetArgValue(kernel, 1, sizeof(data), nullptr, &data));
4950
Launch1DRange(array_size);
5051
ValidateAllocation(allocation);
52+
fprintf(stderr, "TEST_P(urKernelSetArgPointerTest, SuccessHost) END\n");
5153
}
5254

5355
TEST_P(urKernelSetArgPointerTest, SuccessDevice) {

0 commit comments

Comments
 (0)