mirror of
https://github.com/gcc-mirror/gcc.git
synced 2026-05-06 14:59:39 +02:00
Avoid registering unsupported OMP offload devices
The following avoids registering unsupported GCN offload devices when iterating over available ones. With a Zen4 desktop CPU you will have an IGPU (unspported) which will otherwise be made available. This causes testcases like libgomp.c-c++-common/non-rect-loop-1.c which iterate over all decives to FAIL. libgomp/ * plugin/plugin-gcn.c (suitable_hsa_agent_p): Filter out agents with unsupported ISA.
This commit is contained in:
@@ -1427,6 +1427,8 @@ init_hsa_runtime_functions (void)
|
||||
#undef DLSYM_FN
|
||||
}
|
||||
|
||||
static gcn_isa isa_code (const char *isa);
|
||||
|
||||
/* Return true if the agent is a GPU and can accept of concurrent submissions
|
||||
from different threads. */
|
||||
|
||||
@@ -1443,6 +1445,18 @@ suitable_hsa_agent_p (hsa_agent_t agent)
|
||||
switch (device_type)
|
||||
{
|
||||
case HSA_DEVICE_TYPE_GPU:
|
||||
{
|
||||
char name[64];
|
||||
hsa_status_t status
|
||||
= hsa_fns.hsa_agent_get_info_fn (agent, HSA_AGENT_INFO_NAME, name);
|
||||
if (status != HSA_STATUS_SUCCESS
|
||||
|| isa_code (name) == EF_AMDGPU_MACH_UNSUPPORTED)
|
||||
{
|
||||
GCN_DEBUG ("Ignoring unsupported agent '%s'\n",
|
||||
status == HSA_STATUS_SUCCESS ? name : "invalid");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case HSA_DEVICE_TYPE_CPU:
|
||||
if (!support_cpu_devices)
|
||||
|
||||
Reference in New Issue
Block a user