Data processing equipment management system and method, electronic equipment and storage medium

By registering data processing device ports and creating instance scheduling management units in multi-GPU systems, the problem of device management complexity in multi-GPU systems is solved, efficient resource scheduling and management is achieved, and system performance and ease of use are improved.

CN119376946BActive Publication Date: 2025-08-22MOORE THREADS TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411523828.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-10-29
Publication Date
2025-08-22
Estimated Expiration
2044-10-29

AI Technical Summary

Technical Problem

In multi-GPU systems, it is difficult for the prior art to efficiently manage and schedule multiple data processing device instances, resulting in complex device discovery, initialization and registration, low resource scheduling and management efficiency, increasing system complexity and maintenance costs.

Method used

By registering data processing device ports on the platform bus, creating a corresponding number of instance scheduling management units, and linking these units through the system kernel management framework, simplifying the interaction between user drivers and kernel space, providing an isolated execution environment and resource management, and dynamically adjusting the resource structure to support flexible management of multi-device instances.

Benefits of technology

Reduces user-driven complexity and maintenance costs, improves overall system efficiency and ease of use, and realizes efficient scheduling and management of multiple data processing device instances.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119376946B_ABST
    Figure CN119376946B_ABST
Patent Text Reader

Abstract

The present disclosure relates to a data processing device management system and method, an electronic device, and a storage medium. The system includes: a platform-driven device end that registers a data processing device port on a platform bus; a platform-driven driver end that creates a corresponding number of instance scheduling management units based on the number of data processing device instances, and links the instance scheduling management units to the system kernel management framework through an interface of the system kernel management framework; the system kernel management framework links the instance scheduling management units with the data processing device port; and the system kernel management framework, in response to a user-driven call request for the data processing device port, calls the data processing device instance through the instance scheduling management unit linked to the data processing device port. Embodiments of the present disclosure can reduce the complexity and maintenance cost of user-driven operations and improve the overall efficiency and ease of use of the system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer technology, and in particular to a data processing device management system and method, an electronic device, and a storage medium. Background Art

[0002] With the rapid development of computer technology, data processing devices (such as graphics processing units (GPUs) and central processing units (CPUs)) are increasingly used in high-performance computing and graphics rendering. These devices play a key role in processing complex computing tasks and rendering high-quality graphics. However, managing multiple data processing device instances, especially in multi-GPU systems, presents numerous technical challenges in existing technologies.

[0003] For example, in traditional GPU driver strategies, a single device node is typically used to manage a single GPU instance. When scheduling multiple GPU instances simultaneously, multiple contexts must be established, making the entire process relatively cumbersome.

[0004] Specifically, when the GPU driver schedules multiple GPU instances, device discovery and registration are more cumbersome. In a multi-device system, how to effectively discover, initialize, and register each data processing device instance and ensure that they can be correctly identified and used by the operating system and applications is a complex and time-consuming process. Moreover, resource scheduling and management, and the interaction between user space and kernel space also require complex logic. User space programs need to interact with the data processing device management system in the kernel space through system calls, but the existing interaction mechanisms are often inefficient and difficult to implement complex functional requirements. This limits the full performance of data processing devices and increases the complexity and maintenance costs of the system. Summary of the Invention

[0005] The present disclosure proposes a technical solution for data processing equipment management.

[0006] According to one aspect of the present disclosure, there is provided a data processing device management system, comprising:

[0007] The device side of the platform driver registers a data processing device port on the platform bus;

[0008] The driver side of the platform driver creates a corresponding number of instance scheduling management units according to the number of data processing device instances, and links the instance scheduling management units to the system kernel management framework through the interface of the system kernel management framework;

[0009] A system kernel management framework, linking the instance scheduling management unit with the data processing device port;

[0010] The system kernel management framework, in response to a user-driven call request to the data processing device port, calls the data processing device instance through the instance scheduling management unit linked to the data processing device port.

[0011] In a possible implementation, the platform-driven driver obtains the number of data processing device instances recorded in a private memory and creates a corresponding number of instance scheduling management units.

[0012] In a possible implementation, the user drives sending a connection request to the data processing device port;

[0013] The system kernel management framework returns the number of data processing device instances to the user driver in response to the connection request;

[0014] The user driver creates a context resource corresponding to the data processing device port, wherein the context resource is used to provide an isolated execution environment for multiple data processing device instances and maintain related resources required for calling multiple data processing device instances;

[0015] The user driver calls the data processing device instance through the context resource based on the number of the data processing device instance.

[0016] In a possible implementation, the user driver sends a call request to the system kernel management framework, wherein the call request includes an identifier of the data processing device instance to be called;

[0017] The system kernel management framework calls the data processing device instance in response to the calling request and based on the identifier of the data processing device instance.

[0018] In a possible implementation, the system kernel management framework sends the calling request to a master instance scheduling management unit among the multiple instance scheduling management units in response to the calling request;

[0019] The master instance scheduling management unit determines a target instance scheduling management unit corresponding to the identifier of the data processing device instance in the call request;

[0020] In the case where the target instance scheduling management unit is the main instance scheduling management unit, the main instance scheduling management unit calls the corresponding data processing device instance to process the request;

[0021] When the target instance scheduling management unit is another instance scheduling management unit, the master instance scheduling management unit forwards the call request to the target instance scheduling management unit, and the target instance scheduling management unit calls the corresponding data processing device instance to process the request.

[0022] In a possible implementation, the system kernel management framework creates a corresponding number of resource structures according to the number of data processing device instances, and the resource structures are used to store register resources and interrupt resources of multiple data processing device instances.

[0023] In a possible implementation, the instance scheduling management unit calls a corresponding data processing device instance to process a request based on the data stored in the created resource structure.

[0024] According to one aspect of the present disclosure, a data processing device management method is provided, which is applied to a data processing device management system, comprising:

[0025] Register a data processing device port on the platform bus;

[0026] Creating a corresponding number of instance scheduling management units according to the number of data processing device instances, and linking the instance scheduling management units to the system kernel management framework through the interface of the system kernel management framework;

[0027] linking the instance scheduling management unit to the data processing device port;

[0028] In response to a user-driven call request to the data processing device port, the data processing device instance is called through the instance scheduling management unit linked to the data processing device port.

[0029] According to one aspect of the present disclosure, an electronic device is provided, comprising: a processor; and a memory for storing processor-executable instructions; wherein the processor is configured to call the instructions stored in the memory to implement the above system.

[0030] According to one aspect of the present disclosure, a computer-readable storage medium is provided, on which computer program instructions are stored. When the computer program instructions are executed by a processor, the above system is implemented.

[0031] It should be understood that the above general description and the following detailed description are only exemplary and explanatory, rather than limiting the present disclosure. Other features and aspects of the present disclosure will become clear from the following detailed description of exemplary embodiments with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0032] The accompanying drawings herein are incorporated into and constitute a part of the specification. These drawings illustrate embodiments consistent with the present disclosure and, together with the specification, are used to explain the technical solutions of the present disclosure.

[0033] Figure 1 A block diagram illustrating a data processing device management system according to an embodiment of the present disclosure is shown.

[0034] Figure 2 A structural diagram of a data processing device management system provided according to an embodiment of the present disclosure is shown.

[0035] Figure 3 A structural diagram of a data processing device management system provided according to an embodiment of the present disclosure is shown.

[0036] Figure 4 A flowchart illustrating a data processing device management method according to an embodiment of the present disclosure is shown.

[0037] Figure 5 A block diagram of an electronic device 1900 according to an embodiment of the present disclosure is shown. DETAILED DESCRIPTION

[0038] Various exemplary embodiments, features, and aspects of the present disclosure will be described in detail below with reference to the accompanying drawings. The same reference numerals in the accompanying drawings represent elements with the same or similar functions. Although various aspects of the embodiments are shown in the accompanying drawings, the drawings are not necessarily drawn to scale unless otherwise indicated.

[0039] The word “exemplary” is used exclusively herein to mean “serving as an example, example, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.

[0040] The term "and / or" herein simply describes an association relationship between associated objects, indicating that three relationships can exist. For example, "A and / or B" can represent the existence of three situations: A alone, A and B simultaneously, and B alone. Furthermore, the term "at least one" herein refers to any combination of at least two of any one or more of a plurality of items. For example, "at least one of A, B, and C" can represent any one or more elements selected from the set consisting of A, B, and C.

[0041] In addition, numerous specific details are provided in the following detailed description to better illustrate the present disclosure. Those skilled in the art will appreciate that the present disclosure can be practiced without certain specific details. In some instances, methods, means, components, and circuits well known to those skilled in the art are not described in detail in order to highlight the main points of the present disclosure.

[0042] Figure 1A block diagram of a data processing device management system according to an embodiment of the present disclosure is shown. Figure 1 As shown, the system 10 includes:

[0043] The platform-driven device terminal 11 registers a data processing device port on the platform bus;

[0044] The platform-driven driver 12 creates a corresponding number of instance scheduling management units according to the number of data processing device instances, and links the instance scheduling management units to the system kernel management framework through the interface of the system kernel management framework;

[0045] The system kernel management framework 13 links the instance scheduling management unit with the data processing device port;

[0046] The system kernel management framework 13, in response to a user-driven call request to the data processing device port, calls the data processing device instance through the instance scheduling management unit linked to the data processing device port.

[0047] The device side of a platform driver is the part of the platform driver that directly interacts with the hardware device. It is responsible for registering and initializing the hardware device with the operating system, enabling the hardware device to be recognized and used by the operating system and other software. For example, in Linux, a device node can be registered on the platform bus. For example, the registered device node can be represented as / dev / dri / card0.

[0048] A platform bus is a logical or physical communication channel used to connect and process signals and data from different hardware devices and software components. For example, in Linux, the platform bus is a software module (i.e., a logical communication channel) used to connect and manage buses that are not dependent on traditional buses such as PCI / PCIe.

[0049] A data processing device port is an interface in a system for communicating with a specific data processing device (such as a GPU). In one example, in a Direct Rendering Manager (DRM) framework, it is typically a device file or device node associated with a GPU device.

[0050] The driver side of a platform driver is the module responsible for implementing specific device control logic within the platform driver. It creates and manages the necessary data structures and control logic based on the device's characteristics and requirements, enabling the operating system and applications to efficiently use the device. In one example, the driver side of a platform driver can create a corresponding number of instance scheduling management units based on the number of existing data processing device instances. These instance scheduling management units are responsible for managing and scheduling user driver access to data processing device instances.

[0051] A data processing device instance can be a physical device entity that actually exists in the system and can be used for data processing. For example, a GPU or CPU device. The instance scheduling management unit manages user software's access to data processing device instances, such as task allocation, resource scheduling, and error handling. User drivers run in user space and interact with hardware devices. In one example, in the graphics processing domain, user drivers are responsible for submitting rendering tasks, allocating and managing graphics resources, and other tasks.

[0052] User drivers interact with the system kernel management framework, calling its interfaces to invoke data processing device instances to execute tasks. In one example, the system kernel management framework can be the DRM framework in the Linux kernel, which manages graphics hardware (such as GPUs). This framework provides a unified interface for user drivers to access and control graphics hardware, while hiding the complexity and differences of the hardware.

[0053] The device side of the platform driver scans the system bus to find and identify data processing devices (such as GPUs) connected to the bus. When a device is identified, the platform driver performs device initialization operations, such as configuring device registers and allocating corresponding memory space.

[0054] After device initialization is complete, the platform driver registers the device with the kernel (e.g., the Linux kernel). For example, a device node can be added to the kernel's device model (e.g., sysfs) and a device file (e.g., / dev / dri / card0) can be created in the / dev directory. This device file then serves as the interface for userspace programs to communicate with the device.

[0055] After registering the data processing device port, you can create an instance scheduling management unit. At this point, you can pre-query the number of device instances, that is, the number of available data processing device instances (such as GPU instances) in the system. This can be achieved by reading system information, hardware registers, or configuration files.

[0056] After obtaining the number of device instances, the driver can create a corresponding instance scheduling management unit for each device instance to schedule the device instance. The created instance scheduling management unit will be linked to the system kernel management framework. For example, a reference or pointer to the scheduling management unit can be added to the drm_device structure of the DRM framework, or the scheduling management unit can be registered with the framework through the registration mechanism provided by the DRM framework.

[0057] The system kernel management framework can then link the instance scheduling management unit with the device port. For example, the DRM framework can associate the device file (such as / dev / dri / card0) previously registered by the platform driver's device side with the corresponding drm_device structure and the instance scheduling management unit. Then, when the user driver accesses the GPU through the device file, the DRM framework will use the associated instance scheduling management unit to control access to the GPU instance.

[0058] Specifically, when a user space program (such as a user driver) interacts with a data processing device port (such as a device file) through a system call function (such as an open function, an ioctl function, etc.), the kernel will call the corresponding processing function of the system kernel management framework.

[0059] Based on the user driver's request type, the system kernel management framework calls the corresponding instance scheduling management unit to perform task scheduling. During scheduling, it can perform specific operations such as allocating resources and submitting tasks to the GPU, which are not detailed here. After the task is scheduled, the system kernel management framework can return the results to the user driver, such as status information, completion notification, error code, and other information.

[0060] In the embodiment of the present disclosure, the device side of the platform driver registers a data processing device port on the platform bus; the driver side of the platform driver creates a corresponding number of instance scheduling management units according to the number of data processing device instances, and links the instance scheduling management units to the system kernel management framework through the interface of the system kernel management framework; the system kernel management framework links the instance scheduling management unit with the data processing device port; the system kernel management framework, in response to the user driver's call request for the data processing device port, calls the data processing device instance through the instance scheduling management unit linked to the data processing device port. Therefore, no matter whether there is one or more data processing device instances, only one data processing device port needs to be registered, and the port is responsible for interacting with the user driver, which simplifies the interaction logic between the user driver and the underlying layer, eliminates the need to create multiple contexts for multiple data processing device instances, reduces the complexity and maintenance cost of the user driver, and improves the overall efficiency and ease of use of the system.

[0061] In a possible implementation, the platform-driven driver obtains the number of data processing device instances recorded in a private memory and creates a corresponding number of instance scheduling management units.

