Skip to content

Commit

Permalink
docs: integration of AiCSD arch (#26)
Browse files Browse the repository at this point in the history
* docs: add design for AiCSD integration

Signed-off-by: Elizabeth J Lee <elizabeth.j.lee@intel.com>
  • Loading branch information
ejlee3 authored May 30, 2024
1 parent de3f297 commit 7cf891b
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 5 deletions.
81 changes: 81 additions & 0 deletions docs_src/Architecture/v3.0.0/aicsd-integration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Integration of AI Connect for Scientific Devices (AiCSD)

<!--ts-->

- [Decision](##decision)
- [Context](##context)
- [Proposed Design](##proposed-design)
- [References](##references)

<!--te-->

## Decision

<!-- Requirements approval board will update this section with justification for approval or rejection -->

## Context

<!-- Please provide context to the requirement. -->

This feature would:

- provide the ability to integrate pipelines using Intel Geti, BentoML or OpenVino
- provide the ability to run the entire AiCSD framework including sending images from another machine
- extend the capability of AiCSD to process still images to include video streams
- integrate EdgeX

## Proposed Design

<!-- Please provide a high level design of the proposed requirement. -->

### Crawl: Integration of the Pipeline

In the initial phases, the solution can be pulled in as just the pieces surrounding the pipeline validation. In order to do this, the [Pipeline Validator](https://intel.github.io/AiCSD/services/as-pipeline-val.html) service can be pulled in. This service
provides the appropriate endpoints and components necessary to call any pipeline built for this system. In the simplest case, the Pipeline Validator service could be used with the
Pipeline Simulator service without the need to add additional models. The Pipeline
Simulator will be modified to use go gRPC to call an OVMS inferencing pipeline.
In order to send information to the services, it would be necessary to add a script
that calls the endpoint to launch the pipeline. When integrating with the benchmarking
script, the AiCSD services will be started using the necessary docker compose files.
This will ensure that all the services are started under the same Docker network.

[![AiCSD Integration - Crawl](./images/aicsd-initial-integration.jpg)](./images/aicsd-initial-integration.jpg)

Necessary Components:

- Pipeline Validator Service
- EdgeX Services
- Pipeline from the options below:
- Pipeline Simulator (standalone)
- Intel Geti
- OVMS
- BentoML
- Script to call launch pipeline for each image in a directory
(or a script that sends the same image for a fixed period of time)
- Integrate the ability to launch the appropriate target from the profile launcher

### Walk: Integrate the file dropping capability

Integrate the entire AiCSD solution to add the ability to use two machines - one for generating
image and the other for performing the processing. In integration of this feature,
it would also be possible to run AiCSD all on one system. The integration will allow
for benchmarking to run alongside this solution.

Necessary components:

- Desired pipeline
- AiCSD Gateway Services
- Integration of launching services with the profile launcher

### Run: Add Video Streaming Capability

This feature would allow for the use of video streaming with models supported by
Intel Geti or BentoML. In this solution, it could be necessary to update the AiCSD
solution in order to support the use of video streams.

## References

<!-- [link](requirements-review-process.md) - useful links for the design -->

- [AiCSD Architecture Overview](https://intel.github.io/AiCSD/services/general-info.html)
- [AiCSD Pipeline Creation](https://intel.github.io/AiCSD/pipelines/pipeline-creation.html)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 7 additions & 5 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,13 @@ nav:
- Architecture Decisions:
- Pipelines: 'Architecture/pipelines.md'
- v2.0.0:
- Distributed Architecture: 'Architecture/distributed-architecture.md'
- Multiple OVMS JSON Config: 'Architecture/multiple-ovms-json-config.md'
- Performance Benchmarking: 'Architecture/performance_benchmarking.md'
- Profile Launcher: 'Architecture/profile-launcher.md'
- Target Device: 'Architecture/target-device.md'
- Distributed Architecture: 'Architecture/v2.0.0/distributed-architecture.md'
- Multiple OVMS JSON Config: 'Architecture/v2.0.0/multiple-ovms-json-config.md'
- Performance Benchmarking: 'Architecture/v2.0.0/performance_benchmarking.md'
- Profile Launcher: 'Architecture/v2.0.0/profile-launcher.md'
- Target Device: 'Architecture/v2.0.0/target-device.md'
- v3.0.0:
- AiCSD Integration: 'Architecture/v3.0.0/aicsd-integration.md'
- Performance Tools:
- Benchmarking: 'performance-tools/benchmark.md'
- Benchmarking APIs: 'performance-tools/api-docs.md'
Expand Down

0 comments on commit 7cf891b

Please sign in to comment.