Driver upgrade method, apparatus, device, storage medium, and program product

By binding an independent driver to each GPU, the problem of long host driver upgrade cycles caused by long-term GPU occupancy in cloud providers is solved, achieving more efficient driver upgrades.

WO2026021257A1PCT designated stage Publication Date: 2026-01-29CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PTE LTD +1
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/107380
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-25
Filing Date
2025-07-07
Publication Date
2026-01-29

AI Technical Summary

Technical Problem

In the working scenarios of cloud vendors, existing technologies require a long time for host driver upgrades due to the long-term occupation of GPUs by virtual machines, resulting in long upgrade cycles and significant economic losses.

Method used

Each GPU is bound to an independent driver. By obtaining driver upgrade instructions, the target GPU is identified and the driver is upgraded when it is not occupied by a virtual machine, thus avoiding granular upgrades of the entire electronic device.

Benefits of technology

It shortens the driver upgrade cycle, avoids economic losses caused by waiting for upgrades, and improves upgrade efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025107380_29012026_PF_FP_ABST
    Figure CN2025107380_29012026_PF_FP_ABST
Patent Text Reader

Abstract

The present invention provides a driver upgrade method, an apparatus, a device, a storage medium, and a program product. An electronic device comprises a plurality of graphics processing units, and the graphics processing units each correspond to a current driver. The method comprises: acquiring a driver upgrade instruction of a plurality of graphics processing units, the driver upgrade instruction comprising a target version number; according to the driver upgrade instruction, determining whether a target graphics processing unit is present among the plurality of graphics processing units, the target version number being greater than a current version number of a current driver corresponding to the target graphics processing unit; and if the target graphics processing unit is present, when the target graphics processing unit is in a working state in which the target graphics processing unit is not occupied by a virtual machine, determining a target driver corresponding to the target graphics processing unit, and performing driver upgrade processing on the target graphics processing unit on the basis of the target driver. The upgrade method of the present invention allows for initiation of upgrade without waiting for all graphics processing units in an electronic device to be unoccupied by a virtual machine, thereby shortening the upgrade cycle of a host driver.
Need to check novelty before this filing date? Find Prior Art

Description

Driver upgrade methods, devices, equipment, storage media and program products

[0001] This disclosure claims priority to Chinese Patent Application No. 202411004460.1, filed with the China Patent Office on July 25, 2024, entitled “Drive Upgrade Method, Apparatus, Device, Storage Medium and Program Product”, the entire contents of which are incorporated herein by reference. Technical Field

[0002] This disclosure relates to the field of computers, and more particularly to a driver upgrade method, apparatus, device, storage medium, and program product. Background Technology

[0003] Electronic devices can run virtual machines with virtual graphics processing units (VGPUs) (hereinafter referred to as VGPU VMs). A VGPU VM is a low-cost GPU virtual machine that divides a physical GPU into smaller VGPUs, such as 1 / 2 or 1 / 3 of a VGPU, according to customer needs, thereby reducing the price while still meeting customer requirements.

[0004] In related technologies, running VGPUs in a VM requires a host driver. Since a single host driver drives all GPUs on an electronic device, upgrading the host driver requires waiting until all GPUs are free of virtual machines before uninstalling the old host driver and installing the new one. However, in cloud vendor scenarios, any GPU may have a virtual machine running on it for an extended period, necessitating a long wait (even years) before all GPUs are free of virtual machines for upgrades, resulting in a lengthy upgrade cycle. Summary of the Invention

[0005] This disclosure provides a driver upgrade method, apparatus, device, storage medium, and program product that no longer binds multiple GPUs to a single driver, but instead binds each GPU to an independent driver. This avoids upgrading drivers at the granular level of the entire electronic device and instead upgrades drivers at the granular level of a single GPU, thus solving the problem of long upgrade cycles.

[0006] In a first aspect, embodiments of this disclosure provide a driver upgrade method, wherein the electronic device includes a plurality of graphics processors, each graphics processor corresponding to a current driver, and the method includes:

[0007] Obtain the driver upgrade instructions for the plurality of graphics processors, wherein the driver upgrade instructions include the target version number;

[0008] According to the driver upgrade instruction, it is determined whether there is a target graphics processor among the plurality of graphics processors, wherein the target version number is higher than the current version number of the current driver corresponding to the target graphics processor;

[0009] If the target graphics processor exists, then when the target graphics processor is in an unoccupied state by a virtual machine, the target driver corresponding to the target graphics processor is determined, and the driver upgrade process for the target graphics processor is performed according to the target driver.

[0010] In one possible implementation, the electronic device includes a preset storage space; determining the target driver corresponding to the target graphics processor includes:

[0011] If the driver corresponding to the target version number does not exist in the preset storage space, then the target initial driver corresponding to the target graphics processor is obtained, and the target initial driver is updated to obtain the target driver;

[0012] If the driver corresponding to the target version number exists in the preset storage space, then the driver corresponding to the target version number is determined as the target driver.

[0013] In one possible implementation, updating the target initial driver to obtain the target driver includes:

[0014] The kernel module file in the target initial driver is renamed to obtain the first target kernel module file;

[0015] The source code file corresponding to the target initial driver is updated to obtain the target source code file;

[0016] A second target kernel module file is generated by compiling the target source code file.

[0017] The target driver is determined based on the first target kernel module file and the second target kernel module file, wherein the target driver includes the first target kernel module file and the second target kernel module file.

[0018] In one possible implementation, the source code file corresponding to the target initial driver is updated to obtain the target source code file, including:

[0019] The character device number is determined in the source code file, and the character device number is updated.

[0020] In the source code file, at least one executable program symbol to be updated is identified, and the at least one executable program symbol to be updated is updated to at least one target executable program symbol to obtain the target source code file.

[0021] In one possible implementation, updating any executable program symbol to be updated to the target executable program symbol includes:

[0022] Add the target version number to the executable symbol to be updated to obtain the target executable symbol; or,

[0023] A preset character is determined from the executable symbol to be updated, and the preset character is updated to the target version number to obtain the target executable symbol.

[0024] In one possible implementation, identifying at least one executable symbol to be updated in the source code file includes:

[0025] In the preset storage space, determine the current driver corresponding to the target graphics processor;

[0026] In the current source code file corresponding to the current driver, at least one currently executable program symbol is identified;

[0027] Based on the at least one currently executable program symbol, determine the at least one executable program symbol to be updated in the source code file.

[0028] In one possible implementation, the kernel module file is renamed to obtain a first target kernel module file, including:

[0029] Determine the filename of the kernel module file;

[0030] A preset character is determined in the file name, and the preset character is updated to the target version number to obtain the target file name;

[0031] The filename of the kernel module file is updated to the target filename to obtain the first target kernel module file.

[0032] In one possible implementation, after obtaining the target driver, the method further includes:

[0033] The target driver is stored in the preset storage space.

[0034] In one possible implementation, performing a driver upgrade process on the target graphics processor according to the target driver includes:

[0035] Execute the driver unbinding command to unbind the target graphics processor from the corresponding current driver;

[0036] Execute the driver binding instruction to bind the target driver to the target graphics processor individually, so as to perform driver upgrade processing on the target graphics processor.

[0037] In one possible implementation, determining whether a target graphics processor exists among the plurality of graphics processors according to the driver upgrade instruction includes:

[0038] Among the current drivers corresponding to the plurality of graphics processors, it is determined whether there is a driver to be upgraded, wherein the driver to be upgraded is a current driver whose current version number is lower than the target version number;

[0039] If so, then among the plurality of graphics processors, the graphics processor corresponding to the driver to be upgraded is determined as the target graphics processor, and it is determined that the target graphics processor exists;

[0040] If not, then the target graphics processor does not exist.

[0041] Secondly, embodiments of this disclosure provide a driver upgrade device. The electronic device includes multiple graphics processors, and the device includes: an acquisition module, a first determination module, a second determination module, and an upgrade module, wherein...

[0042] The acquisition module is used to acquire the driver upgrade instructions of the plurality of graphics processors, wherein the driver upgrade instructions include a target version number;

[0043] The first determining module is used to determine, according to the driver upgrade instruction, whether there is a target graphics processor among the plurality of graphics processors, wherein the target version number is higher than the current version number of the current driver corresponding to the target graphics processor;

[0044] The second determining module is used to determine the target driver corresponding to the target graphics processor when the target graphics processor is in an unoccupied state.

[0045] The upgrade module is used to perform driver upgrade processing on the target graphics processor according to the target driver.

[0046] Thirdly, embodiments of this disclosure provide an electronic device, including: a memory and a processor;

[0047] The memory stores computer-executed instructions;

[0048] The processor executes computer execution instructions stored in the memory, causing the processor to perform the method described in any of the first aspects.

[0049] Fourthly, embodiments of this disclosure provide a computer-readable storage medium storing computer-executable instructions that, when executed by a processor, are used to implement the method described in any of the first aspects.

[0050] Fifthly, embodiments of this disclosure provide a computer program product, including a computer program that, when executed by a processor, implements the method shown in any of the first aspects.

[0051] This disclosure provides a driver upgrade method, apparatus, device, storage medium, and program product. An electronic device can obtain driver upgrade instructions from multiple GPUs and, based on these instructions, determine whether a target GPU exists among the multiple GPUs. If a target GPU exists, and its working state is not occupied by a virtual machine, the electronic device can determine the target driver corresponding to the target GPU and perform driver upgrade processing on the target GPU based on the target driver. Since each GPU independently corresponds to a current driver, during driver upgrades, it is only necessary to wait until the target GPU is not occupied by a virtual machine to upgrade the current driver corresponding to the target GPU to the target driver. This eliminates the need to wait until all GPUs in the electronic device are not occupied by virtual machines before upgrading, thus shortening the upgrade cycle. Attached Figure Description

[0052] The accompanying drawings, which are included to provide a further understanding of this disclosure and form part of this disclosure, illustrate exemplary embodiments of the present disclosure and are used to explain the disclosure, but do not constitute an undue limitation of the disclosure. In the drawings:

[0053] Figure 1 is a schematic diagram of the related technologies provided in this disclosure;

[0054] Figure 2 is a schematic diagram of a scenario provided by an exemplary embodiment of this disclosure;

[0055] Figure 3 is a flowchart illustrating a driver upgrade method provided by an exemplary embodiment of this disclosure;

[0056] Figure 4 is a flowchart illustrating another driver upgrade method provided by an exemplary embodiment of this disclosure;

[0057] Figure 5 is a flowchart illustrating another driver upgrade method provided by an exemplary embodiment of this disclosure;

[0058] Figure 6 is a schematic diagram illustrating the determination of the target GPU according to an embodiment of this disclosure;

[0059] Figure 7 is a schematic diagram of the structure of a drive upgrade device provided in an embodiment of this disclosure;

[0060] Figure 8 is a schematic diagram of another drive upgrade device provided in an exemplary embodiment of this disclosure;

[0061] Figure 9 is a schematic diagram of the structure of an electronic device provided by an exemplary embodiment of this disclosure. Detailed Implementation

[0062] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this disclosure are all information and data authorized by the user or fully authorized by all parties. Furthermore, the collection, use and processing of the relevant data must comply with relevant laws, regulations and standards, and corresponding operation entry points are provided for users to choose to authorize or refuse.

[0063] To make the objectives, technical solutions, and advantages of this disclosure clearer, the technical solutions of this disclosure will be clearly and completely described below in conjunction with specific embodiments and corresponding drawings. Obviously, the described embodiments are only a part of the embodiments of this disclosure, and not all of them. All other embodiments obtained by those skilled in the art based on the embodiments of this disclosure without creative effort are within the scope of protection of this disclosure.

[0064] To facilitate understanding of the technical solutions disclosed herein, the concepts involved in this disclosure will first be explained.

[0065] (1) Virtual Machine (VM): A computer simulated using software.

[0066] (2) Graphics Processing Unit (GPU): A physical processor specifically designed for processing graphics and image calculations.

[0067] (3) VGPU: A GPU simulated using software. A physical CPU is divided into several virtual GPUs, which are called VGPUs and can be used in different VMs.

