All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/15] misc: nnpi: New PCIe driver for Intel's NNP-I pcie device
@ 2021-05-13  8:57 Guy Zadicario
  2021-05-13  8:57 ` [PATCH v2 01/15] misc: nnpi: Document NNP-I's driver overview Guy Zadicario
                   ` (15 more replies)
  0 siblings, 16 replies; 20+ messages in thread
From: Guy Zadicario @ 2021-05-13  8:57 UTC (permalink / raw)
  To: gregkh, linux-kernel
  Cc: olof, alexander.shishkin, andriy.shevchenko,
	yochai.shefi-simchon, guy.zadicario

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


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2021-06-15 15:56 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-13  8:57 [PATCH v2 00/15] misc: nnpi: New PCIe driver for Intel's NNP-I pcie device Guy Zadicario
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

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.