[0062] In this implementation, the platform driver can access a private memory area (privatedata). This private memory area can be a memory area allocated by the system when the device is registered. This area is used to store configuration information related to data processing devices (such as GPUs). For example, the number of GPU instances configured in the system can be manually configured by the user or obtained by the system automatically scanning all devices.

[0063] The platform driver creates a corresponding number of instance scheduling management units based on the number of data processing device instances read from private memory. Each instance scheduling management unit corresponds to a data processing device instance and is used to manage the resources and tasks of the corresponding data processing device instance. By creating a separate scheduling management unit for each data processing device instance, processing resources can be more efficiently managed and utilized, ensuring that each data processing device instance is properly scheduled and accessed.

[0064] In the disclosed embodiment, the platform-driven driver side obtains the number of data processing device instances recorded in the private memory and creates a corresponding number of instance scheduling management units. Thus, the platform-driven driver side can dynamically create instance scheduling management units based on the configuration information in the private memory, so that the system can adapt to different numbers of data processing device instances without requiring extensive code modification or reconstruction. Furthermore, because each data processing device instance has an independent scheduling management unit responsible for managing its resources and tasks, the system can more accurately control the performance and resource usage of each data processing device instance, thereby improving overall performance and efficiency.

[0065] In one possible implementation, the user driver sends a connection request to the data processing device port; the system kernel management framework returns the number of data processing device instances to the user driver in response to the connection request; the user driver creates a context resource corresponding to the data processing device port, and the context resource is used to provide an isolated execution environment for multiple data processing device instances and maintain related resources required for calling multiple data processing device instances; the user driver calls the data processing device instance through the context resource based on the number of data processing device instances.

[0066] When a user driver needs to access a data processing device instance, it initiates a connection request, for example, sending an "open" request. This request is usually a system call, such as one implemented based on the open() function, to notify the operating system and the corresponding driver that the user driver needs to start using a device.

[0067] When the system kernel management framework receives a connection request from a user driver, it checks the number of available data processing device instances and returns this number to the user driver. After receiving the number of instances sent by the system kernel management framework, the user program creates a context resource. Since only one data processing device port is registered in this implementation, only one context resource can be created. The context resource provides an isolated execution environment for multiple data processing device instances and maintains the relevant resources required by multiple data processing device instances, such as the current rendering state, textures, buffers, etc. It allows user applications to perform graphics operations in an isolated environment (i.e., the context resource).

[0068] After the context resource is created, the user driver can use the identifier of the data processing device instance based on the context resource to call the data processing device instance to call the specific data processing device instance. The specific calling process can be referred to the possible implementation methods provided in this disclosure and will not be detailed here.

[0069] In one example, when a user application requests to open a GPU, it sends a drmOpen() or similar request to the DRM subsystem through the user driver. The DRM subsystem checks the GPU resources in the system and returns the number of GPU instances. The user driver then creates a context resource. Using this context resource, the user driver then makes calls to the GPU instance based on its identifier to manage access to the GPU instance and perform operations such as graphics rendering.

[0070] In the disclosed embodiment, the user driver sends a connection request to the data processing device port; the system kernel management framework responds to the connection request by returning the number of data processing device instances to the user driver; the user driver creates a context resource corresponding to the data processing device port and, based on the number of data processing device instances, uses the context resource to call the data processing device instance. This allows the user driver to call multiple data processing device instances using only one context resource, reducing the complexity and maintenance costs of the user driver and improving the overall efficiency and usability of the system.

[0071] In one possible implementation, the user driver sends a call request to the system kernel management framework, wherein the call request includes an identifier of the data processing device instance to be called; the system kernel management framework responds to the call request and calls the data processing device instance based on the identifier of the data processing device instance.

[0072] In this implementation, a specific flag can be used to specify the data processing device instance (such as a GPU) to be called. The flag can be unique and used to identify the specific device instance in the system kernel management framework.

[0073] Specifically, the user application layer has specific data processing requirements, which may need to be performed by a specific data processing device instance (such as a GPU). For example, the user driver may want to assign rendering tasks to the highest-performance GPU in the system. Based on the determined identifier, the user driver constructs a call request. The call request contains data such as the identifier of the data processing device instance, the operation type, and parameters.

[0074] The user driver sends the request to the system kernel management framework to request a call to a specific data processing device instance. Specifically, the constructed call request can be sent to the system kernel management framework through the interface of the system kernel management framework.

[0075] The system kernel management framework receives a call request from a user driver, parses the data in the call request, obtains the identifier of the data processing device instance, and determines the specific device instance to be called. The system kernel management framework allocates the corresponding resources for the call request based on the current system status and resource availability.

[0076] After resource allocation is complete, the system kernel management framework forwards the call request to the instance scheduling management unit corresponding to the identifier, which then calls the corresponding data processing device instance to execute the data processing task. For example, the instance scheduling management unit sends the rendering command in the call request to a specific GPU to execute the rendering task.