[0068] (4) Host driver: The driver installed on the Host operating system to implement the VGPU function.

[0069] (5) Target GPU: refers to the GPU that needs driver upgrade.

[0070] (6) Current driver: refers to the driver currently being used by the target GPU. The version number of the current driver can be referred to as the current version number.

[0071] (7) The driver to be upgraded refers to the current driver whose current version number is lower than the target version number.

[0072] (8) Target initial driver: refers to the initial driver used to upgrade the target GPU.

[0073] (9) Target driver: This refers to the final driver used to upgrade the target GPU. The version number of the target driver can be called the target version number.

[0074] It should be noted that in the embodiments of this disclosure, the current driver, the driver to be upgraded, the target initial driver, and the target driver mentioned above are all Host drivers; and the drivers mentioned in this disclosure all refer to Host drivers.

[0075] (10) Driver upgrade instruction: refers to the instruction to upgrade the host driver of the GPU, and is used to instruct multiple GPUs in an electronic device to upgrade the host driver.

[0076] (11) Preset storage space: This is the space used to store the Host driver. For example, the preset storage space can be space in memory or on the disk.

[0077] (12) Source code file: refers to the file containing the source code corresponding to the target initial driver.

[0078] (13) Target source code file: refers to the file after the source code file has been updated.

[0079] (14) First target kernel module file: This is the file after the kernel module file in the target initial driver has been renamed.

[0080] (15) Second target kernel module file: refers to the file generated by compiling the target source code file.

[0081] (16) The current source code file refers to the file where the source code corresponding to the current driver is located.

[0082] (17) The default character can be defined manually. For example, the default character can be "abcd" in the file name nabcd.ko.

[0083] The relevant technologies will now be explained in detail with reference to Figure 1.

[0084] Figure 1 is a schematic diagram of the related technology provided in this disclosure. Referring to Figure 1, the electronic device may include four GPUs, namely GPU1, GPU2, GPU3, and GPU4. These four GPUs share a single host driver.

[0085] Virtual machine 1 contains VGPU1, and virtual machine 2 contains VGPU2. VGPU1 and VGPU2 depend on the host driver of GPU2. In other words, virtual machine 1 and virtual machine 2 use GPU2.

[0086] When the Host driver needs to be upgraded, GPU2 is occupied by a virtual machine, and upgrading the Host driver requires uninstalling the original Host driver, which would render Virtual Machine 1 and Virtual Machine 2 unusable. Therefore, in related technologies, the Host driver upgrade can only be performed when all four GPUs are no longer occupied by virtual machines. Thus, these technologies have the following drawbacks:

[0087] (1) The virtual machines on cloud vendor servers are usually used for several months or even years. Therefore, it takes a long time to meet the condition that all GPUs are not occupied by virtual machines before upgrading, resulting in a long cycle for driver upgrades.

[0088] (2) During the waiting period, the electronic device should be locked to prevent the creation of new virtual machines on the electronic device, which could result in significant economic losses.

[0089] The application scenarios of this disclosure will be explained below with reference to Figure 2.

[0090] Figure 2 is a schematic diagram of a scenario provided by an exemplary embodiment of this disclosure. Referring to Figure 2, the electronic device may include four GPUs, namely GPU1, GPU2, GPU3 and GPU4.

[0091] For any given GPU, there is one host driver. As shown in Figure 2, GPU1, GPU2, GPU3, and GPU4 can each correspond to one host driver.

[0092] When it is necessary to upgrade the driver for GPU4, you can unbind GPU4 from the corresponding Host driver 1, and then upgrade the driver for GPU4 to Host driver 2.

[0093] In this embodiment, each GPU corresponds to an independent Host driver, allowing driver upgrades to be performed on a per-GPU basis. During driver upgrades, the current driver for the target GPU can be upgraded to the target driver as soon as the target GPU is no longer occupied by a virtual machine, eliminating the need to wait until all GPUs in the electronic device are free from virtual machine usage, thus shortening the upgrade cycle.

[0094] The technical solutions disclosed herein will now be described in detail through specific embodiments. It should be noted that the following embodiments may exist independently or in combination with each other; identical or similar content will not be repeated in different embodiments.

[0095] The execution subject of this disclosure can be an electronic device or a driver upgrade device installed in an electronic device. The driver upgrade device can be implemented in software or a combination of software and hardware. The driver upgrade device can be a processor in the electronic device. For ease of understanding, the following description will use an electronic device as the execution subject.

[0096] Figure 3 is a flowchart illustrating a driver upgrade method provided by an exemplary embodiment of this disclosure. Referring to Figure 3, the method may include:

[0097] S301: The electronic device obtains driver upgrade instructions for multiple GPUs, with each GPU corresponding to a current driver.

[0098] An electronic device may include multiple GPUs, each of which independently corresponds to a current driver.

[0099] Electronic devices can obtain driver upgrade instructions, which can be used to instruct multiple GPUs in the electronic device to perform host driver upgrades.

[0100] The driver upgrade command can include the target version number. The target version number refers to the version number of the target driver, which is the host driver.

[0101] S302. The electronic device determines whether the target GPU exists among multiple GPUs based on the driver upgrade instruction.

[0102] The target GPU refers to the GPU that requires a driver upgrade.

[0103] Since electronic devices include multiple GPUs, some GPUs may already have updated drivers (i.e., no further driver update is needed), while others may not have updated drivers (i.e., host driver update is required). Therefore, it is necessary to determine whether the target GPU exists among the multiple GPUs. If it exists, step S303 can be executed; if it does not exist, no driver update is needed, i.e., step S303 does not need to be executed.

[0104] The target GPU has a corresponding current driver. The current version number of the current driver is lower than the target version number.

[0105] If, among multiple GPUs, there is a GPU whose current driver version number is the same as the target version number, it means that the driver for that GPU has already been upgraded and there is no need to upgrade it again. In this case, the GPU is not the target GPU. If, among multiple GPUs, there is a GPU whose current driver version number is lower than the target version number, it means that the driver for that GPU has not yet been upgraded. In this case, the GPU is the target GPU.

