@headitem Property @tab C data type @tab API routine @tab value (if constant)
@item @code{fr_id} @tab @code{omp_interop_fr_t} @tab int @tab @code{omp_fr_hip}
@item @code{fr_name} @tab @code{const char *} @tab str @tab @code{"hip"}
-@item @code{vendor} @tab @code{int} @tab int @tab @code{1}
-@item @code{vendor_name} @tab @code{const char *} @tab str @tab @code{"amd"}
+@item @code{vendor} @tab @code{int} @tab int @tab @code{5}
+@item @code{vendor_name} @tab @code{const char *} @tab str @tab @code{"gnu"}
@item @code{device_num} @tab @code{int} @tab int @tab
@item @code{platform} @tab N/A @tab @tab
@item @code{device} @tab @code{hipDevice_t} @tab int @tab
@headitem Property @tab C data type @tab API routine @tab value (if constant)
@item @code{fr_id} @tab @code{omp_interop_fr_t} @tab int @tab @code{omp_fr_hsa}
@item @code{fr_name} @tab @code{const char *} @tab str @tab @code{"hsa"}
-@item @code{vendor} @tab @code{int} @tab int @tab @code{1}
-@item @code{vendor_name} @tab @code{const char *} @tab str @tab @code{"amd"}
+@item @code{vendor} @tab @code{int} @tab int @tab @code{5}
+@item @code{vendor_name} @tab @code{const char *} @tab str @tab @code{"gnu"}
@item @code{device_num} @tab @code{int} @tab int @tab
@item @code{platform} @tab N/A @tab @tab
@item @code{device} @tab @code{hsa_agent *} @tab ptr @tab
@headitem Property @tab C data type @tab API routine @tab value (if constant)
@item @code{fr_id} @tab @code{omp_interop_fr_t} @tab int @tab @code{omp_fr_cuda}
@item @code{fr_name} @tab @code{const char *} @tab str @tab @code{"cuda"}
-@item @code{vendor} @tab @code{int} @tab int @tab @code{11}
-@item @code{vendor_name} @tab @code{const char *} @tab str @tab @code{"nvidia"}
+@item @code{vendor} @tab @code{int} @tab int @tab @code{5}
+@item @code{vendor_name} @tab @code{const char *} @tab str @tab @code{"gnu"}
@item @code{device_num} @tab @code{int} @tab int @tab
@item @code{platform} @tab N/A @tab @tab
@item @code{device} @tab @code{int} @tab int @tab
@headitem Property @tab C data type @tab API routine @tab value (if constant)
@item @code{fr_id} @tab @code{omp_interop_fr_t} @tab int @tab @code{omp_fr_cuda_driver}
@item @code{fr_name} @tab @code{const char *} @tab str @tab @code{"cuda_driver"}
-@item @code{vendor} @tab @code{int} @tab int @tab @code{11}
-@item @code{vendor_name} @tab @code{const char *} @tab str @tab @code{"nvidia"}
+@item @code{vendor} @tab @code{int} @tab int @tab @code{5}
+@item @code{vendor_name} @tab @code{const char *} @tab str @tab @code{"gnu"}
@item @code{device_num} @tab @code{int} @tab int @tab
@item @code{platform} @tab N/A @tab @tab
@item @code{device} @tab @code{CUdevice} @tab int @tab
@headitem Property @tab C data type @tab API routine @tab value (if constant)
@item @code{fr_id} @tab @code{omp_interop_fr_t} @tab int @tab @code{omp_fr_hip}
@item @code{fr_name} @tab @code{const char *} @tab str @tab @code{"hip"}
-@item @code{vendor} @tab @code{int} @tab int @tab @code{11}
-@item @code{vendor_name} @tab @code{const char *} @tab str @tab @code{"nvidia"}
+@item @code{vendor} @tab @code{int} @tab int @tab @code{5}
+@item @code{vendor_name} @tab @code{const char *} @tab str @tab @code{"gnu"}
@item @code{device_num} @tab @code{int} @tab int @tab
@item @code{platform} @tab N/A @tab @tab
@item @code{device} @tab @code{hipDevice_t} @tab int @tab
case omp_ipr_vendor:
if (ret_code)
*ret_code = omp_irc_success;
- return 1; /* amd */
+ return 5; /* gnu */
case omp_ipr_vendor_name:
if (ret_code)
*ret_code = omp_irc_type_str;
case omp_ipr_vendor_name:
if (ret_code)
*ret_code = omp_irc_success;
- return "amd";
+ return "gnu";
case omp_ipr_device_num:
if (ret_code)
*ret_code = omp_irc_type_int;
case omp_ipr_vendor:
if (ret_code)
*ret_code = omp_irc_success;
- return 11; /* nvidia */
+ return 5; /* gnu */
case omp_ipr_vendor_name:
if (ret_code)
*ret_code = omp_irc_type_str;
case omp_ipr_vendor_name:
if (ret_code)
*ret_code = omp_irc_success;
- return "nvidia";
+ return "gnu";
case omp_ipr_device_num:
if (ret_code)
*ret_code = omp_irc_type_int;
ret_code = omp_irc_no_value;
int vendor = (int) omp_get_interop_int (obj, omp_ipr_vendor, &ret_code);
assert (ret_code == omp_irc_success);
- assert (vendor == 11); /* Nvidia */
+ assert (vendor == 5); /* gnu (= compiler vendor) */
ret_code = omp_irc_no_value;
const char *vendor_name = omp_get_interop_str (obj, omp_ipr_vendor_name, &ret_code);
assert (ret_code == omp_irc_success);
- assert (strcmp (vendor_name, "nvidia") == 0);
+ assert (strcmp (vendor_name, "gnu") == 0);
ret_code = omp_irc_no_value;
int dev_num = (int) omp_get_interop_int (obj, omp_ipr_device_num, &ret_code);
ret_code = omp_irc_no_value;
int vendor = (int) omp_get_interop_int (obj, omp_ipr_vendor, &ret_code);
assert (ret_code == omp_irc_success);
- assert (vendor == 1); /* Amd */
+ assert (vendor == 5); /* gnu (= compiler vendor) */
ret_code = omp_irc_no_value;
const char *vendor_name = omp_get_interop_str (obj, omp_ipr_vendor_name, &ret_code);
assert (ret_code == omp_irc_success);
- assert (strcmp (vendor_name, "amd") == 0);
+ assert (strcmp (vendor_name, "gnu") == 0);
ret_code = omp_irc_no_value;
int dev_num = (int) omp_get_interop_int (obj, omp_ipr_device_num, &ret_code);
ivar = (int) omp_get_interop_int (obj_cuda, omp_ipr_vendor, &res);
assert (res == omp_irc_success);
- assert (ivar == 11);
+ assert (ivar == 5); /* gnu (= compiler vendor) */
ivar = (int) omp_get_interop_int (obj_cuda_driver, omp_ipr_vendor, &res);
assert (res == omp_irc_success);
- assert (ivar == 11);
+ assert (ivar == 5); /* gnu (= compiler vendor) */
/* Check whether the omp_ipr_device -> cudaDevice_t yields a valid device. */
ret_code = omp_irc_no_value;
int vendor = (int) omp_get_interop_int (obj, omp_ipr_vendor, &ret_code);
assert (ret_code == omp_irc_success);
- assert (vendor == 11); /* Nvidia */
+ assert (vendor == 5); /* gnu (= compiler vendor) */
ret_code = omp_irc_no_value;
const char *vendor_name = omp_get_interop_str (obj, omp_ipr_vendor_name, &ret_code);
assert (ret_code == omp_irc_success);
- assert (strcmp (vendor_name, "nvidia") == 0);
+ assert (strcmp (vendor_name, "gnu") == 0);
ret_code = omp_irc_no_value;
int dev_num = (int) omp_get_interop_int (obj, omp_ipr_device_num, &ret_code);
ret_code = omp_irc_no_value;
int vendor = (int) omp_get_interop_int (obj, omp_ipr_vendor, &ret_code);
assert (ret_code == omp_irc_success);
- assert (vendor == 1); /* Amd */
+ assert (vendor == 5); /* gnu (= compiler vendor) */
ret_code = omp_irc_no_value;
const char *vendor_name = omp_get_interop_str (obj, omp_ipr_vendor_name, &ret_code);
assert (ret_code == omp_irc_success);
- assert (strcmp (vendor_name, "amd") == 0);
+ assert (strcmp (vendor_name, "gnu") == 0);
ret_code = omp_irc_no_value;
int dev_num = (int) omp_get_interop_int (obj, omp_ipr_device_num, &ret_code);
ivar = (int) omp_get_interop_int (obj, omp_ipr_vendor, &res);
assert (res == omp_irc_success);
- int vendor_is_amd = ivar == 1;
+ assert (ivar == 5); /* gnu (= compiler vendor) */
#if defined(__HIP_PLATFORM_AMD__)
- assert (ivar == 1);
+ bool device_vendor_is_amd = true;
#elif defined(__HIP_PLATFORM_NVIDIA__)
- assert (ivar == 11);
+ bool device_vendor_is_amd = false;
#else
- assert (0);
+ #error "Missing valid __HIP_PLATFORM_..."
#endif
-
/* Check whether the omp_ipr_device -> hipDevice_t yields a valid device. */
hipDevice_t hip_dev = (int) omp_get_interop_int (obj, omp_ipr_device, &res);
hip_err = hipCtxGetApiVersion (hip_ctx, &ivar);
#pragma GCC diagnostic pop
- if (vendor_is_amd)
+ if (device_vendor_is_amd)
assert (hip_err == hipErrorNotSupported && ivar == -99);
else
{
if (fr /= omp_ifr_hip) error stop 1
ivar = omp_get_interop_int (obj, omp_ipr_vendor, res)
- if (ivar == 1) then ! AMD
- vendor_is_amd = .true.
- else if (ivar == 11) then ! Nvidia
- vendor_is_amd = .false.
- else
- error stop 1 ! Unknown
- endif
+ if (res /= omp_irc_success) error stop 1
+ if (ivar /= 5) error stop 1 ! gnu (= compiler vendor)
#if USE_CUDA_NAMES
- if (vendor_is_amd) error stop 1
+ vendor_is_amd = .false.
#else
- if (.not. vendor_is_amd) error stop 1
+ vendor_is_amd = .true.
#endif
! Check whether the omp_ipr_device -> hipDevice_t yields a valid device.