Skip to content

Comments

feat(platform/a2a3): Add register-based task dispatch for host_build_…#85

Draft
ChaoZheng109 wants to merge 1 commit intoChaoWao:mainfrom
ChaoZheng109:platform-reg
Draft

feat(platform/a2a3): Add register-based task dispatch for host_build_…#85
ChaoZheng109 wants to merge 1 commit intoChaoWao:mainfrom
ChaoZheng109:platform-reg

Conversation

@ChaoZheng109
Copy link
Contributor

…graph runtime

Implement register-based communication between AICPU and AICore for a2a3 platform with host_build_graph runtime, using hardware SPR access for task dispatch and status polling.

Architecture:

  • Platform layer (a2a3): Register access primitives and address retrieval
  • Runtime layer (host_build_graph): Task dispatch and status polling logic

Platform changes (a2a3):

  • Add AICore register read/write APIs (aicpu_regs.h/cpp, host_regs.h/cpp)
  • Implement register address retrieval via CANN HAL (get_aicore_regs)
  • Add register configuration constants in platform_config.h
  • Support physical_core_id tracking for register mapping

Runtime changes (host_build_graph):

  • Replace memory-based handshake with register-based dispatch
  • Use DATA_MAIN_BASE register for task_id dispatch (encoding: task_id+1)
  • Use COND register for status polling (IDLE=0, BUSY=1)
  • Add Runtime.regs field for register address array
  • Track executing_task_ids[] in AICPU executor

@ChaoWao ChaoWao marked this pull request as draft February 13, 2026 07:39
…graph runtime

Implement register-based communication between AICPU and AICore for
a2a3 platform with host_build_graph runtime, using hardware SPR access
for task dispatch and status polling.

Architecture:
- Platform layer (a2a3): Register access primitives and address retrieval
- Runtime layer (host_build_graph): Task dispatch and status polling logic

Platform changes (a2a3):
- Add AICore register read/write APIs (aicpu_regs.h/cpp, host_regs.h/cpp)
- Implement register address retrieval via CANN HAL (get_aicore_regs)
- Add register configuration constants in platform_config.h
- Support physical_core_id tracking for register mapping

Runtime changes (host_build_graph):
- Replace memory-based handshake with register-based dispatch
- Use DATA_MAIN_BASE register for task_id dispatch (encoding: task_id+1)
- Use COND register for status polling (IDLE=0, BUSY=1)
- Add Runtime.regs field for register address array
- Track executing_task_ids[] in AICPU executor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant