> -----Original Message----- > From: Srikanth Yalavarthi <syalavar...@marvell.com> > Sent: Tuesday, February 7, 2023 9:37 PM > Cc: dev@dpdk.org; Shivah Shankar Shankar Narayan Rao > <sshankarn...@marvell.com>; Jerin Jacob Kollanukkaran > <jer...@marvell.com>; Anup Prabhu <apra...@marvell.com>; Prince Takkar > <ptak...@marvell.com>; Parijat Shukla <pshu...@marvell.com>; Srikanth > Yalavarthi <syalavar...@marvell.com> > Subject: [PATCH v5 00/39] Implementation of ML CNXK driver > > Marvell ML CNXK Driver > ---------------------- > > This patch series implements common Machine Learning (ML) ROC code and > driver for Marvell Octeon 10 (cnxk) platform. ML inferencing is supported on > cnxk platform through an integrated ML inferencing processor. The current > driver supports programming the ML hardware engine through offload > mode. > > All APIs proposed in the DPDK ML device specification are supported on the > cnxk platform. > > v5: > * Updated model_id to uint16_t > * Updated release notes for 23.03 > > v4: > * Update function names of ML common code > * Added support for configurable OCM page size > * Minor typo fixes > > v3: > * Skip installation of internal headers > * Update internal comments and code cleanup > > v2: > * Typo and formatting fixes > > Srikanth Yalavarthi (39): > common/cnxk: add ML headers and ROC code for cnxk > ml/cnxk: add skeleton for ML cnxk driver > ml/cnxk: enable probe and remove of ML device > ml/cnxk: add driver support to get device info > ml/cnxk: add support for configure and close > ml/cnxk: parse ML firmware path from device args > ml/cnxk: enable firmware load and device reset > ml/cnxk: enable support for simulator environment > ml/cnxk: enable support for device start and stop > ml/cnxk: add support to create device queue-pairs > ml/cnxk: add functions to load and unload models > ml/cnxk: enable validity checks for model metadata > ml/cnxk: add internal structures for derived info > ml/cnxk: add internal structures for tiles and OCM > ml/cnxk: add structures for slow and fast path JDs > ml/cnxk: find OCM mask and page slots for a model > ml/cnxk: add support to reserve and free OCM pages > ml/cnxk: enable support to start an ML model > ml/cnxk: enable support to stop an ML models > ml/cnxk: enable support to get model information > ml/cnxk: enable support to update model params > ml/cnxk: add support to get IO buffer sizes > ml/cnxk: enable quantization and dequantization > ml/cnxk: enable support to dump device debug info > ml/cnxk: add driver support for device selftest > ml/cnxk: enqueue a burst of inference requests > ml/cnxk: dequeue a burst of inference requests > ml/cnxk: add internal function for sync mode run > ml/cnxk: enable support for firmware error codes > ml/cnxk: add support to get and reset device stats > ml/cnxk: add support to handle extended dev stats > ml/cnxk: enable support to get xstats in cycles > ml/cnxk: add support to report DPE FW warnings > ml/cnxk: add support to enable model data caching > ml/cnxk: add support to select OCM allocation mode > ml/cnxk: add support to use lock during jcmd enq > ml/cnxk: add support to select poll memory region > ml/cnxk: add user guide for marvell cnxk ml driver > ml/cnxk: enable support for configurable ocm page > > MAINTAINERS | 11 + > doc/guides/index.rst | 1 + > doc/guides/mldevs/cnxk.rst | 254 +++ > doc/guides/mldevs/index.rst | 14 + > doc/guides/rel_notes/release_23_03.rst | 7 + > drivers/common/cnxk/hw/ml.h | 170 ++ > drivers/common/cnxk/meson.build | 1 + > drivers/common/cnxk/roc_api.h | 4 + > drivers/common/cnxk/roc_constants.h | 2 + > drivers/common/cnxk/roc_dev_priv.h | 1 + > drivers/common/cnxk/roc_ml.c | 626 +++++++ > drivers/common/cnxk/roc_ml.h | 152 ++ > drivers/common/cnxk/roc_ml_priv.h | 24 + > drivers/common/cnxk/roc_platform.c | 1 + > drivers/common/cnxk/roc_platform.h | 2 + > drivers/common/cnxk/roc_priv.h | 3 + > drivers/common/cnxk/version.map | 29 + > drivers/meson.build | 1 + > drivers/ml/cnxk/cn10k_ml_dev.c | 870 +++++++++ > drivers/ml/cnxk/cn10k_ml_dev.h | 429 +++++ > drivers/ml/cnxk/cn10k_ml_model.c | 413 +++++ > drivers/ml/cnxk/cn10k_ml_model.h | 508 ++++++ > drivers/ml/cnxk/cn10k_ml_ocm.c | 519 ++++++ > drivers/ml/cnxk/cn10k_ml_ocm.h | 85 + > drivers/ml/cnxk/cn10k_ml_ops.c | 2316 ++++++++++++++++++++++++ > drivers/ml/cnxk/cn10k_ml_ops.h | 94 + > drivers/ml/cnxk/meson.build | 32 + > drivers/ml/meson.build | 8 + > 28 files changed, 6577 insertions(+) > create mode 100644 doc/guides/mldevs/cnxk.rst create mode 100644 > doc/guides/mldevs/index.rst create mode 100644 > drivers/common/cnxk/hw/ml.h create mode 100644 > drivers/common/cnxk/roc_ml.c create mode 100644 > drivers/common/cnxk/roc_ml.h create mode 100644 > drivers/common/cnxk/roc_ml_priv.h create mode 100644 > drivers/ml/cnxk/cn10k_ml_dev.c create mode 100644 > drivers/ml/cnxk/cn10k_ml_dev.h create mode 100644 > drivers/ml/cnxk/cn10k_ml_model.c create mode 100644 > drivers/ml/cnxk/cn10k_ml_model.h create mode 100644 > drivers/ml/cnxk/cn10k_ml_ocm.c create mode 100644 > drivers/ml/cnxk/cn10k_ml_ocm.h create mode 100644 > drivers/ml/cnxk/cn10k_ml_ops.c create mode 100644 > drivers/ml/cnxk/cn10k_ml_ops.h create mode 100644 > drivers/ml/cnxk/meson.build create mode 100644 drivers/ml/meson.build > > -- > 2.17.1 Acked-by: Prince Takkar <ptak...@marvell.com>