[0077] In the disclosed embodiments, a user driver interacts with the system kernel management framework by sending a call request containing a specific device instance identifier, thereby invoking a specific data processing device instance. This allows the user driver to call multiple data processing device instances using only a single context resource, reducing the complexity and maintenance costs of the user driver and improving overall system efficiency and usability.

[0078] In one possible implementation, the system kernel management framework responds to the call request by sending the call request to a main instance scheduling management unit among multiple instance scheduling management units; the main instance scheduling management unit determines the target instance scheduling management unit corresponding to the identifier of the data processing device instance in the call request; when the target instance scheduling management unit is the main instance scheduling management unit, the main instance scheduling management unit calls the corresponding data processing device instance to process the request; when the target instance scheduling management unit is another instance scheduling management unit, the main instance scheduling management unit forwards the call request to the target instance scheduling management unit, and the target instance scheduling management unit calls the corresponding data processing device instance to process the request.

[0079] In this implementation, there is a master instance scheduling management unit among multiple strength scheduling management units. The master instance scheduling management unit directly interacts with the system kernel management framework, while other strength scheduling management units interact with the master strength scheduling management unit. The specific interaction method can be described in detail later.

[0080] As mentioned above, after receiving the call request from the user driver, the system kernel management framework will parse the identifier of the data processing device instance to be called contained in the request.

[0081] The system kernel management framework sends the call request to the master instance scheduling management unit among the multiple instance scheduling management units. Upon receiving the call request, the master instance scheduling management unit first parses the data processing device instance identifier in the request and, based on the parsed device instance identifier, searches its internal data structure or configuration for the corresponding instance scheduling management unit.

[0082] If the target instance scheduling management unit is the master instance scheduling management unit itself, the call request directly points to the data processing device instance managed by the master unit. In this case, the master unit will directly use its own resources or interfaces to call the corresponding data processing device instance to process the request.

[0083] If the target instance scheduling management unit is another instance scheduling management unit, the main unit will forward the call request to the target unit corresponding to the identifier. If the instance scheduling management units are distributed on different physical or logical nodes, the forwarding can be carried out through network communication.

[0084] The target instance scheduling management unit receives the call request from the main unit and uses its own resources or interfaces to call the corresponding data processing device instance (such as GPU) to process the request.

[0085] After the data processing device instance completes the request processing, the target instance scheduling management unit will collect the processing results and perform further processing or forward them to the system kernel management framework or user driver.

[0086] In the disclosed embodiment, the master instance scheduling management unit receives invocation requests from user drivers and, based on the device instance identifier in the request, determines and invokes the correct target instance scheduling management unit. This improves the flexibility and scalability of the system, enabling more efficient management and utilization of multiple data processing device instances.

[0087] In a possible implementation, the system kernel management framework creates a corresponding number of resource structures according to the number of data processing device instances, and the resource structures are used to store register resources and interrupt resources of multiple data processing device instances.

[0088] In order to facilitate each data processing device instance to store and access its key hardware resources, a corresponding resource structure may be created for each data processing device instance.

[0089] The number of data processing device instances may be the number of instances of data processing devices (eg, GPUs) currently available or configured in the system, and each instance may represent an independent hardware unit capable of performing data processing tasks.

[0090] The system kernel management framework dynamically creates the same number of resource structures as the number of data processing device instances detected or configured by the user. These resource structures are software-level data structures used to map and manage hardware resources in memory. Each resource structure can be used to store and manage register resources and interrupt resources for a specific data processing device instance.

[0091] Registers are special memory units used in hardware to store data and control information. In data processing devices such as GPUs, register resources are crucial for executing tasks such as graphics rendering and computing. Register resources can include information such as the register's base address, register size, and register access permissions (such as readable or writable). Resource structures record register resources so that data processing device instances can efficiently access and control them.

[0092] Interrupt resources include the resources required by the interrupt mechanism associated with data processing devices (such as GPUs). An interrupt is a signal sent by hardware to software, notifying it that a significant event has occurred (such as the completion of data processing or the occurrence of an error). Interrupt resources can include information such as the interrupt number (IRQ number), a pointer to the interrupt service routine (ISR), the interrupt priority, and the interrupt triggering method (such as edge-triggered or level-triggered). The resource structure records the interrupt resources required for interrupt handling, allowing the data processing device instance to respond to and handle interrupts in a timely manner.

[0093] In the disclosed embodiments, the system kernel management framework creates a corresponding number of resource structures based on the number of data processing device instances to store register resources and interrupt resources for multiple data processing device instances. This allows different data processing device instances to execute processing tasks based on register and interrupt resources. Furthermore, whether adding new device instances or removing old ones, the system dynamically adjusts resource allocation by creating or destroying corresponding resource structures. This supports device hot-swapping, dynamic resource management, and improved system scalability.

