================
@@ -91,6 +93,61 @@ EXTERN int omp_get_device_num(void) {
return HostDevice;
}
+static inline bool is_initial_device_uid(const char *DeviceUid) {
+ return strcmp(DeviceUid, GenericPluginTy::getInitialDeviceUid()) == 0;
+}
+
+EXTERN int omp_get_device_from_uid(const char *DeviceUid) {
+ TIMESCOPE();
+ OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
+
+ if (!DeviceUid) {
+ DP("Call to omp_get_device_from_uid returning omp_invalid_device\n");
+ return omp_invalid_device;
+ }
+ if (is_initial_device_uid(DeviceUid)) {
+ DP("Call to omp_get_device_from_uid returning initial device number %d\n",
+ omp_get_initial_device());
+ return omp_get_initial_device();
+ }
+
+ int DeviceNum = omp_invalid_device;
+
+ auto ExclusiveDevicesAccessor = PM->getExclusiveDevicesAccessor();
+ for (const DeviceTy &Device : PM->devices(ExclusiveDevicesAccessor)) {
+ const char *Uid = Device.RTL->getDeviceUid(Device.RTLDeviceID);
+ if (Uid && strcmp(DeviceUid, Uid) == 0) {
+ DeviceNum = Device.DeviceID;
+ break;
+ }
+ }
+
+ DP("Call to omp_get_device_from_uid returning %d\n", DeviceNum);
+ return DeviceNum;
+}
+
+EXTERN const char *omp_get_uid_from_device(int DeviceNum) {
+ TIMESCOPE();
+ OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
+
+ if (DeviceNum == omp_invalid_device) {
+ DP("Call to omp_get_uid_from_device returning nullptr\n");
+ return nullptr;
+ }
+ if (DeviceNum == omp_get_initial_device()) {
+ DP("Call to omp_get_uid_from_device returning initial device UID\n");
+ return GenericPluginTy::getInitialDeviceUid();
----------------
ro-i wrote:
Libomptarget isn't available for offload-info etc. tho
I previously called this function getHostDeviceUid, but then thought that this
naming might clash with the fact that there are these other virtual host
devices.
But idk, I can rename it to getHostDeviceUid or getHostUid again.
https://github.com/llvm/llvm-project/pull/164392
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits