DPDK patches and discussions
 help / color / mirror / Atom feed
From: Srikanth Yalavarthi <syalavarthi@marvell.com>
Cc: <dev@dpdk.org>, <sshankarnara@marell.com>, <jerinj@marvell.com>,
	"Srikanth Yalavarthi" <syalavarthi@marvell.com>
Subject: [PATCH v1 00/12] *** implement mldev test application ***
Date: Mon, 28 Nov 2022 22:50:28 -0800	[thread overview]
Message-ID: <20221129065040.5875-1-syalavarthi@marvell.com> (raw)

Machine learning device APIs test application
=============================================

This series of patches introduces a test application for machine
learning device APIs. A test framework is implemented with multiple
test enabled, to validate the device, model and fast-path functions.
New tests can be added using the test framework.


List of tests supported
-----------------------

1) device_ops: Test case to validate device re-configuration

2) model_ops: Collection of 4 sub-tests to validate model slow APIs.
Each sub-test would invoke the slow path model APIs (load / start /
stop / unload) in different order.

3) inference_ordered: Test case to validate execution of end-to-end
inferences on ML device with one active model at a time. This test
can execute inference requests for multiple models, with inferences
for a model executed after completion of inferences for a previously
loaded model.

4) inference_interleave: Test case to validate end-to-end inferences
with multiple active models concurrently. This case would work as a
stress test to validate ML device.


Options supported the by tests include burst size for enqueuing and 
dequeuing inference requests, enabling multiple queue pairs with a
user specified value for queue size. Support is also enabled for
batch inferencing, output validation and statistics.


Depends-on: series-25753 ("mldev: introduce machine learning device library")

Srikanth Yalavarthi (12):
  app/mldev: implement test framework for mldev
  app/mldev: add common test functions
  app/mldev: add test case to validate device ops
  app/mldev: add test case to validate model ops
  app/mldev: add ordered inference test case
  app/mldev: add test case to interleave inferences
  app/mldev: enable support for burst inferences
  app/mldev: enable support for queue pairs and size
  app/mldev: enable support for inference batches
  app/mldev: enable support for inference validation
  app/mldev: enable reporting stats in mldev app
  app/mldev: add documentation for mldev test cases

 MAINTAINERS                                   |    2 +
 app/meson.build                               |    1 +
 app/test-mldev/meson.build                    |   24 +
 app/test-mldev/ml_common.h                    |   29 +
 app/test-mldev/ml_main.c                      |  118 ++
 app/test-mldev/ml_options.c                   |  331 +++++
 app/test-mldev/ml_options.h                   |   58 +
 app/test-mldev/ml_test.c                      |   45 +
 app/test-mldev/ml_test.h                      |   75 ++
 app/test-mldev/parser.c                       |  380 ++++++
 app/test-mldev/parser.h                       |   55 +
 app/test-mldev/test_common.c                  |  139 ++
 app/test-mldev/test_common.h                  |   27 +
 app/test-mldev/test_device_ops.c              |  234 ++++
 app/test-mldev/test_device_ops.h              |   17 +
 app/test-mldev/test_inference_common.c        | 1126 +++++++++++++++++
 app/test-mldev/test_inference_common.h        |   79 ++
 app/test-mldev/test_inference_interleave.c    |  122 ++
 app/test-mldev/test_inference_ordered.c       |  120 ++
 app/test-mldev/test_model_common.c            |  168 +++
 app/test-mldev/test_model_common.h            |   49 +
 app/test-mldev/test_model_ops.c               |  433 +++++++
 app/test-mldev/test_model_ops.h               |   21 +
 .../tools/img/mldev_inference_interleave.svg  |  667 ++++++++++
 .../tools/img/mldev_inference_ordered.svg     |  526 ++++++++
 .../tools/img/mldev_model_ops_subtest_a.svg   |  418 ++++++
 .../tools/img/mldev_model_ops_subtest_b.svg   |  421 ++++++
 .../tools/img/mldev_model_ops_subtest_c.svg   |  364 ++++++
 .../tools/img/mldev_model_ops_subtest_d.svg   |  422 ++++++
 doc/guides/tools/index.rst                    |    1 +
 doc/guides/tools/testmldev.rst                |  441 +++++++
 31 files changed, 6913 insertions(+)
 create mode 100644 app/test-mldev/meson.build
 create mode 100644 app/test-mldev/ml_common.h
 create mode 100644 app/test-mldev/ml_main.c
 create mode 100644 app/test-mldev/ml_options.c
 create mode 100644 app/test-mldev/ml_options.h
 create mode 100644 app/test-mldev/ml_test.c
 create mode 100644 app/test-mldev/ml_test.h
 create mode 100644 app/test-mldev/parser.c
 create mode 100644 app/test-mldev/parser.h
 create mode 100644 app/test-mldev/test_common.c
 create mode 100644 app/test-mldev/test_common.h
 create mode 100644 app/test-mldev/test_device_ops.c
 create mode 100644 app/test-mldev/test_device_ops.h
 create mode 100644 app/test-mldev/test_inference_common.c
 create mode 100644 app/test-mldev/test_inference_common.h
 create mode 100644 app/test-mldev/test_inference_interleave.c
 create mode 100644 app/test-mldev/test_inference_ordered.c
 create mode 100644 app/test-mldev/test_model_common.c
 create mode 100644 app/test-mldev/test_model_common.h
 create mode 100644 app/test-mldev/test_model_ops.c
 create mode 100644 app/test-mldev/test_model_ops.h
 create mode 100644 doc/guides/tools/img/mldev_inference_interleave.svg
 create mode 100644 doc/guides/tools/img/mldev_inference_ordered.svg
 create mode 100644 doc/guides/tools/img/mldev_model_ops_subtest_a.svg
 create mode 100644 doc/guides/tools/img/mldev_model_ops_subtest_b.svg
 create mode 100644 doc/guides/tools/img/mldev_model_ops_subtest_c.svg
 create mode 100644 doc/guides/tools/img/mldev_model_ops_subtest_d.svg
 create mode 100644 doc/guides/tools/testmldev.rst