[0106] For example, if an electronic device includes GPU1, GPU2, GPU3, and GPU4, where the current driver for GPU1 and GPU2 is driver 010 with a current version number of 010, and the current driver for GPU3 and GPU4 is driver 021 with a current version number of 021; if the target version number is "021", then since the current version number of the current driver for GPU1 and GPU2 is 010, which is lower than the target version number, GPU1 and GPU2 can be identified as the target GPUs, and GPU3 and GPU4 can be identified as non-target GPUs.

[0107] S303. When the target GPU is in an unoccupied state, the electronic device determines the target driver corresponding to the target GPU and performs driver upgrade processing on the target GPU based on the target driver.

[0108] Since the target GPU may be occupied by a virtual machine, its operating state can include either a virtual machine-occupied state or a virtual machine-unoccupied state. A virtual machine-occupied state refers to the target GPU being used by a virtual machine; an virtual machine-unoccupied state refers to the target GPU not being used by a virtual machine.

[0109] When upgrading the driver for a target GPU, in order not to affect the virtual machine that is using the target GPU, the driver upgrade process must be performed only when the target GPU is not being used by a virtual machine.

[0110] The electronic device can determine whether the target GPU is being used by a virtual machine. If so, the electronic device can determine that the target GPU is being used by a virtual machine; if not, the electronic device can determine that the target GPU is not being used by a virtual machine.

[0111] Electronic devices may include pre-defined storage space, which can be used to store host drives. For example, the pre-defined storage space can be the memory in the electronic device.

[0112] When the target GPU is in an unoccupied state by a virtual machine, the target driver corresponding to the target GPU can be determined, which may include the following two cases:

[0113] Case 1: The driver corresponding to the target version number does not exist in the preset storage space.

[0114] In this case, the electronic device can obtain the target initial driver corresponding to the target GPU and update the target initial driver to obtain the target driver.

[0115] The version number of the target initial driver is higher than the current version number of the current driver corresponding to the target GPU, but lower than the target version number. For example, if the current version number of the current driver of GPU1 can be 010, and the target version number can be 021, then the version number of the target initial driver can be 020.

[0116] Since the target initial driver may conflict with the current driver, the target initial driver needs to be updated to obtain the target driver in order to avoid conflict with the current driver.

[0117] For example, if the target version number is "021", and the preset storage space does not have a driver corresponding to the target version number 021, the electronic device can obtain the target initial driver (e.g., driver 020) and update the target initial driver to obtain the target driver (i.e., driver 021).

[0118] Scenario 2: The driver corresponding to the target version number exists in the preset storage space.

[0119] In this case, it means that before upgrading the target GPU, the other GPUs in the electronic device have already been upgraded according to the target driver. Therefore, the driver corresponding to the target version number already exists in the preset storage space, so the electronic device can identify the driver corresponding to the target version number as the target driver.

[0120] For example, if driver 021 is stored in the preset storage space, and the target version number is "021", then the driver corresponding to the target version number 021 in the preset storage space, i.e., driver 021, can be identified as the target driver.

[0121] Once the target driver is determined, the driver upgrade process can be performed on the target GPU. For example, if the target GPU is GPU1, then the driver upgrade process for GPU1 can be performed according to driver 021.

[0122] In this embodiment, the electronic device can obtain driver upgrade instructions from multiple GPUs and determine whether a target GPU exists among the multiple GPUs based on the driver upgrade instructions. If a target GPU exists, and the target GPU is in an unoccupied state by a virtual machine, the electronic device can determine the target driver corresponding to the target GPU and perform driver upgrade processing on the target GPU based on the target driver. Since each GPU corresponds to a current driver, when performing a driver upgrade, it is only necessary to wait until the target GPU is not occupied by a virtual machine before upgrading the current driver corresponding to the target GPU to the target driver. It is not necessary to wait until all GPUs in the electronic device are unoccupied by virtual machines before upgrading, thus shortening the upgrade cycle; and avoiding economic losses caused by some GPUs being locked for a long time during the waiting period.

[0123] If the electronic device is a cloud server, then this disclosure also provides a driver upgrade method.

[0124] Figure 4 is a flowchart illustrating another driver upgrade method provided by an exemplary embodiment of this disclosure. Referring to Figure 4, the method may include:

[0125] S401: The cloud server obtains driver upgrade instructions for multiple GPUs, with each GPU corresponding to a current driver.

[0126] A cloud server can include multiple GPUs, and each GPU can independently correspond to a current driver. The current driver can be a host driver.

[0127] The cloud server can obtain driver upgrade instructions, which can be used to instruct multiple GPUs in the cloud server to upgrade their host drivers.

[0128] The driver upgrade command can include a target version number. The target version number refers to the version number of the target driver, which can be a host driver.

[0129] S402: The cloud server determines whether the target GPU exists among multiple GPUs based on the driver upgrade instruction.

[0130] The target GPU refers to the GPU that requires a driver upgrade.

[0131] Since a cloud server includes multiple GPUs, some GPUs may already have updated drivers (meaning no further driver updates are needed), while others may not have updated drivers (meaning driver updates are required). Therefore, it is necessary to determine whether the target GPU exists among the multiple GPUs. If it exists, step S403 can be executed; if it does not exist, no driver update is needed, and step S403 does not need to be executed.

[0132] The target GPU has a corresponding current driver. The target version number can be higher than the current version number of the current driver.

[0133] If, among multiple GPUs, there is a GPU whose current driver version number is the same as the target version number, it means that the driver for that GPU has already been upgraded and there is no need to upgrade it again. In this case, the GPU is not the target GPU. If, among multiple GPUs, there is a GPU whose current driver version number is lower than the target version number, it means that the driver for that GPU has not yet been upgraded. In this case, the GPU is the target GPU.

[0134] For example, if a cloud server includes GPU1, GPU2, GPU3, and GPU4, where the current driver for GPU1 and GPU2 is driver 010 with a current version number of 010, and the current driver for GPU3 and GPU4 is driver 021 with a current version number of 021, and the target version number is "021", then since the current version number of the current driver for GPU1 and GPU2 is 010, which is lower than the target version number, GPU1 and GPU2 can be identified as the target GPUs, and GPU3 and GPU4 can be identified as non-target GPUs.

[0135] S403. When the target GPU is not occupied by a virtual machine, the cloud server determines the target driver corresponding to the target GPU and performs driver upgrade processing on the target GPU according to the target driver.

[0136] Since the target GPU may be occupied by a virtual machine, the operating state of the target GPU can include a virtual machine occupied state or an unoccupied state.

[0137] When upgrading the driver for a target GPU, in order not to affect the virtual machine that is using the target GPU, the driver upgrade process must be performed only when the target GPU is not being used by a virtual machine.

[0138] The cloud server can determine whether the target GPU is being used by a virtual machine. If so, the cloud server can determine that the target GPU is being used by a virtual machine; if not, the cloud server can determine that the target GPU is not being used by a virtual machine.

[0139] The cloud server may include pre-defined storage space, which can be used to store the host drive. For example, the pre-defined storage space can be a disk within the cloud server.

[0140] When the target GPU is in an unoccupied state by a virtual machine, the target driver corresponding to the target GPU can be determined, which may include the following two cases:

[0141] Case 1: The driver corresponding to the target version number does not exist in the preset storage space.

[0142] In this case, the cloud server can obtain the target initial driver corresponding to the target GPU and update the target initial driver to obtain the target driver.

[0143] Since the target initial driver may conflict with the current driver, the target initial driver needs to be updated to obtain the target driver in order to avoid conflict with the current driver.

[0144] For example, if the target version number is "021", and the preset storage space does not have a driver corresponding to the target version number 021, the cloud server can obtain the target initial driver (for example, driver 020) and update the target initial driver to obtain the target driver (i.e., driver 021).

[0145] Scenario 2: The driver corresponding to the target version number exists in the preset storage space.

[0146] In this case, it means that before upgrading the target GPU, the other GPUs in the cloud server have already been upgraded according to the target driver. Therefore, the driver corresponding to the target version number already exists in the preset storage space, i.e., the target driver. The cloud server can then identify the driver corresponding to the target version number as the target driver.

[0147] For example, if driver 021 is stored in the preset storage space, and the target version number is "021", then the driver corresponding to the target version number 021 in the preset storage space, i.e., driver 021, can be identified as the target driver.

[0148] In this embodiment, the cloud server can obtain driver upgrade instructions from multiple GPUs and determine whether a target GPU exists among them based on the driver upgrade instructions. If a target GPU exists, and the target GPU is not occupied by a virtual machine, the cloud server can determine the target driver corresponding to the target GPU and perform driver upgrade processing on the target GPU based on the target driver. Since each GPU corresponds to a current driver, when performing a driver upgrade, it is only necessary to wait until the target GPU is not occupied by a virtual machine to upgrade the current driver corresponding to the target GPU to the target driver. It is not necessary to wait until all GPUs in the cloud server are not occupied by virtual machines before the upgrade can be performed, thus shortening the upgrade cycle; and avoiding economic losses caused by some GPUs being locked for a long time during the waiting period.

[0149] Below, based on any of the above embodiments and with reference to Figure 5, the above driver upgrade method will be described in detail.

[0150] Figure 5 is a flowchart illustrating another driver upgrade method provided by an exemplary embodiment of this disclosure. Referring to Figure 5, the method may include:

[0151] S501: Obtain driver upgrade instructions for multiple GPUs, with each GPU corresponding to a current driver.

[0152] It should be noted that the execution process of step S501 can be referred to the execution process of step S301, and will not be repeated here.

[0153] S502. Based on the driver upgrade instructions, determine whether the target GPU exists among multiple GPUs.

[0154] If yes, then steps S503 to S513 can be executed; otherwise, steps S503 to S513 do not need to be executed.

[0155] In one optional embodiment, the existence of a target GPU among multiple GPUs can be determined according to the driver upgrade instruction in the following manner: among the current drivers corresponding to the multiple GPUs, it is determined whether there is a driver to be upgraded; if so, the GPU corresponding to the driver to be upgraded is determined as the target GPU among the multiple GPUs, and it is determined that the target GPU exists; if not, it is determined that the target GPU does not exist.

[0156] The driver to be upgraded refers to the current driver whose current version number is lower than the target version number.

[0157] The target GPU will now be explained with reference to Figure 6.

[0158] Figure 6 is a schematic diagram illustrating the determination of the target GPU according to an embodiment of this disclosure.

[0159] For example, as shown in Figure 6, the electronic device can determine that the current driver corresponding to GPU1 and GPU2 is driver 010, and the current version number is 010; the current driver corresponding to GPU3 and GPU4 is driver 021, and the current version number is 021; if the target version number is 021, then since the current version number of the current driver of GPU1 and GPU2 is 010, which is lower than the target version number, GPU1 and GPU2 can be identified as the target GPU.

[0160] S503. Determine whether the target GPU is in a state where it is not occupied by a virtual machine.

[0161] If yes, then proceed to step S504; otherwise, no further steps are required, i.e., steps S503 to S513.

[0162] S504. Determine whether the driver corresponding to the target version number exists in the preset storage space.

[0163] If yes, then execute S505; otherwise, execute S506.

[0164] For example, if the target GUP is GPU1 and the target version number is 021, then for GPU1, when GPU1 is in a working state that is not occupied by a virtual machine, if the electronic device determines that the preset storage space contains a driver corresponding to the target version number 021, then S505 can be executed; if the electronic device determines that the preset storage space does not contain a driver corresponding to the target version number 021, then S506 can be executed.

[0165] S505. Determine the driver corresponding to the target version number as the target driver.

[0166] Since the driver corresponding to the target version number is the target driver, if the driver corresponding to the target version number exists in the preset storage space, then the driver corresponding to the target version number can be determined as the target driver.

[0167] For example, if the preset storage space contains driver 021 corresponding to target version number 021, then driver 021 can be identified as the target driver.

[0168] After executing step S505, step S512 can be executed.

[0169] S506. Obtain the target initial driver corresponding to the target GPU.

[0170] Optionally, the target initial driver may be obtained by the electronic device from the target device. The target device may be a device that stores the target initial driver. The target device may send the target initial driver to the electronic device so that the electronic device can obtain the target initial driver.

[0171] The version number of the target initial driver is higher than the current version number of the current driver corresponding to the target GPU, but lower than the target version number.

[0172] For example, an electronic device can obtain the target initial driver corresponding to GPU1, and the version number of the target initial driver can be 020.

[0173] S507. The kernel module file in the target initial driver is renamed to obtain the first target kernel module file.

[0174] The target initial driver may include at least one kernel module file.

[0175] For any kernel module file, the name of the kernel module file can be updated to obtain the target kernel module file in the following way: determine the file name of the kernel module file; determine the preset characters in the file name, update the preset characters to the target version number to obtain the target file name; update the file name of the kernel module file to the target file name to obtain the first target kernel module file.

[0176] The file name can include preset characters. These preset characters can be user-defined. For example, the preset characters could be "abcd".

[0177] For example, if the filename of kernel module file 1 is nabcd.ko, and the default characters are "abcd", and the target version number is 021, then "abcd" in filename 1 can be updated to "021", resulting in target filename 1 being n021.ko. Electronic devices can update the filename of kernel module file 1 to the target filename 1 to obtain target kernel module file 1, i.e., the filename of target kernel module file 1 is n021.ko.

[0178] S508. Update the source code file corresponding to the target initial driver to obtain the target source code file.

[0179] Optionally, the source code file corresponding to the target initial driver can be updated to obtain the target source code file by: determining the character device number in the source code file and updating it to be different from the original character device number; and determining at least one executable program symbol to be updated in the source code file and updating it to at least one target executable program symbol to be different from the original executable program symbol, thus obtaining the target source code file.

[0180] The target initial driver has a corresponding source code file. This source code file can include a character device number. For example, the character device number could be 195.

[0181] Character device numbers may be fixed. To avoid conflicts with at least one character device number in the current driver, the character device number in the target initial driver needs to be updated to the target character device number to distinguish it from the original character device number.

[0182] For example, if an electronic device specifies the character device number as 195 in its source code file, and the target character device number is 196, the electronic device can update the character device number 195 to the target character device number 196.

[0183] In an optional embodiment, at least one executable program symbol to be updated can be determined in the source code file in the following manner: in a preset storage space, the current driver corresponding to the target graphics processing is determined; in the current source code file corresponding to the current driver, at least one current executable program symbol is determined; based on at least one current executable program symbol, at least one executable program symbol to be updated is determined in the source code file.

[0184] Optionally, executable program symbols may include function names and / or variable names, etc.

[0185] Alternatively, the electronic device may identify executable symbols that are identical to at least one currently executable symbol in the source code file as executable symbols to be updated.

[0186] In an optional embodiment, for any executable symbol to be updated, a target version number can be added to the executable symbol to obtain the target executable symbol.

[0187] For example, if an electronic device can determine that the current driver is driver 010, then the electronic device can identify at least one currently executable program symbol in the current source code file corresponding to driver 010. Assuming that one currently executable program symbol can be identified as nvaxyzInterfaceSession, the electronic device can identify nvaxyzInterfaceSession as the executable program symbol to be updated in the source code file corresponding to the target initial driver. The electronic device can add 021 to nvaxyzInterfaceSession to obtain the target executable program symbol as nv021axyzInterfaceSession.

[0188] In another optional embodiment, if a preset character exists in the executable symbol to be updated, the electronic device can determine the preset character in the executable symbol to be updated and update the preset character to the target version number to obtain the target executable symbol.

[0189] For example, if the executable symbol to be updated is nabcd_vgpu_vfio_set_ops, if the preset character is "abcd", and the target version number is 021, then the electronic device can determine "abcd" in nabcd_vgpu_vfio_set_ops and update "abcd" to "021", resulting in the target executable symbol n021_vgpu_vfio_set_ops.

[0190] After updating the source code file corresponding to the target initial driver, the target source code file can be obtained. For example, the target source code file may include character device number 196 and nv021axyzInterfaceSession, etc.

[0191] S509. Compile and generate a second target kernel module file based on the target source code file.

[0192] Once the target source code file is identified, it can be executed to compile a second target kernel module file based on it. The target driver may include at least one target kernel module file.

[0193] S510: Determine the target driver based on the first target kernel module file and the second target kernel module file.

[0194] The target driver may include a first target kernel module file and a second target kernel module file.

[0195] S511, Store the target driver in the preset storage space.

[0196] S512: Execute the driver unbinding command to unbind the target GPU from the corresponding current driver.

[0197] For example, as shown in Figure 6, when performing a driver upgrade on GPU2, a driver unbinding command can be executed to unbind GPU2 from the corresponding driver 010.

[0198] S513: Execute the driver binding instruction to bind the target driver to the target GPU individually, thereby completing the driver upgrade process for the target GPU.

[0199] For example, as shown in Figure 6, for GPU2, a driver binding instruction can be executed to bind driver 021 separately to GPU2 in order to upgrade the driver 010 corresponding to GPU2 to driver 021.

[0200] In this embodiment, the electronic device can obtain driver upgrade instructions for multiple GPUs and determine whether a target GPU exists among the multiple GPUs based on the driver upgrade instructions. If a target GPU exists, it can determine whether the target GPU's working state is an unoccupied state by a virtual machine. If so, the electronic device can further determine whether a driver corresponding to the target version number exists in a preset storage space. If so, the electronic device can determine the driver corresponding to the target version number as the target driver. If not, the electronic device can obtain the target initial driver corresponding to the target GPU. The electronic device can perform name update processing on the kernel module file in the target initial driver to obtain a first target kernel module file; the electronic device can compile and generate a second target kernel module file based on the target source code file. The electronic device can determine the target driver based on the first target kernel module file and the second target kernel module file, and store the target driver in the preset storage space. The electronic device can execute a driver unbinding instruction to unbind the target GPU from the corresponding current driver, and can execute a driver binding instruction to bind the target driver to the target GPU separately to complete the driver upgrade process for the target GPU. Each GPU has an independent current driver, and since the target driver is updated based on the initial target driver, it will not conflict with the current driver. Therefore, when upgrading the driver, we only need to wait until the target GPU is not occupied by a virtual machine before we can upgrade the current driver corresponding to the target GPU to the target driver. There is no need to wait until all GPUs in the cloud server are not occupied by virtual machines before we can upgrade, thus shortening the upgrade cycle. It also avoids the economic losses caused by some GPUs being locked for a long time during the waiting period.

