1 .. SPDX-License-Identifier: GPL-2.0 2 3 ============ 4 Introduction 5 ============ 6 7 The Linux compute accelerators subsystem is de 8 accelerators in a common way to user-space and 9 functionality. 10 11 These devices can be either stand-alone ASICs 12 Although these devices are typically designed 13 Machine-Learning (ML) and/or Deep-Learning (DL 14 is not limited to handling these types of acce 15 16 Typically, a compute accelerator will belong t 17 categories: 18 19 - Edge AI - doing inference at an edge device. 20 or an IP inside a SoC (e.g. laptop web camer 21 are typically configured using registers and 22 23 - Inference data-center - single/multi user de 24 type of device can be stand-alone or an IP i 25 have on-board DRAM (to hold the DL topology) 26 command submission queues (either kernel or 27 It might also have an MMU to manage multiple 28 virtualization (SR-IOV) to support multiple 29 addition, these devices will usually have so 30 debugger. 31 32 - Training data-center - Similar to Inference 33 have more computational power and memory b/w 34 a method of scaling-up/out, i.e. connecting 35 the server or in other servers, respectively 36 37 All these devices typically have different run 38 that are tailored-made to their h/w. In additi 39 include a compiler to generate programs to the 40 engines. Typically, the common layer in user-s 41 such as PyTorch and TensorFlow. 42 43 Sharing code with DRM 44 ===================== 45 46 Because this type of devices can be an IP insi 47 characteristics as those of GPUs, the accel su 48 DRM subsystem's code and functionality. i.e. t 49 be part of the DRM subsystem and an accel devi 50 device. 51 52 This will allow us to leverage the extensive D 53 collaborate with DRM developers that have expe 54 devices. In addition, new features that will b 55 drivers can be of use to GPU drivers as well. 56 57 Differentiation from GPUs 58 ========================= 59 60 Because we want to prevent the extensive user- 61 from trying to use an accelerator as a GPU, th 62 differentiated from GPUs by using a new major 63 64 Furthermore, the drivers will be located in a 65 tree - drivers/accel/. 66 67 The accelerator devices will be exposed to the 68 261 major number and will have the following c 69 70 - device char files - /dev/accel/accel\* 71 - sysfs - /sys/class/accel/accel\* 72 - debugfs - /sys/kernel/debug/accel/ 73 74 Getting Started 75 =============== 76 77 First, read the DRM documentation at Documenta 78 Not only it will explain how to write a new DR 79 contain all the information on how to contribu 80 what is the coding style/documentation. All of 81 accel subsystem. 82 83 Second, make sure the kernel is configured wit 84 85 To expose your device as an accelerator, two c 86 be done in your driver (as opposed to a standa 87 88 - Add the DRIVER_COMPUTE_ACCEL feature flag in 89 driver_features field. It is important to no 90 mutually exclusive with DRIVER_RENDER and DR 91 to expose both graphics and compute device c 92 two drivers that are connected using the aux 93 94 - Change the open callback in your driver fops 95 Alternatively, your driver can use DEFINE_DR 96 set the correct function operations pointers 97 98 External References 99 =================== 100 101 email threads 102 ------------- 103 104 * `Initial discussion on the New subsystem for< 105 * `patch-set to add the new subsystem <https:// 106 107 Conference talks 108 ---------------- 109 110 * `LPC 2022 Accelerators BOF outcomes summary
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.