wsl/hsakmt: check hsakmt_is_dgpu for hsakmt

To align with Native Linux, use NumCPUCores in GPU and
NumFComputeCores in CPU to determine if the asic is dGPU.

This value is only for libhsakmt internal use.

Reviewed-by: Flora Cui <flora.cui@amd.com>
Signed-off-by: Longlong Yao <Longlong.Yao@amd.com>
Part-of: <http://10.67.69.192/wsl/rocr-runtime/-/merge_requests/18>
This commit is contained in:
Longlong Yao
2024-12-12 00:00:29 -08:00
committed by Frank Min
parent 7734c0baad
commit 3c3af5c586
4 changed files with 7 additions and 6 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ int kfd_fd = -1;
unsigned long dxg_open_count;
unsigned long system_properties_count;
pthread_mutex_t hsakmt_mutex = PTHREAD_MUTEX_INITIALIZER;
bool is_dgpu;
bool hsakmt_is_dgpu;
#ifndef PAGE_SIZE
int PAGE_SIZE;
+1 -1
View File
@@ -40,7 +40,7 @@ wsl::thunk::WDDMDevice* get_wddmdev(uint32_t node_id);
extern unsigned long dxg_open_count;
extern bool hsakmt_forked;
extern pthread_mutex_t hsakmt_mutex;
extern bool is_dgpu;
extern bool hsakmt_is_dgpu;
extern bool is_svm_api_supported;
extern int zfb_support;
extern int vendor_packet_process;
+1 -1
View File
@@ -404,7 +404,7 @@ HSAKMT_STATUS HSAKMTAPI hsaKmtRegisterMemoryWithFlags(
if ((MemFlags.ui32.HostAccess != 1) || (MemFlags.ui32.NonPaged == 1))
return HSAKMT_STATUS_NOT_SUPPORTED;
if (!is_dgpu)
if (!hsakmt_is_dgpu)
/* TODO: support mixed APU and dGPU configurations */
return HSAKMT_STATUS_NOT_SUPPORTED;
+4 -3
View File
@@ -390,8 +390,9 @@ err:
void topology_setup_is_dgpu_param(HsaNodeProperties *props) {
/* if we found a dGPU node, then treat the whole system as dGPU */
/* noted that some APUs are also treated as dGPU in runtime */
if (!props->NumCPUCores && props->NumFComputeCores)
is_dgpu = true;
hsakmt_is_dgpu = true;
}
static HSAKMT_STATUS topology_get_cpu_model_name(HsaNodeProperties& props,
@@ -1010,6 +1011,8 @@ HSAKMT_STATUS topology_take_snapshot(void) {
goto err;
}
topology_setup_is_dgpu_param(&temp_props[i].node);
if (temp_props[i].node.NumCPUCores)
topology_get_cpu_model_name(temp_props[i].node, cpuinfo);
@@ -1176,8 +1179,6 @@ hsaKmtAcquireSystemProperties(HsaSystemProperties *SystemProperties) {
assert(g_system);
// err = fmm_init_process_apertures(g_system->NumNodes);
// TODO: Determine if it is a dGPU
is_dgpu = true;
if (err != HSAKMT_STATUS_SUCCESS)
goto init_process_apertures_failed;