[0201] Figure 7 is a schematic diagram of a driver upgrade device provided in an embodiment of this disclosure. Referring to Figure 7, the driver upgrade device 10 includes: an acquisition module 11, a first determination module 12, a second determination module 13, and an upgrade module 14, wherein...

[0202] The acquisition module 11 is used to acquire the driver upgrade instructions of the plurality of graphics processors, wherein the driver upgrade instructions include a target version number;

[0203] The first determining module 12 is used to determine, according to the driver upgrade instruction, whether there is a target graphics processor among the plurality of graphics processors, wherein the target version number is higher than the current version number of the current driver corresponding to the target graphics processor;

[0204] The second determining module 13 is used to determine the target driver corresponding to the target graphics processor when the working state of the target graphics processor is not occupied by the virtual machine, if the target graphics processor exists.

[0205] The upgrade module 14 is used to perform driver upgrade processing on the target graphics processor according to the target driver.

[0206] The driver upgrade device provided in this disclosure can execute the technical solution shown in the above method embodiments. Its implementation principle and beneficial effects are similar, and will not be described again here.

[0207] In one possible implementation, the electronic device includes a preset storage space; the second determining module 13 is specifically used for:

[0208] If the driver corresponding to the target version number does not exist in the preset storage space, then the target initial driver corresponding to the target graphics processor is obtained, and the target initial driver is updated to obtain the target driver;

[0209] If the driver corresponding to the target version number exists in the preset storage space, then the driver corresponding to the target version number is determined as the target driver.

[0210] In one possible implementation, the second determining module 13 is specifically used for:

[0211] The kernel module file in the target initial driver is renamed to obtain the first target kernel module file;

[0212] The source code file corresponding to the target initial driver is updated to obtain the target source code file;

[0213] A second target kernel module file is generated by compiling the target source code file.

[0214] The target driver is determined based on the first target kernel module file and the second target kernel module file, wherein the target driver includes the first target kernel module file and the second target kernel module file.

[0215] In one possible implementation, the second determining module 13 is specifically used for:

[0216] The character device number is determined in the source code file, and the character device number is updated.

[0217] In the source code file, at least one executable program symbol to be updated is identified, and the at least one executable program symbol to be updated is updated to at least one target executable program symbol to obtain the target source code file.

[0218] In one possible implementation, for any executable symbol to be updated, the second determining module 13 is specifically used for:

[0219] Add the target version number to the executable symbol to be updated to obtain the target executable symbol; or,

[0220] A preset character is determined from the executable symbol to be updated, and the preset character is updated to the target version number to obtain the target executable symbol.

[0221] In one possible implementation, the second determining module 13 is specifically used for:

[0222] In the preset storage space, determine the current driver corresponding to the target graphics processor;

[0223] In the current source code file corresponding to the current driver, at least one currently executable program symbol is identified;

[0224] Based on the at least one currently executable program symbol, determine the at least one executable program symbol to be updated in the source code file.

[0225] In one possible implementation, the second determining module 13 is specifically used for:

[0226] Determine the filename of the kernel module file;

[0227] A preset character is determined in the file name, and the preset character is updated to the target version number to obtain the target file name;

[0228] The filename of the kernel module file is updated to the target filename to obtain the first target kernel module file.

[0229] In one possible implementation, the first determining module 12 is specifically used for:

[0230] Among the current drivers corresponding to the plurality of graphics processors, it is determined whether there is a driver to be upgraded, wherein the driver to be upgraded is a current driver whose current version number is lower than the target version number;

[0231] If so, then among the plurality of graphics processors, the graphics processor corresponding to the driver to be upgraded is determined as the target graphics processor, and it is determined that the target graphics processor exists;

[0232] If not, then the target graphics processor does not exist.

[0233] In one possible implementation, the upgrade module 14 is specifically used for:

[0234] Execute the driver unbinding command to unbind the target graphics processor from the corresponding current driver;

[0235] Execute the driver binding instruction to bind the target driver to the target graphics processor individually, so as to perform driver upgrade processing on the target graphics processor.

[0236] The driver upgrade device provided in this disclosure can execute the technical solution shown in the above method embodiments. Its implementation principle and beneficial effects are similar, and will not be described again here.

[0237] Figure 8 is a schematic diagram of another driver upgrade device provided by an exemplary embodiment of this disclosure. Referring to Figure 9, based on the embodiment shown in Figure 7, the driver upgrade device 10 may further include: a storage module 15.

[0238] The storage module 15 is used to store the target driver in the preset storage space.

[0239] The driver upgrade device provided in this disclosure can execute the technical solution shown in the above method embodiments. Its implementation principle and beneficial effects are similar, and will not be described again here.

[0240] Figure 9 is a schematic diagram of the structure of an electronic device provided by an exemplary embodiment of the present disclosure. Referring to Figure 9, the electronic device 20 may include a processor 21 and a memory 22. Exemplarily, the processor 21 and the memory 22 are interconnected via a bus 23.

[0241] The memory 22 stores computer-executed instructions;

[0242] The processor 21 executes the computer execution instructions stored in the memory 22, causing the processor 21 to perform the method as shown in the above method embodiment.

[0243] The electronic device shown in Figure 9 can be a physical machine, a server, or a cloud server, etc.

[0244] Accordingly, this disclosure provides a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, are used to implement the method described in the above-described method embodiments.

[0245] Accordingly, this disclosure also provides a computer program product, including a computer program, which, when executed by a processor, can implement the methods shown in the above-described method embodiments.

[0246] Those skilled in the art will understand that embodiments of this disclosure can be provided as methods, systems, or computer program products. Therefore, this disclosure can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this disclosure can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0247] This disclosure is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in one or more flowchart illustrations and / or one or more block diagrams.