-- 
2.17.1


             reply	other threads:[~2022-11-29  6:50 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-29  6:50 Srikanth Yalavarthi [this message]
2022-11-29  6:50 ` [PATCH v1 01/12] app/mldev: implement test framework for mldev Srikanth Yalavarthi
2022-11-29  6:50 ` [PATCH v1 02/12] app/mldev: add common test functions Srikanth Yalavarthi
2022-11-29  6:50 ` [PATCH v1 03/12] app/mldev: add test case to validate device ops Srikanth Yalavarthi
2022-11-29  6:50 ` [PATCH v1 04/12] app/mldev: add test case to validate model ops Srikanth Yalavarthi
2022-11-29  6:50 ` [PATCH v1 05/12] app/mldev: add ordered inference test case Srikanth Yalavarthi
2022-11-29  6:50 ` [PATCH v1 06/12] app/mldev: add test case to interleave inferences Srikanth Yalavarthi
2022-11-29  6:50 ` [PATCH v1 07/12] app/mldev: enable support for burst inferences Srikanth Yalavarthi
2022-11-29  6:50 ` [PATCH v1 08/12] app/mldev: enable support for queue pairs and size Srikanth Yalavarthi
2022-11-29  6:50 ` [PATCH v1 09/12] app/mldev: enable support for inference batches Srikanth Yalavarthi
2022-11-29  6:50 ` [PATCH v1 10/12] app/mldev: enable support for inference validation Srikanth Yalavarthi
2022-11-29  6:50 ` [PATCH v1 11/12] app/mldev: enable reporting stats in mldev app Srikanth Yalavarthi
2022-11-29  6:50 ` [PATCH v1 12/12] app/mldev: add documentation for mldev test cases Srikanth Yalavarthi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221129065040.5875-1-syalavarthi@marvell.com \
    --to=syalavarthi@marvell.com \
    --cc=dev@dpdk.org \
    --cc=jerinj@marvell.com \
    --cc=sshankarnara@marell.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).