[0094] In a possible implementation, the instance scheduling management unit calls a corresponding data processing device instance to process a request based on the data stored in the created resource structure.

[0095] Each instance scheduling management unit can call the corresponding data processing device instance to process requests based on the data stored in its corresponding resource structure. For example, in a multi-GPU system, each GPU instance requires independent resources to ensure they can execute tasks in parallel without interfering with each other. By creating a separate resource structure for each GPU, the system can efficiently manage and schedule these resources.

[0096] Figure 2 The following is a schematic diagram of the structure of a data processing device management system provided according to an embodiment of the present disclosure. The GPU platform device side registers a data processing device node on the platform bus, and its corresponding data processing device port is represented as / dev / dri / card0. The driver side of the platform driver creates a corresponding number of GPU instance scheduling management units 0 to n according to the number of GPU instances, and links the GPU instance scheduling management units to the system kernel management framework through the interface drm_device of the system kernel management framework. In addition, the system kernel management framework creates a corresponding number of resource structures 0 to n according to the number of data processing device instances. Each resource structure is used to store register resources and interrupt resources of multiple data processing device instances.

[0097] Figure 3 A schematic diagram of the structure of a data processing device management system provided according to an embodiment of the present disclosure is shown. A user driver sends a GPU call request, which carries the identifier of the GPU scheduling management unit to be called. Based on the created context resource, the user driver calls the data processing device port / dev / dri / card0 exposed by the data processing device node in the kernel. The request is forwarded to GPU scheduling management unit 0 (the main instance scheduling management unit) through the interface drm_device of the system kernel management framework. GPU scheduling management unit 0 determines the GPU scheduling management unit that needs to execute the task based on the identifier of the GPU scheduling management unit and forwards the GPU call request to the corresponding GPU scheduling management unit. The GPU scheduling management unit that ultimately receives the GPU call request calls the corresponding GPU instance to perform task processing.

[0098] In one possible implementation, the management system may be run by an electronic device such as a terminal device or a server. The terminal device may be a user equipment (UE), a mobile device, a user terminal, a terminal, a cellular phone, a cordless phone, a personal digital assistant (PDA), a handheld device, a computing device, an in-vehicle device, a wearable device, etc. The system may be implemented by a processor invoking computer-readable instructions stored in a memory. Alternatively, the system may be implemented by a server.

[0099] In addition, the present disclosure also provides a data processing device management method, an electronic device, a computer-readable storage medium, and a program, all of which can be used to implement any data processing device management system provided by the present disclosure. The corresponding technical solutions and descriptions can be found in the corresponding records in the method section and will not be repeated here.

[0100] Figure 4 A flow chart showing a method for managing a data processing device according to an embodiment of the present disclosure is shown as follows: Figure 4 As shown, the method is applied to a data processing equipment management system, comprising:

[0101] In step S21, a data processing device port is registered on the platform bus;

[0102] In step S22, a corresponding number of instance scheduling management units are created according to the number of data processing device instances, and the instance scheduling management units are linked to the system kernel management framework through the interface of the system kernel management framework;

[0103] In step S23, the instance scheduling management unit is linked to the data processing device port;

[0104] In step S24, in response to a user-driven call request to the data processing device port, the data processing device instance is called through the instance scheduling management unit linked to the data processing device port.

[0105] The execution subject of this method is the data processing equipment management system provided by the present disclosure. The specific implementation of each step can be found in the relevant description in the system embodiment, which will not be repeated here.

[0106] In a possible implementation, the method further includes: obtaining the number of data processing device instances recorded in the private memory, and creating a corresponding number of instance scheduling management units.

[0107] In a possible implementation, the method further includes:

[0108] receiving a connection request sent by a user driver based on a data processing device port;

[0109] In response to the connection request, returning the number of data processing device instances to the user driver;

[0110] The user driver creates a context resource corresponding to the data processing device port, and the context resource is used to provide an isolated execution environment for multiple data processing device instances and maintain related resources required for calling multiple data processing device instances; the user driver calls the data processing device instances through the context resource based on the number of data processing device instances.

[0111] In a possible implementation, the method further includes:

[0112] Receiving a call request sent by a user driver, wherein the call request includes an identifier of a data processing device instance to be called;

[0113] In response to the call request, the data processing device instance is called based on the identifier of the data processing device instance.

[0114] In a possible implementation, in response to the call request, calling the data processing device instance based on the identifier of the data processing device instance includes:

[0115] In response to the call request, sending the call request to a master instance scheduling management unit among the multiple instance scheduling management units;

[0116] The master instance scheduling management unit determines a target instance scheduling management unit corresponding to the identifier of the data processing device instance in the call request;

[0117] In the case where the target instance scheduling management unit is the main instance scheduling management unit, the main instance scheduling management unit calls the corresponding data processing device instance to process the request;

[0118] When the target instance scheduling management unit is another instance scheduling management unit, the master instance scheduling management unit forwards the call request to the target instance scheduling management unit, and the target instance scheduling management unit calls the corresponding data processing device instance to process the request.

[0119] In a possible implementation, the method further includes:

[0120] A corresponding number of resource structures are created according to the number of data processing device instances, and the resource structures are used to store register resources and interrupt resources of multiple data processing device instances.

[0121] In a possible implementation, the method further includes:

[0122] Based on the data stored in the created resource structure, the corresponding data processing device instance is called to process the request.

[0123] This method has a specific technical connection with the internal structure of the computer system, and can solve the technical problem of how to improve the hardware computing efficiency or execution effect (including reducing the amount of data storage, reducing the amount of data transmission, increasing the hardware processing speed, etc.), thereby obtaining the technical effect of improving the internal performance of the computer system in accordance with the laws of nature.

[0124] In some embodiments, the functions or modules included in the method provided by the embodiments of the present disclosure can be used to implement the system described in the above system embodiment. Its specific implementation can refer to the description of the above system embodiment. For the sake of brevity, it will not be repeated here.

[0125] The present disclosure also provides a computer-readable storage medium having computer program instructions stored thereon, wherein the computer program instructions implement the above method when executed by a processor. The computer-readable storage medium may be a volatile or non-volatile computer-readable storage medium.

[0126] An embodiment of the present disclosure further proposes an electronic device, comprising: a processor; and a memory for storing instructions executable by the processor; wherein the processor is configured to call the instructions stored in the memory to implement the above system.

[0127] An embodiment of the present disclosure also provides a computer program product, including computer-readable code, or a non-volatile computer-readable storage medium carrying computer-readable code. When the computer-readable code runs in a processor of an electronic device, the processor in the electronic device implements the above-mentioned system.

[0128] The electronic device may be provided as a terminal, a server, or other forms of devices.

[0129] Figure 5 FIG1 shows a block diagram of an electronic device 1900 according to an embodiment of the present disclosure. For example, the electronic device 1900 can be provided as a server or a terminal device. Figure 5 The electronic device 1900 includes a processing component 1922, which further includes one or more processors, and a memory resource represented by a memory 1932 for storing instructions executable by the processing component 1922, such as an application. The application stored in the memory 1932 may include one or more modules, each corresponding to a set of instructions. In addition, the processing component 1922 is configured to execute the instructions to perform the above-described method.

[0130] The electronic device 1900 may further include a power supply component 1926 configured to perform power management of the electronic device 1900, a wired or wireless network interface 1950 configured to connect the electronic device 1900 to a network, and an input / output (I / O) interface 1958. The electronic device 1900 may operate based on an operating system stored in the memory 1932, such as a Microsoft Server operating system (Windows Server 2003). TM ), a graphical user interface operating system launched by Apple (Mac OSX TM ), a multi-user, multi-process computer operating system (Unix TM ), a free and open source Unix-like operating system (Linux TM ), an open-source Unix-like operating system (FreeBSD TM ) or similar.

[0131] In an exemplary embodiment, a non-volatile computer-readable storage medium is also provided, such as a memory 1932 including computer program instructions that can be executed by the processing component 1922 of the electronic device 1900 to perform the above method.

[0132] The present disclosure may be a system, method and / or computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for causing a processor to implement various aspects of the present disclosure.

[0133] Computer-readable storage media can be a tangible device that can hold and store the instructions used by the instruction execution device. Computer-readable storage media can be, for example, (but not limited to) an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. More specific examples (non-exhaustive list) of computer-readable storage media include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, for example, a punch card or a convex structure in a groove on which instructions are stored, and any suitable combination thereof. Computer-readable storage media used herein is not interpreted as a transient signal itself, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagated by waveguides or other transmission media (for example, light pulses by fiber optic cables), or electrical signals transmitted by wires.

[0134] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in the computer-readable storage medium in each computing / processing device.

[0135] The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, and conventional procedural programming languages ​​such as "C" language or similar programming languages. Computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer, partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., utilizing an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be personalized by utilizing the state information of the computer-readable program instructions. The electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present disclosure.

[0136] Various aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.

[0137] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processor of the computer or other programmable data processing device, a device is generated that implements the functions / actions specified in one or more blocks in the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, where these instructions cause the computer, programmable data processing device, and / or other device to operate in a specific manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks in the flowchart and / or block diagram.

[0138] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more blocks in the flowchart and / or block diagram.

[0139] The flow charts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the systems, methods and computer program products according to multiple embodiments of the present disclosure. In this regard, each box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and the part of the module, program segment or instruction contains one or more executable instructions for realizing the prescribed logical function. In some alternative implementations, the functions marked in the box can also occur in a sequence different from that marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a dedicated hardware-based system that performs the prescribed function or action, or can be implemented by a combination of dedicated hardware and computer instructions.

