From: Guy Zadicario <guy.zadicario@intel.com>
To: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org
Cc: olof@lixom.net, alexander.shishkin@linux.intel.com,
andriy.shevchenko@intel.com, yochai.shefi-simchon@intel.com,
guy.zadicario@intel.com
Subject: [PATCH v2 00/15] misc: nnpi: New PCIe driver for Intel's NNP-I pcie device
Date: Thu, 13 May 2021 11:57:10 +0300 [thread overview]
Message-ID: <20210513085725.45528-1-guy.zadicario@intel.com> (raw)
Hi,
The following series is a driver for a new PCIe device from Intel named NNP-I
(Nirvana Neural Processor for Inference). NNP-I is a PCIe connected compute
device used for acceleration of AI deep learning inference applications in the
data-center.
The reason that this driver should be in the kernel is that it aims to serve
multiple users and user-space applications which might share the same NNP-I
card. Workloads from multiple applications can be processed simultanously by
the NNP-I card if enough compute resources exist.
Overview of the NNP-I device, driver structure and ABIs used in the driver is in
patch#1, which adds the info as a document as it might be a useful info for
anyone trying to understand the driver even past review.
In order to ease the review process, there will be multiple series for the
entire driver code. This is the first series, and it implements everything
necessary to initialize the NNP-I device and allow a user-space inference
application to use it. Other features, which are mostly related to maintenance,
device status visibility and error-handling, will be submitted on the next stage.
A basic user-space library and test application which illustrates the flow of
an NNP-I inference application can be found here: https://github.com/IntelAI/nnpi-host
(This series is enough for the test application to run)
This patchset has gone through internal review inside Intel, the summary of the
change log from the internal review follows.
I would appreciate any feedback, questions or comments to this series.
Changes in v2:
- Removed email disclaimer added to the end of each patch.
- Small fix to Kconfig requested by Randy
- Removed from this cover letter the long Intel internal pre-review change
log of this patchset.
Link to v1 cover letter: https://lwn.net/Articles/856037/
Guy Zadicario (15):
misc: nnpi: Document NNP-I's driver overview
misc: nnpi: Initialize NNP-I framework and PCIe modules
misc: nnpi: Manage and schedule messages to device
misc: nnpi: Define host/card ipc protocol
misc: nnpi: Manage host memory resources
misc: nnpi: Allow usermode to manage host resources
misc: nnpi: Disallow host memory resource access if no NNP-I devices
exist
misc: nnpi: Boot NNP-I device
misc: nnpi: Process device response messages
misc: nnpi: Query and verify device protocol
misc: nnpi: Create comm channel from app to device
misc: nnpi: Route device response messages
misc: nnpi: Expose command channel file interface
misc: nnpi: Create command channel from userspace
misc: nnpi: Map host resources to device channel
Documentation/ABI/testing/sysfs-driver-intel_nnpi | 5 +
Documentation/misc-devices/index.rst | 1 +
Documentation/misc-devices/intel-nnpi.rst | 237 +++++
MAINTAINERS | 6 +
drivers/misc/Kconfig | 1 +
drivers/misc/Makefile | 1 +
drivers/misc/intel-nnpi/Kconfig | 18 +
drivers/misc/intel-nnpi/Makefile | 13 +
drivers/misc/intel-nnpi/bootimage.c | 246 +++++
drivers/misc/intel-nnpi/bootimage.h | 43 +
drivers/misc/intel-nnpi/cmd_chan.c | 790 ++++++++++++++
drivers/misc/intel-nnpi/cmd_chan.h | 134 +++
drivers/misc/intel-nnpi/device.c | 1081 ++++++++++++++++++++
drivers/misc/intel-nnpi/device.h | 182 ++++
drivers/misc/intel-nnpi/device_chardev.c | 789 ++++++++++++++
drivers/misc/intel-nnpi/device_chardev.h | 14 +
drivers/misc/intel-nnpi/host_chardev.c | 353 +++++++
drivers/misc/intel-nnpi/host_chardev.h | 12 +
drivers/misc/intel-nnpi/hostres.c | 627 ++++++++++++
drivers/misc/intel-nnpi/hostres.h | 167 +++
.../misc/intel-nnpi/ipc_include/ipc_c2h_events.h | 198 ++++
drivers/misc/intel-nnpi/ipc_include/ipc_protocol.h | 340 ++++++
.../misc/intel-nnpi/ipc_include/nnp_boot_defs.h | 71 ++
drivers/misc/intel-nnpi/ipc_include/nnp_elbi.h | 91 ++
drivers/misc/intel-nnpi/msg_scheduler.c | 319 ++++++
drivers/misc/intel-nnpi/msg_scheduler.h | 153 +++
drivers/misc/intel-nnpi/nnp_pcie.c | 530 ++++++++++
drivers/misc/intel-nnpi/nnp_user.c | 131 +++
drivers/misc/intel-nnpi/nnp_user.h | 79 ++
include/uapi/misc/intel_nnpi.h | 304 ++++++
30 files changed, 6936 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-driver-intel_nnpi
create mode 100644 Documentation/misc-devices/intel-nnpi.rst
create mode 100644 drivers/misc/intel-nnpi/Kconfig
create mode 100644 drivers/misc/intel-nnpi/Makefile
create mode 100644 drivers/misc/intel-nnpi/bootimage.c
create mode 100644 drivers/misc/intel-nnpi/bootimage.h
create mode 100644 drivers/misc/intel-nnpi/cmd_chan.c
create mode 100644 drivers/misc/intel-nnpi/cmd_chan.h
create mode 100644 drivers/misc/intel-nnpi/device.c
create mode 100644 drivers/misc/intel-nnpi/device.h
create mode 100644 drivers/misc/intel-nnpi/device_chardev.c
create mode 100644 drivers/misc/intel-nnpi/device_chardev.h
create mode 100644 drivers/misc/intel-nnpi/host_chardev.c
create mode 100644 drivers/misc/intel-nnpi/host_chardev.h
create mode 100644 drivers/misc/intel-nnpi/hostres.c
create mode 100644 drivers/misc/intel-nnpi/hostres.h
create mode 100644 drivers/misc/intel-nnpi/ipc_include/ipc_c2h_events.h
create mode 100644 drivers/misc/intel-nnpi/ipc_include/ipc_protocol.h
create mode 100644 drivers/misc/intel-nnpi/ipc_include/nnp_boot_defs.h
create mode 100644 drivers/misc/intel-nnpi/ipc_include/nnp_elbi.h
create mode 100644 drivers/misc/intel-nnpi/msg_scheduler.c
create mode 100644 drivers/misc/intel-nnpi/msg_scheduler.h
create mode 100644 drivers/misc/intel-nnpi/nnp_pcie.c
create mode 100644 drivers/misc/intel-nnpi/nnp_user.c
create mode 100644 drivers/misc/intel-nnpi/nnp_user.h
create mode 100644 include/uapi/misc/intel_nnpi.h
--
1.8.3.1
next reply other threads:[~2021-05-13 8:58 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-13 8:57 Guy Zadicario [this message]
2021-05-13 8:57 ` [PATCH v2 01/15] misc: nnpi: Document NNP-I's driver overview Guy Zadicario
2021-05-13 8:57 ` [PATCH v2 02/15] misc: nnpi: Initialize NNP-I framework and PCIe modules Guy Zadicario
2021-05-13 8:57 ` [PATCH v2 03/15] misc: nnpi: Manage and schedule messages to device Guy Zadicario
2021-05-13 8:57 ` [PATCH v2 04/15] misc: nnpi: Define host/card ipc protocol Guy Zadicario
2021-05-13 8:57 ` [PATCH v2 05/15] misc: nnpi: Manage host memory resources Guy Zadicario
2021-05-13 8:57 ` [PATCH v2 06/15] misc: nnpi: Allow usermode to manage host resources Guy Zadicario
2021-05-17 7:02 ` Dave Airlie
2021-05-13 8:57 ` [PATCH v2 07/15] misc: nnpi: Disallow host memory resource access if no NNP-I devices exist Guy Zadicario
2021-05-13 8:57 ` [PATCH v2 08/15] misc: nnpi: Boot NNP-I device Guy Zadicario
2021-05-13 8:57 ` [PATCH v2 09/15] misc: nnpi: Process device response messages Guy Zadicario
2021-05-13 8:57 ` [PATCH v2 10/15] misc: nnpi: Query and verify device protocol Guy Zadicario
2021-05-13 8:57 ` [PATCH v2 11/15] misc: nnpi: Create comm channel from app to device Guy Zadicario
2021-05-13 8:57 ` [PATCH v2 12/15] misc: nnpi: Route device response messages Guy Zadicario
2021-05-13 8:57 ` [PATCH v2 13/15] misc: nnpi: Expose command channel file interface Guy Zadicario
2021-05-13 8:57 ` [PATCH v2 14/15] misc: nnpi: Create command channel from userspace Guy Zadicario
2021-05-13 8:57 ` [PATCH v2 15/15] misc: nnpi: Map host resources to device channel Guy Zadicario
2021-05-14 8:33 ` [PATCH v2 00/15] misc: nnpi: New PCIe driver for Intel's NNP-I pcie device Greg KH
2021-06-15 14:58 ` Guy Zadicario
2021-06-15 15:54 ` Greg KH
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=20210513085725.45528-1-guy.zadicario@intel.com \
--to=guy.zadicario@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=andriy.shevchenko@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=olof@lixom.net \
--cc=yochai.shefi-simchon@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.