-
Notifications
You must be signed in to change notification settings - Fork 366
[ESI] Telemetry v0 #8481
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ESI] Telemetry v0 #8481
Conversation
There was a problem hiding this 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. |
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.
1257c33
to
4dbad35
Compare
There was a problem hiding this 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 |
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.
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.