[0140] The computer program product may be implemented in hardware, software, or a combination thereof. In one embodiment, the computer program product is implemented as a computer storage medium. In another embodiment, the computer program product is implemented as a software product, such as a software development kit (SDK).

[0141] The above description of the various embodiments tends to emphasize the differences between the various embodiments. The same or similar aspects can be referenced with each other and will not be repeated herein for the sake of brevity.

[0142] Those skilled in the art will understand that in the above-mentioned method of the specific implementation method, the writing order of each step does not mean a strict execution order and does not constitute any limitation on the implementation process. The specific execution order of each step should be determined by its function and possible internal logic.

[0143] If the technical solution of this application involves personal information, the product that applies the technical solution of this application has clearly informed the personal information processing rules and obtained the individual's voluntary consent before processing personal information. If the technical solution of this application involves sensitive personal information, the product that applies the technical solution of this application has obtained the individual's separate consent before processing sensitive personal information, and at the same time meets the "explicit consent" requirement. For example, on personal information collection devices such as cameras, a clear and prominent sign is set to inform that the personal information collection scope has been entered and personal information will be collected. If the individual voluntarily enters the collection scope, it is deemed that they agree to the collection of their personal information; or on the personal information processing device, when the personal information processing rules are notified by obvious signs / information, the individual's authorization is obtained through pop-up information or by asking the individual to upload their personal information; among which, the personal information processing rules may include information such as the personal information processor, the purpose of personal information processing, the processing method, and the type of personal information processed.

[0144] While various embodiments of the present disclosure have been described above, the above descriptions are illustrative, non-exhaustive, and not intended to be limiting of the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is selected to best explain the principles of the embodiments, their practical applications, or improvements to existing technologies, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. A data processing equipment management system, characterized in that: include: The device side of the platform driver registers a data processing device port on the platform bus; The driver side of the platform driver creates a corresponding number of instance scheduling management units according to the number of data processing device instances, and links the instance scheduling management units to the system kernel management framework through the interface of the system kernel management framework; A system kernel management framework, linking the instance scheduling management unit with the data processing device port; The system kernel management framework, in response to a user-driven call request to the data processing device port, calls the data processing device instance through the instance scheduling management unit linked to the data processing device port.

2. The management system according to claim 1, characterized in that: The driver end of the platform driver obtains the number of data processing device instances recorded in the private memory and creates a corresponding number of instance scheduling management units.

3. The management system according to claim 1, characterized in that: The user driver sends a connection request to the data processing device port; The system kernel management framework returns the number of data processing device instances to the user driver in response to the connection request; The user driver creates a context resource corresponding to the data processing device port, wherein the context resource is used to provide an isolated execution environment for multiple data processing device instances and maintain related resources required for calling multiple data processing device instances; The user driver calls the data processing device instance through the context resource based on the number of the data processing device instance.

4. The management system according to claim 1, characterized in that: The user driver sends a call request to the system kernel management framework, wherein the call request includes an identifier of the data processing device instance to be called; The system kernel management framework calls the data processing device instance in response to the calling request and based on the identifier of the data processing device instance.

5. The management system according to claim 1, characterized in that: The system kernel management framework sends the calling request to a master instance scheduling management unit among the multiple instance scheduling management units in response to the calling request; The master instance scheduling management unit determines a target instance scheduling management unit corresponding to the identifier of the data processing device instance in the call request; In the case where the target instance scheduling management unit is the main instance scheduling management unit, the main instance scheduling management unit calls the corresponding data processing device instance to process the request; When the target instance scheduling management unit is another instance scheduling management unit, the master instance scheduling management unit forwards the call request to the target instance scheduling management unit, and the target instance scheduling management unit calls the corresponding data processing device instance to process the request.

6. The management system according to claim 1, characterized in that: The system kernel management framework creates a corresponding number of resource structures according to the number of data processing device instances. The resource structures are used to store register resources and interrupt resources of multiple data processing device instances.

7. The management system according to claim 6, characterized in that: The instance scheduling management unit calls the corresponding data processing device instance to process the request based on the data stored in the created resource structure.

8. A data processing equipment management method, characterized in that: Applied to data processing equipment management systems, including: Register a data processing device port on the platform bus; Creating a corresponding number of instance scheduling management units according to the number of data processing device instances, and linking the instance scheduling management units to the system kernel management framework through the interface of the system kernel management framework; linking the instance scheduling management unit to the data processing device port; In response to a user-driven call request to the data processing device port, the data processing device instance is called through the instance scheduling management unit linked to the data processing device port.

9. An electronic device, characterized in that: include: processor; a memory for storing processor-executable instructions; The processor is configured to call the instructions stored in the memory to execute the system according to any one of claims 1 to 7.

10. A computer-readable storage medium having computer program instructions stored thereon, characterized in that: When the computer program instructions are executed by a processor, the system according to any one of claims 1 to 7 is implemented.