[Openmp-commits] [PATCH] D87722: [OpenMP] Additional Information for Libomptarget Device Mappings
Joseph Huber via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Tue Sep 15 13:44:05 PDT 2020
jhuber6 created this revision.
jhuber6 added a reviewer: jdoerfert.
jhuber6 added a project: OpenMP.
Herald added subscribers: openmp-commits, guansong, yaxunl.
jhuber6 requested review of this revision.
Herald added a subscriber: sstefan1.
This patch adds additonal support for priting infromation from Libomptarget for already existing maps and printing the final data mapped on the device at device destruction.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D87722
Files:
openmp/libomptarget/src/device.cpp
openmp/libomptarget/src/interface.cpp
Index: openmp/libomptarget/src/interface.cpp
===================================================================
--- openmp/libomptarget/src/interface.cpp
+++ openmp/libomptarget/src/interface.cpp
@@ -78,7 +78,8 @@
if (getInfoLevel() > 1)
dumpTargetPointerMappings();
else
- FAILURE_MESSAGE("run with env LIBOMPTARGET_INFO>1 to dump tables\n");
+ FAILURE_MESSAGE("run with env LIBOMPTARGET_INFO>1 to dump host-target"
+ "pointer maps\n");
FATAL_MESSAGE0(1, "failure of target construct while offloading is mandatory");
}
Index: openmp/libomptarget/src/device.cpp
===================================================================
--- openmp/libomptarget/src/device.cpp
+++ openmp/libomptarget/src/device.cpp
@@ -17,6 +17,7 @@
#include <cassert>
#include <climits>
+#include <cstdio>
#include <string>
/// Map between Device ID (i.e. openmp device id) and its DeviceTy.
@@ -50,7 +51,19 @@
ShadowPtrMap(), DataMapMtx(), PendingGlobalsMtx(), ShadowMtx(),
MemoryManager(nullptr) {}
-DeviceTy::~DeviceTy() = default;
+DeviceTy::~DeviceTy() {
+ if (DeviceID != -1 && getInfoLevel() > 1) {
+ fprintf(stderr, "Device %d Destroyed. Final Host-Device Pointer "
+ "Mapping [LIBOMPTARGET_INFO>1]\n", DeviceID);
+ fprintf(stderr, "%-18s %-18s %s\n", "Host Ptr", "Target Ptr", "Size (B)");
+ for (const auto &HostTargetMap : HostDataToTargetMap) {
+ fprintf(stderr, DPxMOD " " DPxMOD " %lu\n",
+ DPxPTR(HostTargetMap.HstPtrBegin),
+ DPxPTR(HostTargetMap.TgtPtrBegin),
+ HostTargetMap.HstPtrEnd - HostTargetMap.HstPtrBegin);
+ }
+ }
+}
int DeviceTy::associatePtr(void *HstPtrBegin, void *TgtPtrBegin, int64_t Size) {
DataMapMtx.lock();
@@ -214,7 +227,7 @@
HT.incRefCount();
uintptr_t tp = HT.TgtPtrBegin + ((uintptr_t)HstPtrBegin - HT.HstPtrBegin);
- DP("Mapping exists%s with HstPtrBegin=" DPxMOD ", TgtPtrBegin=" DPxMOD ", "
+ INFO(DeviceID, "Mapping exists%s with HstPtrBegin=" DPxMOD ", TgtPtrBegin=" DPxMOD ", "
"Size=%" PRId64 ",%s RefCount=%s\n", (IsImplicit ? " (implicit)" : ""),
DPxPTR(HstPtrBegin), DPxPTR(tp), Size,
(UpdateRefCount ? " updated" : ""),
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D87722.292015.patch
Type: text/x-patch
Size: 2324 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20200915/fc480e0a/attachment.bin>
More information about the Openmp-commits
mailing list