Author: Robert Imschweiler Date: 2025-11-18T16:03:12+01:00 New Revision: 1d80cda87609b6dcb8a84d60df41bc26b535fdf7
URL: https://github.com/llvm/llvm-project/commit/1d80cda87609b6dcb8a84d60df41bc26b535fdf7 DIFF: https://github.com/llvm/llvm-project/commit/1d80cda87609b6dcb8a84d60df41bc26b535fdf7.diff LOG: Revert "[OpenMP] Implement omp_get_uid_from_device() / omp_get_device_from_ui…" This reverts commit 65c4a534bd55ed56962fb99c36f464b3f1c9732f. Added: Modified: offload/include/OpenMP/omp.h offload/include/omptarget.h offload/libomptarget/OpenMP/API.cpp offload/libomptarget/exports openmp/device/include/DeviceTypes.h openmp/device/include/Interface.h openmp/device/src/State.cpp openmp/runtime/src/dllexports openmp/runtime/src/include/omp.h.var openmp/runtime/src/include/omp_lib.F90.var openmp/runtime/src/include/omp_lib.h.var openmp/runtime/src/kmp_ftn_entry.h openmp/runtime/src/kmp_ftn_os.h Removed: offload/test/api/omp_device_uid.c openmp/runtime/test/api/omp_device_uid.c ################################################################################ diff --git a/offload/include/OpenMP/omp.h b/offload/include/OpenMP/omp.h index d92c7e450c677..768ca46a9bed0 100644 --- a/offload/include/OpenMP/omp.h +++ b/offload/include/OpenMP/omp.h @@ -30,13 +30,6 @@ extern "C" { -/// Definitions -///{ - -#define omp_invalid_device -2 - -///} - /// Type declarations ///{ diff --git a/offload/include/omptarget.h b/offload/include/omptarget.h index 00910704a979a..fbb4a06accf84 100644 --- a/offload/include/omptarget.h +++ b/offload/include/omptarget.h @@ -270,8 +270,6 @@ extern "C" { void ompx_dump_mapping_tables(void); int omp_get_num_devices(void); int omp_get_device_num(void); -int omp_get_device_from_uid(const char *DeviceUid); -const char *omp_get_uid_from_device(int DeviceNum); int omp_get_initial_device(void); void *omp_target_alloc(size_t Size, int DeviceNum); void omp_target_free(void *DevicePtr, int DeviceNum); diff --git a/offload/libomptarget/OpenMP/API.cpp b/offload/libomptarget/OpenMP/API.cpp index 6e85e5764449c..dd83a3ccd08e6 100644 --- a/offload/libomptarget/OpenMP/API.cpp +++ b/offload/libomptarget/OpenMP/API.cpp @@ -40,8 +40,6 @@ EXTERN void ompx_dump_mapping_tables() { using namespace llvm::omp::target::ompt; #endif -using GenericDeviceTy = llvm::omp::target::plugin::GenericDeviceTy; - void *targetAllocExplicit(size_t Size, int DeviceNum, int Kind, const char *Name); void targetFreeExplicit(void *DevicePtr, int DeviceNum, int Kind, @@ -70,62 +68,6 @@ EXTERN int omp_get_device_num(void) { return HostDevice; } -static inline bool is_initial_device_uid(const char *DeviceUid) { - return strcmp(DeviceUid, GenericPluginTy::getHostDeviceUid()) == 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->getDevice(Device.RTLDeviceID).getDeviceUid(); - 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::getHostDeviceUid(); - } - - auto DeviceOrErr = PM->getDevice(DeviceNum); - if (!DeviceOrErr) - FATAL_MESSAGE(DeviceNum, "%s", toString(DeviceOrErr.takeError()).c_str()); - - const char *Uid = - DeviceOrErr->RTL->getDevice(DeviceOrErr->RTLDeviceID).getDeviceUid(); - DP("Call to omp_get_uid_from_device returning %s\n", Uid); - return Uid; -} - EXTERN int omp_get_initial_device(void) { TIMESCOPE(); OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0))); diff --git a/offload/libomptarget/exports b/offload/libomptarget/exports index 2ebc23e3cf60a..910a5b6c827a7 100644 --- a/offload/libomptarget/exports +++ b/offload/libomptarget/exports @@ -40,8 +40,6 @@ VERS1.0 { omp_get_mapped_ptr; omp_get_num_devices; omp_get_device_num; - omp_get_device_from_uid; - omp_get_uid_from_device; omp_get_initial_device; omp_target_alloc; omp_target_free; diff --git a/offload/test/api/omp_device_uid.c b/offload/test/api/omp_device_uid.c deleted file mode 100644 index 2a41d8d04ef8a..0000000000000 --- a/offload/test/api/omp_device_uid.c +++ /dev/null @@ -1,76 +0,0 @@ -// RUN: %libomptarget-compile-run-and-check-generic - -#include <omp.h> -#include <stdio.h> -#include <string.h> - -int test_omp_device_uid(int device_num) { - const char *device_uid = omp_get_uid_from_device(device_num); - if (device_uid == NULL) { - printf("FAIL for device %d: omp_get_uid_from_device returned NULL\n", - device_num); - return 0; - } - - int device_num_from_uid = omp_get_device_from_uid(device_uid); - if (device_num_from_uid != device_num) { - printf( - "FAIL for device %d: omp_get_device_from_uid returned %d (UID: %s)\n", - device_num, device_num_from_uid, device_uid); - return 0; - } - - if (device_num == omp_get_initial_device()) - return 1; - - int success = 1; - -// Note that the following code may be executed on the host if the host is the -// device -#pragma omp target map(tofrom : success) device(device_num) - { - int device_num = omp_get_device_num(); - - // omp_get_uid_from_device() in the device runtime is a dummy function - // returning NULL - const char *device_uid = omp_get_uid_from_device(device_num); - - // omp_get_device_from_uid() in the device runtime is a dummy function - // returning omp_invalid_device. - int device_num_from_uid = omp_get_device_from_uid(device_uid); - - // Depending on whether we're executing on the device or the host, we either - // got NULL as the device UID or the correct device UID. Consequently, - // omp_get_device_from_uid() either returned omp_invalid_device or the - // correct device number (aka omp_get_initial_device()). - if (device_uid ? device_num_from_uid != device_num - : device_num_from_uid != omp_invalid_device) { - printf("FAIL for device %d (target): omp_get_device_from_uid returned %d " - "(UID: %s)\n", - device_num, device_num_from_uid, device_uid); - success = 0; - } - } - - return success; -} - -int main() { - int num_devices = omp_get_num_devices(); - int num_failed = 0; - // (also test initial device aka num_devices) - for (int i = 0; i < num_devices + 1; i++) { - if (!test_omp_device_uid(i)) { - printf("FAIL for device %d\n", i); - num_failed++; - } - } - if (num_failed) { - printf("FAIL\n"); - return 1; - } - printf("PASS\n"); - return 0; -} - -// CHECK: PASS diff --git a/openmp/device/include/DeviceTypes.h b/openmp/device/include/DeviceTypes.h index 213ccfe58b4fb..2e5d92380f040 100644 --- a/openmp/device/include/DeviceTypes.h +++ b/openmp/device/include/DeviceTypes.h @@ -21,9 +21,6 @@ template <typename T> using Constant = __gpu_constant T; template <typename T> using Local = __gpu_local T; template <typename T> using Global = __gpu_local T; -// See definition in OpenMP (omp.h.var/omp_lib.(F90|h).var) -#define omp_invalid_device -2 - enum omp_proc_bind_t { omp_proc_bind_false = 0, omp_proc_bind_true = 1, diff --git a/openmp/device/include/Interface.h b/openmp/device/include/Interface.h index 71c3b1fc06d40..c4bfaaa2404b4 100644 --- a/openmp/device/include/Interface.h +++ b/openmp/device/include/Interface.h @@ -130,10 +130,6 @@ int omp_get_num_devices(void); int omp_get_device_num(void); -int omp_get_device_from_uid(const char *DeviceUid); - -const char *omp_get_uid_from_device(int DeviceNum); - int omp_get_num_teams(void); int omp_get_team_num(); diff --git a/openmp/device/src/State.cpp b/openmp/device/src/State.cpp index 985e6b169137f..9f38cf26f8c6f 100644 --- a/openmp/device/src/State.cpp +++ b/openmp/device/src/State.cpp @@ -403,12 +403,6 @@ int omp_get_num_devices(void) { return config::getNumDevices(); } int omp_get_device_num(void) { return config::getDeviceNum(); } -int omp_get_device_from_uid(const char *DeviceUid) { - return omp_invalid_device; -} - -const char *omp_get_uid_from_device(int DeviceNum) { return nullptr; } - int omp_get_num_teams(void) { return mapping::getNumberOfBlocksInKernel(); } int omp_get_team_num() { return mapping::getBlockIdInKernel(); } diff --git a/openmp/runtime/src/dllexports b/openmp/runtime/src/dllexports index 00becd1a657fd..3983dae80c9f5 100644 --- a/openmp/runtime/src/dllexports +++ b/openmp/runtime/src/dllexports @@ -544,8 +544,6 @@ kmp_set_disp_num_buffers 890 omp_get_devices_all_allocator 819 omp_get_memspace_num_resources 820 omp_get_submemspace 821 - omp_get_device_from_uid 822 - omp_get_uid_from_device 823 %ifndef stub __kmpc_set_default_allocator __kmpc_get_default_allocator diff --git a/openmp/runtime/src/include/omp.h.var b/openmp/runtime/src/include/omp.h.var index e98df731ad888..74f385feb3ea5 100644 --- a/openmp/runtime/src/include/omp.h.var +++ b/openmp/runtime/src/include/omp.h.var @@ -536,11 +536,6 @@ /* OpenMP 5.2 */ extern int __KAI_KMPC_CONVENTION omp_in_explicit_task(void); - #define omp_invalid_device -2 - - /* OpenMP 6.0 */ - extern int __KAI_KMPC_CONVENTION omp_get_device_from_uid(const char *DeviceUid); - extern const char * __KAI_KMPC_CONVENTION omp_get_uid_from_device(int DeviceNum); /* LLVM Extensions */ extern void *llvm_omp_target_dynamic_shared_alloc(void); diff --git a/openmp/runtime/src/include/omp_lib.F90.var b/openmp/runtime/src/include/omp_lib.F90.var index 159b42ab5b5cc..90d7e49ebf549 100644 --- a/openmp/runtime/src/include/omp_lib.F90.var +++ b/openmp/runtime/src/include/omp_lib.F90.var @@ -215,8 +215,6 @@ integer (kind=omp_interop_kind), parameter, public :: omp_interop_none = 0 - integer (kind=omp_integer_kind), parameter, public :: omp_invalid_device = -2 - interface ! *** @@ -419,18 +417,6 @@ integer (kind=omp_integer_kind) omp_get_device_num end function omp_get_device_num - function omp_get_uid_from_device(device_num) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: device_num - character (len=*) omp_get_uid_from_device - end function omp_get_uid_from_device - - function omp_get_device_from_uid(device_uid) bind(c) - use omp_lib_kinds - character (len=*), value :: device_uid - integer (kind=omp_integer_kind) omp_get_device_from_uid - end function omp_get_device_from_uid - function omp_pause_resource(kind, device_num) bind(c) use omp_lib_kinds integer (kind=omp_pause_resource_kind), value :: kind diff --git a/openmp/runtime/src/include/omp_lib.h.var b/openmp/runtime/src/include/omp_lib.h.var index 468eb03e99ef1..a50bb018c7cc3 100644 --- a/openmp/runtime/src/include/omp_lib.h.var +++ b/openmp/runtime/src/include/omp_lib.h.var @@ -291,9 +291,6 @@ integer(kind=omp_interop_kind)omp_interop_none parameter(omp_interop_none=0) - integer(kind=omp_integer_kind)omp_invalid_device - parameter(omp_invalid_device=-2) - interface ! *** @@ -489,18 +486,6 @@ integer (kind=omp_integer_kind) omp_get_device_num end function omp_get_device_num - function omp_get_uid_from_device(device_num) bind(c) - import - integer (kind=omp_integer_kind), value :: device_num - character (len=*) omp_get_uid_from_device - end function omp_get_uid_from_device - - function omp_get_device_from_uid(device_uid) bind(c) - import - character (len=*), value :: device_uid - integer (kind=omp_integer_kind) omp_get_device_from_uid - end function omp_get_device_from_uid - function omp_pause_resource(kind, device_num) bind(c) import integer (kind=omp_pause_resource_kind), value :: kind @@ -1174,8 +1159,6 @@ !DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_initial_device !DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_devices !DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_device_num -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_uid_from_device -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_device_from_uid !DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_pause_resource !DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_pause_resource_all !DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_supported_active_levels @@ -1259,8 +1242,6 @@ !$omp declare target(omp_get_initial_device ) !$omp declare target(omp_get_num_devices ) !$omp declare target(omp_get_device_num ) -!$omp declare target(omp_get_uid_from_device ) -!$omp declare target(omp_get_device_from_uid ) !$omp declare target(omp_pause_resource ) !$omp declare target(omp_pause_resource_all ) !$omp declare target(omp_get_supported_active_levels ) diff --git a/openmp/runtime/src/kmp_ftn_entry.h b/openmp/runtime/src/kmp_ftn_entry.h index 49c56d2b9a769..2b0063eb23a0a 100644 --- a/openmp/runtime/src/kmp_ftn_entry.h +++ b/openmp/runtime/src/kmp_ftn_entry.h @@ -1543,38 +1543,13 @@ int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_MAX_TASK_PRIORITY)(void) { #endif } -// These functions will be defined in libomptarget. When libomptarget is not -// loaded, we assume we are on the host. +// This function will be defined in libomptarget. When libomptarget is not +// loaded, we assume we are on the host and return KMP_HOST_DEVICE. // Compiler/libomptarget will handle this if called inside target. int FTN_STDCALL FTN_GET_DEVICE_NUM(void) KMP_WEAK_ATTRIBUTE_EXTERNAL; int FTN_STDCALL FTN_GET_DEVICE_NUM(void) { return KMP_EXPAND_NAME(FTN_GET_INITIAL_DEVICE)(); } -const char *FTN_STDCALL FTN_GET_UID_FROM_DEVICE(int device_num) - KMP_WEAK_ATTRIBUTE_EXTERNAL; -const char *FTN_STDCALL FTN_GET_UID_FROM_DEVICE(int device_num) { -#if KMP_OS_DARWIN || KMP_OS_WASI || defined(KMP_STUB) - return nullptr; -#else - const char *(*fptr)(int); - if ((*(void **)(&fptr) = KMP_DLSYM_NEXT("omp_get_uid_from_device"))) - return (*fptr)(device_num); - // Returns the same string as used by libomptarget - return "HOST"; -#endif -} -int FTN_STDCALL FTN_GET_DEVICE_FROM_UID(const char *device_uid) - KMP_WEAK_ATTRIBUTE_EXTERNAL; -int FTN_STDCALL FTN_GET_DEVICE_FROM_UID(const char *device_uid) { -#if KMP_OS_DARWIN || KMP_OS_WASI || defined(KMP_STUB) - return omp_invalid_device; -#else - int (*fptr)(const char *); - if ((*(void **)(&fptr) = KMP_DLSYM_NEXT("omp_get_device_from_uid"))) - return (*fptr)(device_uid); - return KMP_EXPAND_NAME(FTN_GET_INITIAL_DEVICE)(); -#endif -} // Compiler will ensure that this is only called from host in sequential region int FTN_STDCALL KMP_EXPAND_NAME(FTN_PAUSE_RESOURCE)(kmp_pause_status_t kind, diff --git a/openmp/runtime/src/kmp_ftn_os.h b/openmp/runtime/src/kmp_ftn_os.h index c439a058f22b4..ae0ed067235e5 100644 --- a/openmp/runtime/src/kmp_ftn_os.h +++ b/openmp/runtime/src/kmp_ftn_os.h @@ -140,8 +140,6 @@ #define FTN_GET_MEMSPACE_NUM_RESOURCES omp_get_memspace_num_resources #define FTN_GET_SUBMEMSPACE omp_get_submemspace #define FTN_GET_DEVICE_NUM omp_get_device_num -#define FTN_GET_UID_FROM_DEVICE omp_get_uid_from_device -#define FTN_GET_DEVICE_FROM_UID omp_get_device_from_uid #define FTN_SET_AFFINITY_FORMAT omp_set_affinity_format #define FTN_GET_AFFINITY_FORMAT omp_get_affinity_format #define FTN_DISPLAY_AFFINITY omp_display_affinity @@ -291,8 +289,6 @@ #define FTN_ALLOC omp_alloc_ #define FTN_FREE omp_free_ #define FTN_GET_DEVICE_NUM omp_get_device_num_ -#define FTN_GET_UID_FROM_DEVICE omp_get_uid_from_device_ -#define FTN_GET_DEVICE_FROM_UID omp_get_device_from_uid_ #define FTN_SET_AFFINITY_FORMAT omp_set_affinity_format_ #define FTN_GET_AFFINITY_FORMAT omp_get_affinity_format_ #define FTN_DISPLAY_AFFINITY omp_display_affinity_ @@ -440,8 +436,6 @@ #define FTN_GET_MEMSPACE_NUM_RESOURCES OMP_GET_MEMSPACE_NUM_RESOURCES #define FTN_GET_SUBMEMSPACE OMP_GET_SUBMEMSPACE #define FTN_GET_DEVICE_NUM OMP_GET_DEVICE_NUM -#define FTN_GET_UID_FROM_DEVICE OMP_GET_UID_FROM_DEVICE -#define FTN_GET_DEVICE_FROM_UID OMP_GET_DEVICE_FROM_UID #define FTN_SET_AFFINITY_FORMAT OMP_SET_AFFINITY_FORMAT #define FTN_GET_AFFINITY_FORMAT OMP_GET_AFFINITY_FORMAT #define FTN_DISPLAY_AFFINITY OMP_DISPLAY_AFFINITY @@ -591,8 +585,6 @@ #define FTN_ALLOC OMP_ALLOC_ #define FTN_FREE OMP_FREE_ #define FTN_GET_DEVICE_NUM OMP_GET_DEVICE_NUM_ -#define FTN_GET_UID_FROM_DEVICE OMP_GET_UID_FROM_DEVICE_ -#define FTN_GET_DEVICE_FROM_UID OMP_GET_DEVICE_FROM_UID_ #define FTN_SET_AFFINITY_FORMAT OMP_SET_AFFINITY_FORMAT_ #define FTN_GET_AFFINITY_FORMAT OMP_GET_AFFINITY_FORMAT_ #define FTN_DISPLAY_AFFINITY OMP_DISPLAY_AFFINITY_ diff --git a/openmp/runtime/test/api/omp_device_uid.c b/openmp/runtime/test/api/omp_device_uid.c deleted file mode 100644 index 40a1cbb644c7b..0000000000000 --- a/openmp/runtime/test/api/omp_device_uid.c +++ /dev/null @@ -1,77 +0,0 @@ -// RUN: %libomp-compile-and-run 2>&1 | FileCheck %s -// Linking fails for icc 18 -// UNSUPPORTED: icc-18 - -#include <omp_testsuite.h> -#include <string.h> - -int test_omp_device_uid(int device_num) { - const char *device_uid = omp_get_uid_from_device(device_num); - if (device_uid == NULL) { - printf("FAIL for device %d: omp_get_uid_from_device returned NULL\n", - device_num); - return 0; - } - - int device_num_from_uid = omp_get_device_from_uid(device_uid); - if (device_num_from_uid != device_num) { - printf( - "FAIL for device %d: omp_get_device_from_uid returned %d (UID: %s)\n", - device_num, device_num_from_uid, device_uid); - return 0; - } - - if (device_num == omp_get_initial_device()) - return 1; - - int success = 1; - -// Note that the following code may be executed on the host if the host is the -// device -#pragma omp target map(tofrom : success) device(device_num) - { - int device_num = omp_get_device_num(); - - // omp_get_uid_from_device() in the device runtime is a dummy function - // returning NULL - const char *device_uid = omp_get_uid_from_device(device_num); - - // omp_get_device_from_uid() in the device runtime is a dummy function - // returning omp_invalid_device. - int device_num_from_uid = omp_get_device_from_uid(device_uid); - - // Depending on whether we're executing on the device or the host, we either - // got NULL as the device UID or the correct device UID. Consequently, - // omp_get_device_from_uid() either returned omp_invalid_device or the - // correct device number (aka omp_get_initial_device()). - if (device_uid ? device_num_from_uid != device_num - : device_num_from_uid != omp_invalid_device) { - printf("FAIL for device %d (target): omp_get_device_from_uid returned %d " - "(UID: %s)\n", - device_num, device_num_from_uid, device_uid); - success = 0; - } - } - - return success; -} - -int main() { - int num_devices = omp_get_num_devices(); - int num_failed = 0; - // (also test initial device aka num_devices) - for (int i = 0; i < num_devices + 1; i++) { - if (!test_omp_device_uid(i)) { - printf("FAIL for device %d\n", i); - num_failed++; - } - } - if (num_failed) { - printf("FAIL\n"); - return 1; - } - printf("PASS\n"); - return 0; -} - -// CHECK: PASS _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