[0248] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means that implement the functions specified in one or more flowcharts and / or one or more block diagrams.

[0249] These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process, such that the instructions, which execute on the computer or other programmable apparatus, provide steps for implementing the functions specified in one or more flowcharts and / or one or more block diagrams.

[0250] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.

[0251] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.

[0252] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.

[0253] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0254] The above description is merely an embodiment of this disclosure and is not intended to limit the scope of this disclosure. Various modifications and variations can be made to this disclosure by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this disclosure should be included within the scope of the claims of this disclosure.

Claims

1. A method of driving an upgrade, wherein, The method is applied to an electronic device including a plurality of graphic processors, each of which corresponds to a current driver, and the method comprises: obtaining a driver upgrade instruction of the plurality of graphic processors, the driver upgrade instruction including a target version number; determining whether a target graphic processor exists in the plurality of graphic processors according to the driver upgrade instruction, the target version number being higher than a current version number of a current driver corresponding to the target graphic processor; if the target graphic processor exists, determining a target driver corresponding to the target graphic processor when a working state of the target graphic processor is an unoccupied state by a virtual machine, and performing driver upgrade processing on the target graphic processor according to the target driver.

2. The method of claim 1, wherein, The electronic device includes a preset storage space; determining the target driver corresponding to the target graphic processor comprises: if a driver corresponding to the target version number does not exist in the preset storage space, obtaining a target initial driver corresponding to the target graphic processor, and performing update processing on the target initial driver to obtain the target driver; if the driver corresponding to the target version number exists in the preset storage space, determining the driver corresponding to the target version number as the target driver.

3. The method of claim 2, wherein, performing update processing on the target initial driver to obtain the target driver comprises: performing name update processing on a kernel module file in the target initial driver to obtain a first target kernel module file; performing update processing on a source code file corresponding to the target initial driver to obtain a target source code file; compiling a second target kernel module file according to the target source code file; determining the target driver according to the first target kernel module file and the second target kernel module file, the target driver including the first target kernel module file and the second target kernel module file.

4. The method of claim 3, wherein, performing update processing on a source code file corresponding to the target initial driver to obtain a target source code file comprises: determining a character device number in the source code file and performing update processing on the character device number, and determining at least one executable program symbol to be updated in the source code file and updating the at least one executable program symbol to be updated into at least one target executable program symbol to obtain the target source code file.

5. The method of claim 4, wherein, For any one executable program symbol to be updated, updating the executable program symbol to be updated into a target executable program symbol comprises: adding the target version number in the executable program symbol to be updated to obtain the target executable program symbol; or determining a preset character in the executable program symbol to be updated and updating the preset character into the target version number to obtain the target executable program symbol.

6. The method of claim 4 or 5, wherein, determining at least one executable program symbol to be updated in the source code file comprises: determining a current driver corresponding to the target graphic processor in the preset storage space; determining at least one current executable program symbol in a current source code file corresponding to the current driver; According to the at least one current executable program symbol, at least one to-be-updated executable program symbol is determined in the source code file.

7. The method according to any one of claims 3-6, wherein, The name updating process is performed on the kernel module file to obtain a first target kernel module file, including: determining a file name of the kernel module file; determining a preset character in the file name, and updating the preset character to the target version number to obtain a target file name; updating the file name of the kernel module file to the target file name to obtain the first target kernel module file.

8. The method according to any one of claims 2-7, wherein, After obtaining the target driver, the method further includes: storing the target driver in the preset storage space.

9. The method of any one of claims 1-8, wherein, According to the target driver, the target graphic processor is subjected to a driver upgrade process, including: executing a driver unbinding instruction to perform unbinding processing on the target graphic processor and a corresponding current driver; executing a driver binding instruction to separately bind the target driver to the target graphic processor to perform driver upgrade processing on the target graphic processor.

10. The method of any one of claims 1-9, wherein, According to the driver upgrade instruction, it is determined whether there is a target graphic processor in the plurality of graphic processors, including: in the current driver corresponding to the plurality of graphic processors, it is determined whether there is a to-be-upgraded driver, the to-be-upgraded driver being a current driver with a current version number lower than the target version number; if yes, in the plurality of graphic processors, a graphic processor corresponding to the to-be-upgraded driver is determined as the target graphic processor, and it is determined that the target graphic processor exists; if no, it is determined that the target graphic processor does not exist.

11. A drive upgrade apparatus, wherein, The electronic device includes a plurality of graphic processors, and the apparatus includes an acquisition module, a first determination module, a second determination module, and an upgrade module, wherein: the acquisition module is configured to acquire a driver upgrade instruction of the plurality of graphic processors, the driver upgrade instruction including a target version number; the first determination module is configured to determine, according to the driver upgrade instruction, whether there is a target graphic processor in the plurality of graphic processors, the target version number being higher than a current version number of a current driver corresponding to the target graphic processor; the second determination module is configured to, if the target graphic processor exists, determine a target driver corresponding to the target graphic processor when a working state of the target graphic processor is an unoccupied state by a virtual machine; the upgrade module is configured to perform driver upgrade processing on the target graphic processor according to the target driver.

12. An electronic device, comprising: including: at least one processor; and a memory connected in communication with the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to cause the electronic device to perform the method of any one of claims 1-10.

13. A computer readable storage medium, wherein, The computer-readable storage medium stores computer execution instructions, and when the processor executes the computer execution instructions, the method of any one of claims 1-10 is implemented.

14. A computer program product comprising a computer program, wherein, The computer program is executed by the processor to implement the method of any one of claims 1-10.

Citation Information

Patent Citations

  • Driving data processing method and device, electronic equipment and computer storage medium

    CN113377491A

  • Updating method and device of GPU (Graphics Processing Unit) driving software, host and storage medium

    CN115878156A

  • Graphic processor upgrading method and device and computer readable storage medium

    CN116243948A

  • Firmware loading method, server, virtual machine, equipment, chip and storage medium

    CN116880921A

  • Multi-GPU driver compatibility method in operating system

    WO2022099961A1