lkml.org 
[lkml]   [2021]   [Mar]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v2 00/13] Driver of Intel(R) Gaussian & Neural Accelerator
    Date
    Dear kernel maintainers,

    This submission is a kernel driver to support Intel(R) Gaussian & Neural
    Accelerator (Intel(R) GNA). Intel(R) GNA is a PCI-based neural co-processor
    available on multiple Intel platforms. AI developers and users can offload
    continuous inference workloads to an Intel(R) GNA device in order to free
    processor resources and save power. Noise reduction and speech recognition
    are the examples of the workloads Intel(R) GNA deals with while its usage
    is not limited to the two.

    For a list of processors equipped with Intel(R) GNA device, please refer to
    this link:
    https://docs.openvinotoolkit.org/latest/openvino_docs_IE_DG_supported_plugins_GNA.html

    We think contributing this driver to the upstream kernel project is the
    best way for developers and users to get the latest Intel(R) GNA support in
    a Linux kernel, through the mainline to any Linux distributions installed
    on their systems. Upstreaming also enables contribution from developers
    around the world to the driver once it is merged.

    The driver works with Intel(R) libraries in user space. The Intel(R) driver
    exposes a few IOCTL interfaces for use by libraries in user space. The
    libraries are open sourced and are available at:
    https://github.com/intel/gna

    ---

    Changelogs:

    v1->v2:
    - driver's new layout:
    - driver name: gna -> intel_gna
    - module name: gna -> intel_gna
    - device file name: /dev/gnaN -> /dev/intel_gnaN
    - driver's source directory: drivers/misc/gna/ -> drivers/misc/intel/gna/
    - UAPI: include/uapi/misc/gna.h -> include/uapi/misc/intel/gna.h
    - DOC: Documentation/misc-devices/gna.rst ->
    Documentation/misc-devices/intel/gna.rst
    - 'MISC' device framework used
    - fixes throughout GNA device's PCI management
    - header files' includes and forward declarations cleanup
    - ISR made static
    - unused comments cleanup
    - "_priv_" segment removed from function names
    - tested: v5.11-rc3 -> v5.11
    - number of other/minor fixes

    ---

    Maciej Kwapulinski (1):
    intel_gna: add a 'misc' device

    Tomasz Jankowski (12):
    intel_gna: add driver module
    intel_gna: add component of hardware operation
    intel_gna: read hardware info in the driver
    intel_gna: add memory handling
    intel_gna: initialize mmu
    intel_gna: add hardware ids
    intel_gna: add request component
    intel_gna: implement scoring
    intel_gna: add a work queue to process scoring requests
    intel_gna: add interrupt handler
    intel_gna: add ioctl handler
    intel_gna: add file operations to a 'misc' device

    Documentation/misc-devices/index.rst | 1 +
    Documentation/misc-devices/intel/gna.rst | 48 ++
    .../userspace-api/ioctl/ioctl-number.rst | 1 +
    MAINTAINERS | 7 +
    drivers/misc/Kconfig | 1 +
    drivers/misc/Makefile | 1 +
    drivers/misc/intel/gna/Kbuild | 5 +
    drivers/misc/intel/gna/Kconfig | 13 +
    drivers/misc/intel/gna/gna_device.c | 429 ++++++++++++++++
    drivers/misc/intel/gna/gna_device.h | 89 ++++
    drivers/misc/intel/gna/gna_driver.c | 43 ++
    drivers/misc/intel/gna/gna_driver.h | 33 ++
    drivers/misc/intel/gna/gna_hw.c | 125 +++++
    drivers/misc/intel/gna/gna_hw.h | 61 +++
    drivers/misc/intel/gna/gna_ioctl.c | 249 +++++++++
    drivers/misc/intel/gna/gna_ioctl.h | 11 +
    drivers/misc/intel/gna/gna_mem.c | 473 ++++++++++++++++++
    drivers/misc/intel/gna/gna_mem.h | 107 ++++
    drivers/misc/intel/gna/gna_request.c | 463 +++++++++++++++++
    drivers/misc/intel/gna/gna_request.h | 62 +++
    drivers/misc/intel/gna/gna_score.c | 298 +++++++++++
    drivers/misc/intel/gna/gna_score.h | 18 +
    include/uapi/misc/intel/gna.h | 155 ++++++
    23 files changed, 2693 insertions(+)
    create mode 100644 Documentation/misc-devices/intel/gna.rst
    create mode 100644 drivers/misc/intel/gna/Kbuild
    create mode 100644 drivers/misc/intel/gna/Kconfig
    create mode 100644 drivers/misc/intel/gna/gna_device.c
    create mode 100644 drivers/misc/intel/gna/gna_device.h
    create mode 100644 drivers/misc/intel/gna/gna_driver.c
    create mode 100644 drivers/misc/intel/gna/gna_driver.h
    create mode 100644 drivers/misc/intel/gna/gna_hw.c
    create mode 100644 drivers/misc/intel/gna/gna_hw.h
    create mode 100644 drivers/misc/intel/gna/gna_ioctl.c
    create mode 100644 drivers/misc/intel/gna/gna_ioctl.h
    create mode 100644 drivers/misc/intel/gna/gna_mem.c
    create mode 100644 drivers/misc/intel/gna/gna_mem.h
    create mode 100644 drivers/misc/intel/gna/gna_request.c
    create mode 100644 drivers/misc/intel/gna/gna_request.h
    create mode 100644 drivers/misc/intel/gna/gna_score.c
    create mode 100644 drivers/misc/intel/gna/gna_score.h
    create mode 100644 include/uapi/misc/intel/gna.h

    --
    2.28.0

    \
     
     \ /
      Last update: 2021-03-24 19:40    [W:2.733 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site