[PATCH v5 00/10] Driver of Intel(R) Gaussian & Neural Accelerator
Thomas Zimmermann
tzimmermann at suse.de
Mon Oct 24 11:29:18 UTC 2022
Hi
Am 20.10.22 um 19:53 schrieb Maciej Kwapulinski:
> 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
This driver appears to be a candidate for the accel subsystem that has
been proposed here. [1] At a minimum, you'd now get standardized file
names. Longterm, I'd expect dedicated helpers for accel devices.
Best regards
Thomas
[1]
https://lore.kernel.org/dri-devel/Y1VMX9J44FJZp0dl@kroah.com/T/#m977efaeb39fc5be581ae05e1dccbd896546db943
>
> ---
>
> 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
>
> v2->v3:
> - PCI glue driver part split.
> - GNA probe fail path made fully implicit.
> - 'recovery_timeout' module parameter present under 'CONFIG_DEBUG_INTEL_GNA' flag only.
> - build for X86_32 enabled.
> - module initialization through 'module_pci_driver()'.
> - gna_priv->file_list cleanup.
> - 'gna_' prefix removed from source files' names.
> - power management handling added.
> - number of other/minor fixes
> - tests performed on kernel v5.12
>
> v3->v4:
> - GNA driver adapted to DRM framework (+userspace GNA library adapted to use the driver)
> - drm_managed (drmm) feature is used for objects lifetime management
> - GNA memory objects use ~drm_gem_shmem_object~ objects as a base
> - patches reorganized to meet symbols' usage with their declarations/definitions
> - 'recovery_timeout' module parameter removed
> - number of other/minor fixes from v3 review
> - tests performed on kernel v6.0
>
> v4->v5:
> - indentation fixed in drivers/gpu/drm/gna/Kconfig
>
> Maciej Kwapulinski (4):
> gna: add PCI driver module
> gna: add GNA DRM device
> gna: add GNA_GEM_NEW and GNA_GEM_FREE ioctls
> gna: add power management
>
> Tomasz Jankowski (6):
> gna: read hardware info
> gna: initialize MMU
> gna: add GNA_GET_PARAMETER ioctl
> gna: add GNA_COMPUTE ioctl
> gna: add GNA_WAIT ioctl
> gna: add open and close operations on GNA device
>
> Documentation/gpu/drivers.rst | 1 +
> Documentation/gpu/gna.rst | 64 +++++
> MAINTAINERS | 7 +
> drivers/gpu/drm/Kconfig | 2 +
> drivers/gpu/drm/Makefile | 1 +
> drivers/gpu/drm/gna/Kbuild | 5 +
> drivers/gpu/drm/gna/Kconfig | 15 +
> drivers/gpu/drm/gna/gna_device.c | 317 +++++++++++++++++++++
> drivers/gpu/drm/gna/gna_device.h | 114 ++++++++
> drivers/gpu/drm/gna/gna_gem.h | 22 ++
> drivers/gpu/drm/gna/gna_hw.c | 110 ++++++++
> drivers/gpu/drm/gna/gna_hw.h | 107 ++++++++
> drivers/gpu/drm/gna/gna_ioctl.c | 208 ++++++++++++++
> drivers/gpu/drm/gna/gna_mem.c | 249 +++++++++++++++++
> drivers/gpu/drm/gna/gna_mem.h | 58 ++++
> drivers/gpu/drm/gna/gna_pci.c | 148 ++++++++++
> drivers/gpu/drm/gna/gna_pci.h | 12 +
> drivers/gpu/drm/gna/gna_request.c | 441 ++++++++++++++++++++++++++++++
> drivers/gpu/drm/gna/gna_request.h | 64 +++++
> drivers/gpu/drm/gna/gna_score.c | 222 +++++++++++++++
> drivers/gpu/drm/gna/gna_score.h | 11 +
> include/uapi/drm/gna_drm.h | 169 ++++++++++++
> 22 files changed, 2347 insertions(+)
> create mode 100644 Documentation/gpu/gna.rst
> create mode 100644 drivers/gpu/drm/gna/Kbuild
> create mode 100644 drivers/gpu/drm/gna/Kconfig
> create mode 100644 drivers/gpu/drm/gna/gna_device.c
> create mode 100644 drivers/gpu/drm/gna/gna_device.h
> create mode 100644 drivers/gpu/drm/gna/gna_gem.h
> create mode 100644 drivers/gpu/drm/gna/gna_hw.c
> create mode 100644 drivers/gpu/drm/gna/gna_hw.h
> create mode 100644 drivers/gpu/drm/gna/gna_ioctl.c
> create mode 100644 drivers/gpu/drm/gna/gna_mem.c
> create mode 100644 drivers/gpu/drm/gna/gna_mem.h
> create mode 100644 drivers/gpu/drm/gna/gna_pci.c
> create mode 100644 drivers/gpu/drm/gna/gna_pci.h
> create mode 100644 drivers/gpu/drm/gna/gna_request.c
> create mode 100644 drivers/gpu/drm/gna/gna_request.h
> create mode 100644 drivers/gpu/drm/gna/gna_score.c
> create mode 100644 drivers/gpu/drm/gna/gna_score.h
> create mode 100644 include/uapi/drm/gna_drm.h
>
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20221024/869360df/attachment-0001.sig>
More information about the dri-devel
mailing list