Skip to content

Conversation

teqdruid
Copy link
Contributor

Basic telemetry service. API subject to change. Basic implementation is terrible as it creates a pair of DMA engines per telemetry client. Improvement is future work.

@teqdruid teqdruid added the ESI label May 13, 2025
@teqdruid teqdruid requested a review from Copilot May 13, 2025 22:48
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces a new Telemetry service for the ESI design, allowing both runtime telemetry data collection and query tools support. Key changes include:

  • Adding dynamic casting support for TelemetryService in esiCppAccel.cpp.
  • Integrating telemetry reporting and querying in both C++ tests (esitester.cpp, esiquery.cpp) and the TelemetryService implementation.
  • Extending the ESI service definitions and PyCDE integration to support telemetry data reporting.

Reviewed Changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
lib/Dialect/ESI/runtime/python/esiaccel/esiCppAccel.cpp Adds dynamic cast for TelemetryService in the polymorphic type hook.
lib/Dialect/ESI/runtime/cpp/tools/esitester.cpp Integrates telemetry reporting during hostmem testing.
lib/Dialect/ESI/runtime/cpp/tools/esiquery.cpp Adds telemetry sub-command to display telemetry information.
lib/Dialect/ESI/runtime/cpp/lib/Services.cpp Introduces TelemetryService and implements its Telemetry port including connect and read.
lib/Dialect/ESI/runtime/cpp/include/esi/Services.h Declares the TelemetryService interface and telemetry port.
lib/Dialect/ESI/ESIStdServices.cpp Adds Telemetry service port list details to the ESI standard services.
include/circt/Dialect/ESI/ESIStdServices.td Adds TelemetryService declaration to the dialect definitions.
frontends/PyCDE/src/pycde/esi.py Implements Telemetry service integration and a report_signal method.
frontends/PyCDE/integration_test/esitester.py Updates integration tests to validate telemetry reporting.

John Demme added 2 commits May 13, 2025 23:24
Basic telemetry service. API subject to change. The default
implementation is terrible as it creates a pair of DMA engines per
telemetry client.  Improvement is future work.
@teqdruid teqdruid force-pushed the teqdruid/telemetry branch from 1257c33 to 4dbad35 Compare May 13, 2025 23:26
@teqdruid teqdruid requested a review from Copilot May 13, 2025 23:27
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces a basic telemetry service for the ESI system and extends several components including MLIR definitions, runtime C++ implementations, Python bindings, and integration tests.

  • Added a new telemetry service declaration and module in MLIR
  • Extended runtime code to support telemetry service operations with DMA channels
  • Updated frontends and integration tests to report and query telemetry data

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
test/Dialect/ESI/services.mlir Added telemetry service declaration and a test module
lib/Dialect/ESI/runtime/python/esiaccel/esiCppAccel.cpp Extended dynamic casting support to include TelemetryService
lib/Dialect/ESI/runtime/cpp/tools/esitester.cpp Integrated telemetry read and connection for DMA test verification
lib/Dialect/ESI/runtime/cpp/tools/esiquery.cpp Introduced telemetry subcommand for querying telemetry data
lib/Dialect/ESI/runtime/cpp/lib/Services.cpp Implemented TelemetryService and its Telemetry port logic
lib/Dialect/ESI/runtime/cpp/include/esi/Services.h Defined telemetry service and port interfaces
lib/Dialect/ESI/ESIStdServices.cpp Declared port for telemetry service
include/circt/Dialect/ESI/ESIStdServices.td Added TelemetryServiceDeclOp definition
frontends/PyCDE/src/pycde/esi.py Integrated telemetry service support into PyCDE
frontends/PyCDE/integration_test/esitester.py Updated tests to check telemetry output

@teqdruid teqdruid merged commit d0ed0c0 into main May 13, 2025
5 checks passed
@teqdruid teqdruid deleted the teqdruid/telemetry branch May 13, 2025 23:34
TaoBi22 pushed a commit to TaoBi22/circt that referenced this pull request Jul 17, 2025
Basic telemetry service. API subject to change. The default
implementation is terrible as it creates a pair of DMA engines per
telemetry client.  Improvement is future work.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant