[v1,00/34] Implemenation of revised ml/cnxk driver

Message ID 20230830155927.3566-1-syalavarthi@marvell.com (mailing list archive)
Headers
Series Implemenation of revised ml/cnxk driver |

Message

Srikanth Yalavarthi Aug. 30, 2023, 3:58 p.m. UTC
  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.

Anup Prabhu (1):
  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 (31):
  ml/cnxk: drop support for register polling
  ml/cnxk: drop use of RTE API for firmware read
  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       |   16 -
 drivers/ml/cnxk/cn10k_ml_dev.c   |  477 ++---
 drivers/ml/cnxk/cn10k_ml_dev.h   |  457 +----
 drivers/ml/cnxk/cn10k_ml_model.c |  383 ++--
 drivers/ml/cnxk/cn10k_ml_model.h |  148 +-
 drivers/ml/cnxk/cn10k_ml_ocm.c   |  106 +-
 drivers/ml/cnxk/cn10k_ml_ocm.h   |   15 +-
 drivers/ml/cnxk/cn10k_ml_ops.c   | 2915 ++++++++++--------------------
 drivers/ml/cnxk/cn10k_ml_ops.h   |  351 +++-
 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  |  143 ++
 drivers/ml/cnxk/cnxk_ml_model.h  |  187 ++
 drivers/ml/cnxk/cnxk_ml_ops.c    | 1771 ++++++++++++++++++
 drivers/ml/cnxk/cnxk_ml_ops.h    |   85 +
 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      |   70 +
 drivers/ml/cnxk/mvtvm_ml_dev.c   |  198 ++
 drivers/ml/cnxk/mvtvm_ml_dev.h   |   40 +
 drivers/ml/cnxk/mvtvm_ml_model.c |  322 ++++
 drivers/ml/cnxk/mvtvm_ml_model.h |   88 +
 drivers/ml/cnxk/mvtvm_ml_ops.c   |  583 ++++++
 drivers/ml/cnxk/mvtvm_ml_ops.h   |   72 +
 27 files changed, 5945 insertions(+), 2991 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