diff --git a/src/a2a3/platform/include/aicpu/platform_regs.h b/src/a2a3/platform/include/aicpu/platform_regs.h index 392f0ecc3..4a4df9f4a 100644 --- a/src/a2a3/platform/include/aicpu/platform_regs.h +++ b/src/a2a3/platform/include/aicpu/platform_regs.h @@ -66,17 +66,6 @@ void set_platform_pmu_reg_addrs(uint64_t pmu_regs); */ uint64_t get_platform_pmu_reg_addrs(); -/** - * Set the ACL device ordinal. Latched once per device by simpler_aicpu_init - * (from InitArgs.device_id) into this resident-SO global; the executor reads it - * to make the staged orchestration SO filename unique per device so paired dies - * sharing the preinstall filesystem never collide. - */ -void set_orch_device_id(int device_id); - -/** Get the ACL device ordinal set for the current run (0 if unset). */ -int get_orch_device_id(); - #ifdef __cplusplus } #endif diff --git a/src/a2a3/platform/shared/aicpu/platform_regs.cpp b/src/a2a3/platform/shared/aicpu/platform_regs.cpp index b5fc50d1c..055300a14 100644 --- a/src/a2a3/platform/shared/aicpu/platform_regs.cpp +++ b/src/a2a3/platform/shared/aicpu/platform_regs.cpp @@ -37,7 +37,6 @@ static uint64_t g_platform_regs = 0; static uint64_t g_platform_pmu_reg_addrs = 0; -static int g_orch_device_id = 0; void set_platform_regs(uint64_t regs) { g_platform_regs = regs; } @@ -47,10 +46,6 @@ void set_platform_pmu_reg_addrs(uint64_t pmu_regs) { g_platform_pmu_reg_addrs = uint64_t get_platform_pmu_reg_addrs() { return g_platform_pmu_reg_addrs; } -void set_orch_device_id(int device_id) { g_orch_device_id = device_id; } - -int get_orch_device_id() { return g_orch_device_id; } - volatile uint32_t *get_reg_ptr(uint64_t reg_base_addr, RegId reg) { return reinterpret_cast(reg_base_addr + reg_offset(reg)); } diff --git a/src/a2a3/runtime/tensormap_and_ringbuffer/aicpu/aicpu_executor.cpp b/src/a2a3/runtime/tensormap_and_ringbuffer/aicpu/aicpu_executor.cpp index 19f6a7e7c..983d47830 100644 --- a/src/a2a3/runtime/tensormap_and_ringbuffer/aicpu/aicpu_executor.cpp +++ b/src/a2a3/runtime/tensormap_and_ringbuffer/aicpu/aicpu_executor.cpp @@ -45,6 +45,7 @@ #include "common/unified_log.h" // Register-based communication +#include "aicpu/aicpu_device_config.h" #include "aicpu/platform_aicpu_affinity.h" #include "aicpu/platform_regs.h" #include "common/platform_config.h" diff --git a/src/a5/platform/include/aicpu/platform_regs.h b/src/a5/platform/include/aicpu/platform_regs.h index caad59443..9e8e3a635 100644 --- a/src/a5/platform/include/aicpu/platform_regs.h +++ b/src/a5/platform/include/aicpu/platform_regs.h @@ -57,17 +57,6 @@ void set_platform_regs(uint64_t regs); */ uint64_t get_platform_regs(); -/** - * Set the ACL device ordinal. Latched once per device by simpler_aicpu_init - * (from InitArgs.device_id) into this resident-SO global; the executor reads it - * to make the staged orchestration SO filename unique per device so paired dies - * sharing the preinstall filesystem never collide. - */ -void set_orch_device_id(int device_id); - -/** Get the ACL device ordinal set for the current run (0 if unset). */ -int get_orch_device_id(); - #ifdef __cplusplus } #endif diff --git a/src/a5/platform/shared/aicpu/platform_regs.cpp b/src/a5/platform/shared/aicpu/platform_regs.cpp index 501942fd4..6a74d2a21 100644 --- a/src/a5/platform/shared/aicpu/platform_regs.cpp +++ b/src/a5/platform/shared/aicpu/platform_regs.cpp @@ -26,16 +26,11 @@ #include "spin_hint.h" static uint64_t g_platform_regs = 0; -static int g_orch_device_id = 0; void set_platform_regs(uint64_t regs) { g_platform_regs = regs; } uint64_t get_platform_regs() { return g_platform_regs; } -void set_orch_device_id(int device_id) { g_orch_device_id = device_id; } - -int get_orch_device_id() { return g_orch_device_id; } - void platform_init_aicore_regs(uint64_t reg_addr) { // Initialize task dispatch register to idle state write_reg(reg_addr, RegId::DATA_MAIN_BASE, AICPU_IDLE_TASK_ID); diff --git a/src/a5/runtime/tensormap_and_ringbuffer/aicpu/aicpu_executor.cpp b/src/a5/runtime/tensormap_and_ringbuffer/aicpu/aicpu_executor.cpp index 6b8f310da..b40d7fda3 100644 --- a/src/a5/runtime/tensormap_and_ringbuffer/aicpu/aicpu_executor.cpp +++ b/src/a5/runtime/tensormap_and_ringbuffer/aicpu/aicpu_executor.cpp @@ -46,6 +46,7 @@ #include "common/unified_log.h" // Register-based communication +#include "aicpu/aicpu_device_config.h" #include "aicpu/platform_regs.h" #include "common/platform_config.h" diff --git a/src/common/platform/include/aicpu/aicpu_device_config.h b/src/common/platform/include/aicpu/aicpu_device_config.h index 38ec22e30..9667c0446 100644 --- a/src/common/platform/include/aicpu/aicpu_device_config.h +++ b/src/common/platform/include/aicpu/aicpu_device_config.h @@ -28,6 +28,17 @@ extern "C" { #endif +/** + * Set the ACL device ordinal. Latched once per device by simpler_aicpu_init + * (from InitArgs.device_id) into this resident-SO global; the AICPU executor + * reads it to make the staged orchestration SO filename unique per device so + * paired dies sharing the preinstall filesystem never collide. + */ +void set_orch_device_id(int device_id); + +/** Get the ACL device ordinal set for the current run (0 if unset). */ +int get_orch_device_id(); + /** * Set the AICPU scheduler no-progress watchdog timeout (ms). Latched once per * device by simpler_aicpu_init (from InitArgs.scheduler_timeout_ms); read by diff --git a/src/common/platform/shared/aicpu/aicpu_device_config.cpp b/src/common/platform/shared/aicpu/aicpu_device_config.cpp index 4d6d38e91..eea91e456 100644 --- a/src/common/platform/shared/aicpu/aicpu_device_config.cpp +++ b/src/common/platform/shared/aicpu/aicpu_device_config.cpp @@ -11,11 +11,16 @@ #include "aicpu/aicpu_device_config.h" namespace { -// Latched once per device by simpler_aicpu_init; survives every per-task launch +// Latched once per device by simpler_aicpu_init; survive every per-task launch // because the AICPU inner SO stays dlopen'd for the runner's life. +int g_orch_device_id = 0; int g_scheduler_timeout_ms = 0; } // namespace +void set_orch_device_id(int device_id) { g_orch_device_id = device_id; } + +int get_orch_device_id() { return g_orch_device_id; } + void set_scheduler_timeout_ms(int timeout_ms) { g_scheduler_timeout_ms = timeout_ms; } int get_scheduler_timeout_ms() { return g_scheduler_timeout_ms; }