[PATCH v6 00/34] Implementation of revised ml/cnxk driver
Srikanth Yalavarthi
syalavarthi at marvell.com
Wed Oct 18 15:53:45 CEST 2023
This patch series is an implementation of revised ml/cnxk driver
to support models compiled with TVM compiler framework. TVM models
use a hybrid mode for execution, with regions of the model executing
on the ML accelerator and the rest executing on CPU cores.
This series of commits reorganizes the ml/cnxk driver and adds support
to execute multiple regions with-in a TVM model.
v6:
- Added depends info for series. This series depends on patch-132887
- Fix merge conflicts with dpdk-23.11-rc1
- Fix issues with ml/cnxk driver release notes
- Added build dependency information for dlpack headers
v5:
- Fix build failures for individual patches in the series
- Finished build testing with devtools/test-meson-builds.sh script
v4:
- Squashed release notes
- Updated external build dependency info in documentation
v3:
- Reduced use of RTE_MLDEV_CNXK_ENABLE_MVTVM macro
- Added stubs file with dummy functions to use when TVM is disabled
- Dropped patch with internal function to read firmware
- Updated ML CNXK PMD documentation
- Added external library dependency info in documentation
- Added release notes for 23.11
v2:
- Fix xstats reporting
- Fix issues reported by klocwork static analysis tool
- Update external header inclusions
v1:
- Initial changes
Anup Prabhu (2):
ml/cnxk: enable OCM check for multilayer TVM model
ml/cnxk: enable fast-path ops for TVM models
Prince Takkar (2):
ml/cnxk: update internal TVM model info structure
ml/cnxk: support quantize and dequantize callback
Srikanth Yalavarthi (30):
ml/cnxk: drop support for register polling
ml/cnxk: add generic cnxk device structure
ml/cnxk: add generic model and layer structures
ml/cnxk: add generic cnxk request structure
ml/cnxk: add generic cnxk xstats structures
ml/cnxk: rename cnxk ops function pointers struct
ml/cnxk: update device handling functions
ml/cnxk: update queue-pair handling functions
ml/cnxk: update model load and unload functions
ml/cnxk: update model start and stop functions
ml/cnxk: update model utility functions
ml/cnxk: update data quantization functions
ml/cnxk: update device debug functions
ml/cnxk: update device stats functions
ml/cnxk: update device and model xstats functions
ml/cnxk: update fast path functions
ml/cnxk: move error handling to cnxk layer
ml/cnxk: support config and close of tvmdp library
ml/cnxk: add structures to support TVM model type
ml/cnxk: add support for identify model type
ml/cnxk: add support to parse TVM model objects
ml/cnxk: fetch layer info and load TVM model
ml/cnxk: update internal info for TVM model
ml/cnxk: enable model unload in tvmdp library
ml/cnxk: support start and stop for TVM models
ml/cnxk: support device dump for TVM models
ml/cnxk: enable reporting model runtime as xstats
ml/cnxk: implement I/O alloc and free callbacks
ml/cnxk: add generic ML malloc and free callback
ml/cnxk: enable creation of mvtvm virtual device
doc/guides/mldevs/cnxk.rst | 131 +-
doc/guides/rel_notes/release_23_11.rst | 3 +
drivers/ml/cnxk/cn10k_ml_dev.c | 416 ++--
drivers/ml/cnxk/cn10k_ml_dev.h | 457 +---
drivers/ml/cnxk/cn10k_ml_model.c | 401 ++--
drivers/ml/cnxk/cn10k_ml_model.h | 151 +-
drivers/ml/cnxk/cn10k_ml_ocm.c | 111 +-
drivers/ml/cnxk/cn10k_ml_ocm.h | 15 +-
drivers/ml/cnxk/cn10k_ml_ops.c | 2828 ++++++++----------------
drivers/ml/cnxk/cn10k_ml_ops.h | 358 ++-
drivers/ml/cnxk/cnxk_ml_dev.c | 22 +
drivers/ml/cnxk/cnxk_ml_dev.h | 120 +
drivers/ml/cnxk/cnxk_ml_io.c | 95 +
drivers/ml/cnxk/cnxk_ml_io.h | 88 +
drivers/ml/cnxk/cnxk_ml_model.c | 94 +
drivers/ml/cnxk/cnxk_ml_model.h | 192 ++
drivers/ml/cnxk/cnxk_ml_ops.c | 1690 ++++++++++++++
drivers/ml/cnxk/cnxk_ml_ops.h | 87 +
drivers/ml/cnxk/cnxk_ml_utils.c | 15 +
drivers/ml/cnxk/cnxk_ml_utils.h | 17 +
drivers/ml/cnxk/cnxk_ml_xstats.h | 152 ++
drivers/ml/cnxk/meson.build | 73 +
drivers/ml/cnxk/mvtvm_ml_dev.c | 196 ++
drivers/ml/cnxk/mvtvm_ml_dev.h | 40 +
drivers/ml/cnxk/mvtvm_ml_model.c | 392 ++++
drivers/ml/cnxk/mvtvm_ml_model.h | 90 +
drivers/ml/cnxk/mvtvm_ml_ops.c | 652 ++++++
drivers/ml/cnxk/mvtvm_ml_ops.h | 82 +
drivers/ml/cnxk/mvtvm_ml_stubs.c | 141 ++
drivers/ml/cnxk/mvtvm_ml_stubs.h | 36 +
30 files changed, 6186 insertions(+), 2959 deletions(-)
create mode 100644 drivers/ml/cnxk/cnxk_ml_dev.c
create mode 100644 drivers/ml/cnxk/cnxk_ml_dev.h
create mode 100644 drivers/ml/cnxk/cnxk_ml_io.c
create mode 100644 drivers/ml/cnxk/cnxk_ml_io.h
create mode 100644 drivers/ml/cnxk/cnxk_ml_model.c
create mode 100644 drivers/ml/cnxk/cnxk_ml_model.h
create mode 100644 drivers/ml/cnxk/cnxk_ml_ops.c
create mode 100644 drivers/ml/cnxk/cnxk_ml_ops.h
create mode 100644 drivers/ml/cnxk/cnxk_ml_utils.c
create mode 100644 drivers/ml/cnxk/cnxk_ml_utils.h
create mode 100644 drivers/ml/cnxk/cnxk_ml_xstats.h
create mode 100644 drivers/ml/cnxk/mvtvm_ml_dev.c
create mode 100644 drivers/ml/cnxk/mvtvm_ml_dev.h
create mode 100644 drivers/ml/cnxk/mvtvm_ml_model.c
create mode 100644 drivers/ml/cnxk/mvtvm_ml_model.h
create mode 100644 drivers/ml/cnxk/mvtvm_ml_ops.c
create mode 100644 drivers/ml/cnxk/mvtvm_ml_ops.h
create mode 100644 drivers/ml/cnxk/mvtvm_ml_stubs.c
create mode 100644 drivers/ml/cnxk/mvtvm_ml_stubs.h
--
2.42.0
More information about the dev
mailing list