CN113626131A - Method, chip, board card and storage medium for realizing heat transfer - Google Patents
Method, chip, board card and storage medium for realizing heat transfer Download PDFInfo
- Publication number
- CN113626131A CN113626131A CN202010379648.XA CN202010379648A CN113626131A CN 113626131 A CN113626131 A CN 113626131A CN 202010379648 A CN202010379648 A CN 202010379648A CN 113626131 A CN113626131 A CN 113626131A
- Authority
- CN
- China
- Prior art keywords
- virtual
- hardware
- data
- migrated
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012546 transfer Methods 0.000 title description 5
- 238000012545 processing Methods 0.000 claims abstract description 38
- 230000006870 function Effects 0.000 claims description 122
- 238000013508 migration Methods 0.000 claims description 92
- 230000005012 migration Effects 0.000 claims description 91
- 230000015654 memory Effects 0.000 claims description 38
- 230000000977 initiatory effect Effects 0.000 claims description 24
- 238000004364 calculation method Methods 0.000 claims description 19
- 238000013473 artificial intelligence Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 12
- 238000013528 artificial neural network Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004321 preservation Methods 0.000 claims 1
- 238000013500 data storage Methods 0.000 abstract 1
- 230000003863 physical function Effects 0.000 description 77
- 238000010586 diagram Methods 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000001089 thermophoresis Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
The disclosure relates to methods, devices, and readable storage media for implementing thermomigration, wherein the computing device of the disclosure is included in an integrated circuit device that includes a universal interconnect interface and other processing devices. The computing device interacts with other processing devices to jointly complete computing operations specified by the user. The integrated circuit device may further include a storage device, which is connected to the computing device and the other processing device, respectively, for data storage of the computing device and the other processing device.
Description
Technical Field
The present disclosure relates generally to the field of computers. More particularly, the present disclosure relates to a method, a chip, a board, and a computer readable storage medium for implementing a thermal migration.
Background
Live Migration (Live Migration), also called Live Migration or Live Migration, is to completely SAVE the running state of a virtual machine through a SAVE/restore (LOAD) program, and migrate the running state of the virtual machine from one physical server to another physical server. After recovery, the virtual machine is still running smoothly and the user does not perceive any differences.
In the field of artificial intelligence, due to the high complexity of Application Specific Integrated Circuits (ASICs), thermophoresis cannot be fully implemented. With the development of cloud computing, servers adopting artificial intelligence chips at the cloud end need to utilize virtualization to ensure independent operation space of users, and the live migration can provide stable services, so that how to realize the live migration on the artificial intelligence chips is a problem to be solved in the prior art.
Disclosure of Invention
To at least partially solve the technical problems mentioned in the background, the present disclosure provides a method, a chip, a board, and a computer-readable storage medium for implementing hot migration.
According to a first aspect of the present disclosure, a system for implementing a hot migration is provided, connected to a kernel space, the system comprising hardware and a read-only memory. The hardware is virtualized into a plurality of virtual hardware, the read-only memory stores firmware, the firmware includes physical functions to: receiving a live migration start request from the kernel space, the live migration start request specifying a specific virtual hardware, the specific virtual hardware being one of the plurality of virtual hardware; sending a to-be-migrated instruction to the kernel space, wherein the to-be-migrated instruction records to-be-migrated data, and the to-be-migrated data is associated to the specific virtual hardware; taking out the data to be migrated from the specific virtual hardware in batches and sending the data to be migrated to the kernel space; and sending an end signal to the kernel space after the data to be migrated is sent.
According to a second aspect of the present disclosure, a system for implementing live migration, connected to a kernel space, is provided, the system comprising hardware and a read-only memory. The hardware is virtualized into multiple virtual hardware. The read-only memory stores firmware including: a physical function and a plurality of virtual functions. The physical function is used for receiving data to be migrated, the data to be migrated is associated to specific virtual hardware, the specific virtual hardware is one of the virtual hardware, the virtual functions are managed by the physical function, the specific virtual hardware corresponds to one virtual function, and the physical function sends the data to be migrated to the specific virtual hardware through the virtual function. And after the data to be migrated is sent, the physical function sends an end signal to the kernel space.
According to a third aspect of the present disclosure, an integrated circuit device is provided, which includes the system mentioned above, and a board card is also provided, which includes the integrated circuit device mentioned above.
According to a fourth aspect of the present disclosure, there is provided a method of live migration saving path for a system, the system comprising hardware virtualized as a plurality of virtual hardware. The method comprises the following steps: receiving a live migration start request, wherein the live migration start request specifies specific virtual hardware, and the specific virtual hardware is one of the virtual hardware; idling a specific virtual function, the specific virtual function corresponding to the specific virtual hardware; sending data to be migrated in batches from the specific virtual hardware; and sending an end signal after the data to be migrated is sent.
According to a fifth aspect of the present disclosure, there is provided a method of performing a live migration restoration path for a system, the system comprising hardware virtualized into a plurality of virtual hardware. The method comprises the following steps: receiving data to be migrated, wherein the live migration data corresponds to specific virtual hardware, and the specific virtual hardware is one of the virtual hardware; idling a specific virtual function, the specific virtual function corresponding to the specific virtual hardware; sending the data to be migrated to the specific virtual hardware through a specific virtual function; and sending an end signal after the data to be migrated is sent.
According to a sixth aspect of the present disclosure, there is provided a computer readable storage medium having stored thereon computer program code for live migration, which when executed by a processor, performs the aforementioned method.
The method and the system can realize the hot migration of the information of the virtualization device from the source server to the destination server.
Drawings
The description of the exemplary embodiments of the present disclosure as well as other objects, features and advantages thereof will become readily apparent from the following detailed description read in conjunction with the accompanying drawings. Several embodiments of the present disclosure are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar or corresponding parts and in which:
FIG. 1 is a schematic diagram illustrating an artificial intelligence chip framework of an embodiment of the disclosure;
FIG. 2 is a schematic diagram illustrating the internal structure of a computing device according to an embodiment of the disclosure;
FIG. 3 is a flow diagram of migrating a save path according to an embodiment of the present disclosure;
fig. 4 is a schematic diagram illustrating migration saving paths performed on the source server side according to an embodiment of the present disclosure;
FIG. 5 is a flow diagram of migrating a restoration path according to an embodiment of the present disclosure;
fig. 6 is a schematic diagram illustrating a migration recovery path on the destination server side according to an embodiment of the present disclosure;
FIG. 7 is a block diagram illustrating an integrated circuit device of an embodiment of the disclosure; and
fig. 8 is a schematic diagram illustrating a board card according to an embodiment of the present disclosure.
Detailed Description
The technical solutions in the embodiments of the present disclosure will be clearly and completely described below with reference to the drawings in the embodiments of the present disclosure. The described embodiments are only a subset of the embodiments of the present disclosure, and not all embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments disclosed herein without making any creative effort, shall fall within the protection scope of the present disclosure.
It should be understood that the terms "first," "second," "third," and "fourth," etc. in the claims, description, and drawings of the present disclosure are used to distinguish between different objects and are not used to describe a particular order. The terms "comprises" and "comprising," when used in the specification and claims of this disclosure, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
It is also to be understood that the terminology used in the description of the disclosure herein is for the purpose of describing particular embodiments only, and is not intended to be limiting of the disclosure. As used in the specification and claims of this disclosure, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should be further understood that the term "and/or" as used in the specification and claims of this disclosure refers to any and all possible combinations of one or more of the associated listed items and includes such combinations.
As used in this specification and claims, the term "if" may be interpreted contextually as "when", "upon" or "in response to a determination" or "in response to a detection".
Specific embodiments of the present disclosure are described in detail below with reference to the accompanying drawings.
The present disclosure relates to a framework employing virtualization techniques for application on an application specific integrated circuit, such as a machine learning device for neural networks, which may be a convolutional neural network accelerator. The following will be illustrated with an artificial intelligence chip.
FIG. 1 is a block diagram of an artificial intelligence chip virtualization, the block diagram 100 including a user space 102, a kernel space 104, and a system-on-chip 106, separated by dashed lines. The user space 102 is an operating space of a user program, and only simple operations are performed, and system resources cannot be directly called, and an instruction can be issued to a kernel only through a system interface. The kernel space 104 is a space where kernel code runs, and can execute any command and call all resources of the system. The system-on-chip 106 is a module of an artificial intelligence chip that cooperates with the user space 102 through the kernel space 104.
In this embodiment, the hardware of the user space 102 is collectively referred to as a device or apparatus, and the hardware of the system-on-chip 106 is collectively referred to as a device or unit, for distinction. Such an arrangement is merely for the purpose of more clearly describing the technology of this embodiment, and does not set any limit to the technology of the present disclosure.
This embodiment is illustrated with one component virtualized into four virtual components unless otherwise emphasized, but the present disclosure does not limit the number of virtual components.
Before the virtualization is not run, the user space 102 is controlled by the hardware monitor tool 108 to obtain information of the system-on-chip 106 through a call interface. The hardware monitor tool 108 may not only collect information of the soc 106, but also obtain overhead of upper layer software to resources of the soc 106 in real time, and grasp detailed information and status of the current soc 106 for a user in real time, where the detailed information and status may be: the hardware device model, the firmware version number, the drive version number, the device utilization rate, the overhead state of the storage device, the board power consumption and the board peak power consumption, the peripheral component interconnect express (PCIe), and the like. The content and amount of information monitored may vary based on the version and usage scenario of the hardware monitor tool 108.
After the system starts virtualization, the operation of the user space 102 is instead taken over by the user virtual machine 110, the user virtual machine 110 is an abstraction and a simulation of the real computing environment, and the system allocates a set of data structures to manage the state of the user virtual machine 110, where the data structures include a complete set of registers, the use of physical memory, the state of virtual devices, and so on. The physical space of the user space 102 in this embodiment is virtualized into four virtual spaces 112, 114, 116, and 118, the four virtual spaces 112, 114, 116, and 118 are independent from each other, and can respectively carry different guest operating systems, such as guest operating system 1, guest operating system 2, guest operating system 3, and guest operating system 4 shown in the figure, where the guest operating systems may be Windows, Linux, Unix, iOS, android, and the like, and each guest operating system runs different application programs.
In the context of the present disclosure, user virtual machine 110 is implemented with a Quick Emulator (QEMU). QEMU is an open source virtualization software written in C language that virtualizes the interfaces through dynamic binary translation and provides a series of hardware models that allow guest operating systems 1, 2, 3, 4 to think they are accessing the system-on-chip 106 directly. The user space 102 includes processors, memory, I/O devices, etc., and the QEMU may virtualize the processors of the user space 102 into four virtual processors, and memory into four virtual memories, as well as virtualize the I/O devices into four virtual I/O devices. Each guest operating system occupies a portion of the user space 102, e.g., one-fourth, i.e., has access to a virtual processor, a virtual memory, and a virtual I/O device, respectively, to perform the tasks of the guest operating system. In this mode, the guest operating systems 1, 2, 3 and 4 can operate independently.
The kernel virtual machine 120 includes a physical function driver, which is a driver specially managing the global function of the SR-IOV device and generally needs to have higher authority than that of a general virtual machine to operate the SR-IOV device. The physical function drivers contain the functionality of all conventional drivers and the user space 102 has access to the I/O resources of the system-on-chip 106.
From the perspective of the user virtual machine 110, during the running of the virtual machine, the QEMU performs kernel setting through a system call interface provided by the kernel virtual machine 120, and the QEMU uses the virtualization function of the kernel virtual machine 120 to provide hardware virtualization acceleration for the own virtual machine so as to improve the performance of the virtual machine. From the perspective of kernel virtual machine 120, when a user cannot directly interact with kernel space 104, a management tool via user space 102 is required, and therefore a tool operating in user space 102 via QEMU is required.
The chip driver 122 is used to drive a Physical Function (PF) 126, and during the operation of the virtual machine, the user space 102 does not access the on-chip system 106 through the chip driver 122 by the hardware monitor tool 108, so the guest os 1, the guest os 2, the guest os 3, and the guest os 4 are respectively configured with a user kernel space 124 for loading the chip driver 122, so that each guest os can still drive the on-chip system 106.
The system-on-chip 106 performs virtualization through a single root I/O virtualization (SR-IOV) technique, and in more detail, in the environment of the present disclosure, the SR-IOV technique is implemented by combining software and hardware, so that each component of the system-on-chip 106 is virtualized. SR-IOV technology is a virtualization solution that allows efficient sharing of PCIe resources between virtual machines, making a single PCIe resource shareable by multiple virtual components of the system-on-chip 106, providing dedicated resources for these virtual components. Thus, each virtual component has its own corresponding uniquely accessible resource.
The system-on-chip 106 of this embodiment includes hardware and firmware. The hardware includes read only memory ROM (not shown) for storing firmware including physical functions 126 for supporting or coordinating PCIe functions of the SR-IOV, the physical functions 126 having the authority to fully configure PCIe resources. In implementing the SR-IOV technique, the physical functions 126 virtualize a plurality of Virtual Functions (VFs) 128, in this embodiment four virtual functions 128. The virtual function 128 is a lightweight PCIe function, managed by the physical function 126, that may share PCIe physical resources with the physical function 126 and with other virtual functions 128 associated with the same physical function 126. The virtual function 128 only allows control of the resources that the physical function 126 configures to itself.
Once SR-IOV is enabled in a physical function 126, each virtual function 128 may access its own PCIe configuration space through its own bus, device and function number. Each virtual function 128 has a memory space for mapping its register set. The virtual function 128 driver operates on the register set to enable its functionality and is directly assigned to the corresponding user virtual machine 110. Although virtual, the user virtual machine 110 is made to consider the PCIe device as actually existing.
The hardware of the system-on-chip 106 also includes a computing device 130, a video codec device 132, a JPEG codec device 134, a storage device 136, and PCIe 138. In this embodiment, the computing device 130 is an Intelligent Processing Unit (IPU) for performing convolution calculation of the neural network; the video codec device 132 is used for coding and decoding video data; the JPEG codec device 134 is used for encoding and decoding a still picture using the JPEG algorithm; the memory device 136 may be a Dynamic Random Access Memory (DRAM) for storing data; PCIe 138 is the aforementioned PCIe, during the virtual machine operation, PCIe 138 is virtualized into four virtual interfaces 140, and virtual functions 128 and virtual interfaces 140 are in a one-to-one correspondence, that is, a first virtual function interfaces to a first virtual interface, a second virtual function interfaces to a second virtual interface, and so on.
With SR-IOV technology, computing device 130 is virtualized as four virtual computing devices 142, video codec device 132 is virtualized as four virtual video codec devices 144, JPEG codec device 134 is virtualized as four virtual JPEG codec devices 146, storage device 136 is virtualized as four virtual storage devices 148.
Each guest operating system is configured with a set of virtual suites, each set of virtual suites including a user virtual machine 110, a virtual interface 140, a virtual function 128, a virtual computing device 142, a virtual video codec device 144, a virtual JPEG codec device 146, and a virtual storage device 148. Each set of virtual suites runs independently without affecting each other, and is used for executing tasks delivered by the corresponding guest operating systems, so as to determine that each guest operating system can access the configured virtual computing device 142, the virtual video codec device 144, the virtual JPEG codec device 146 and the virtual storage device 148 through the configured virtual interface 140 and the virtual function 128.
In more detail, each guest operating system responds to different tasks when executing the tasks, and hardware required to be accessed may also be different, for example: if a task is to perform a matrix convolution calculation, the guest operating system accesses the configured virtual compute device 142 through the configured virtual interface 140 and virtual function 128; if a task is video codec, the guest operating system accesses the configured virtual video codec device 144 through the configured virtual interface 140 and virtual function 128; if a task is JPEG encoding and decoding, the guest OS accesses the configured virtual JPEG codec device 146 via the configured virtual interface 140 and virtual function 128; if a task is to read or write data, the guest operating system accesses the configured virtual storage device 148 through the configured virtual interface 140 and virtual function 128.
Fig. 2 shows a schematic diagram of the internal structure of the computing apparatus 130. The computing device 130 has sixteen processing unit cores (processing unit core 0 to processing unit core 15) in total for executing the matrix computing task, and each four processing unit cores form a processing unit group, i.e., a cluster (cluster). In more detail, processing unit core 0 through processing unit core 3 form a first cluster 202, processing unit core 4 through processing unit core 7 form a second cluster 204, processing unit core 8 through processing unit core 11 form a third cluster 206, and processing unit core 12 through processing unit core 15 form a fourth cluster 208. The computing device 130 basically performs computing tasks in units of clusters.
Each virtual compute device 142 is configured with a virtual storage unit core, a virtual shared storage unit, and a cluster, respectively, to support the tasks of a particular guest operating system. Similarly, each of the virtual computing devices 142 operates independently and does not affect each other.
The number of clusters of computing device 130 should be at least the same as the number of virtual computing devices 142 to ensure that each virtual computing device 142 can configure one cluster, and when the number of clusters is greater than the number of virtual computing devices 142, the clusters can be appropriately configured to the virtual computing devices 142 according to actual needs to increase flexibility of hardware configuration.
The video codec device 132 of this embodiment includes six video codec units. The video codec device 132 can flexibly allocate the video codec units according to the number of virtual components and the required resources. For example: the video codec device 132 is virtualized into four virtual video codec devices 144, and assuming that the first virtual video codec device and the second virtual video codec device require more video codec resources, two video codec units may be respectively configured for the first virtual video codec device and the second virtual video codec device, and one video codec unit may be respectively configured for the other virtual video codec devices 144. Another example is: the video codec device 132 is virtualized into three virtual video codec devices 144, and under the condition that any one of the virtual video codec devices does not need more video codec resources, two video codec units can be respectively configured for each virtual video codec device 144.
The number of the video codec units should be at least the same as the number of the virtual video codec devices 144, so as to ensure that each virtual video codec device 144 can configure one video codec unit, and when the number of the video codec units is greater than the number of the virtual video codec devices 144, the video codec units can be properly configured to the virtual video codec devices 144 according to actual requirements, so as to increase flexibility of hardware configuration.
Likewise, the JPEG encoding and decoding device 134 of this embodiment comprises six JPEG encoding and decoding units. The JPEG codec device 134 can flexibly allocate JPEG codec units according to the number of virtual components and the required resources, and the allocation method is the same as that of the video codec device 132, so that the details are not repeated.
The storage device 136 may adopt a non-uniform memory access (NUMA) architecture, and includes a plurality of DDR channels, and the storage device 136 may flexibly allocate the DDR channels according to the number of virtual components and required resources, and the allocation manner of the DDR channels is the same as that of the computing device 130, the video codec device 132, and the JPEG codec device 134, and thus is not described herein again.
Based on the foregoing exemplary framework, the thermomigration scheme of the present disclosure is divided into two stages: the first stage is to pack the configuration and data on the source server and send them to the destination server, i.e. to migrate the storage path; the second phase is to place these configurations and data at the corresponding place of the destination server, i.e. to migrate the restoration path. The live migration scheme is to completely save the running state of the whole virtual machine and quickly restore the running state to the original hardware platform or even different hardware platforms, in other words, the source server and the destination server can be on the same hardware platform or different hardware platforms. After recovery, the virtual machine is still running smoothly and the user does not perceive any differences. The two stages will be described separately.
Fig. 3 is a flowchart illustrating an embodiment of the present disclosure, which is a flowchart illustrating migration of a saving path, where an origin server of the embodiment may be the system disclosed in fig. 1, and fig. 4 is a schematic diagram illustrating migration of a saving path performed at an origin server side having the architecture of fig. 1. This embodiment packs the drivers, firmware and hardware information, context information and their state information related to the specific virtual hardware on the soc 106 from the source server side while the user space 102 is still running, and the "state information" may include the state information of the drivers of the virtual functions, the state information of the firmware and hardware, the state machine, registers, the context state information of the internal state of the hardware, the state machine of the software, variables, the context state information of the constant runtime, and so on.
In step 301, the virtualization management software initiates a migration request to the emulated virtual machine QEMU 402. The virtualization management software of this embodiment is Libvirt 401, which Libvirt 401 is an open source Application Programming Interface (API), daemon, and management tool for managing the virtualization platform that may be used to manage the virtualization technology of QEMU 402. When the system on chip 106 fails, and the resource allocation is not uniform (for example, the load is too heavy and the load is too light), the Libvirt 401 may start the hot migration to ensure the normal operation of the virtual machine service.
In step 302, QEMU 402 notifies physical function driver 403 to initiate the migration, i.e., QEMU 402 initiates a warm migration initiation request. This embodiment provides a model to manage the entire migration save path process, which is the virtual machine learning unit QEMU object model (VMLU QOM), where the virtual machine learning unit refers to the virtualized artificial intelligence system on chip shown in FIG. 1, and the QEMU object model is a model that simulates the processor and device to bus relationships of a particular architecture.
In terms of emulating a particular architecture's processor, the VMLU QOM 404 models the processor for the characteristics of the artificial intelligence system on a chip of FIG. 1. In terms of emulating device-to-bus relationships, since the system-on-chip 106 would interface with the kernel space 104 via PCIe 138, such device-to-bus, bus-connected device relationships are emulated by the VMLU QOM 404.
As for the interaction between the user space 102 and the physical function driver 403, it is realized through Memory mapping I/O (MMIO) of the VMLU QOM 404. Memory mapped I/O is part of the PCI specification, with I/O devices placed in memory space instead of I/O space. From the processor perspective of user space 102, the system accesses other devices after memory mapped I/O as well as accessing memory, simplifying the programming difficulty and interface complexity.
In this step, the VMLU QOM 404 in QEMU 402 initializes a warm migration initiation request and sends the warm migration initiation request to the physical function driver 403.
In step 303, the physical function driver 403 notifies the virtual function driver 405 to initiate migration. The virtual function driver 405 is stored in the virtual machine kernel space, based on the memory mapped I/O of the VMLU QOM 404, the hardware of the system-on-chip 106 appears to the virtual function driver 405 as a block of memory, and read and write operations of the virtual function driver 405 to the memory mapped I/O space (i.e., the system-on-chip 106) are captured and managed by the VMLU QOM 404. For read operations, the VMLU QOM 404 may return the value that should be returned as needed by the virtual function driver 405, allowing synchronization between the virtual function driver 405 and the physical function driver 403.
The VMLU QOM 404 obtains the migration status of the physical function driver 403 by calling the interface of the physical function driver 403. When the virtual function driver 405 wants to read the memory mapped I/O space of the VMLU QOM 404, the VMLU QOM 404 returns the state of the physical function 406 to the virtual function driver 405, in which step the VMLU QOM 404 passes the state of the physical function driver 403 ready for a warm migration to the virtual function driver 405.
In step 304, the virtual function driver 405 suspends executing tasks from the processors of the user space 102. The manner in this embodiment is that the virtual function driver 405 does not return a control command to the guest operating system of the user space 102, and the guest operating system, without receiving the control command, will continue to wait without issuing the next task to the virtual function driver 405 to suspend execution of the task at the user space end.
In step 305, the virtual function driver 405 notifies the physical function driver 403 that migration is ready. After suspending execution of instructions from the user space 102, the virtual function driver 405 notifies the physical function driver 403 that the user space 102 is ready, without instruction issue interference during the warm migration.
In step 306, the physical function driver 403 notifies the physical function 406 that it is ready to migrate. The physical function driver 403 sends a live migration initiation request to the physical function 406, where the live migration initiation request specifies that the specific virtual hardware 408 is to be live migrated, and the specific virtual hardware 408 is one of the plurality of virtual hardware of the soc 106, that is, the live migration initiation request records that the live migration is to be performed for the specific virtual hardware 408. For ease of illustration, it is assumed herein that the warm migration initiation request is for a particular virtual function 407 and its corresponding particular virtual hardware 408.
The specific virtual hardware 408 can be a specific virtual computing device, such as the virtual computing device 142 in fig. 1, and the data to be migrated includes the computing intermediate value stored in the virtual shared memory unit and the data stored in the virtual memory unit core. The particular virtual hardware 408 can also be the particular virtual storage device 148 of FIG. 1, and the data to be migrated includes the data stored at the particular virtual storage device 148. The specific virtual hardware 408 can also be the virtual video codec device 144 or the virtual JPEG codec device 146, and the data to be migrated includes the corresponding codec information.
In step 307, the physical function 406 uploads to the physical function driver 403 data including drivers for the specific virtual function 407, firmware, and information for the specific virtual hardware 408, context information, and state information thereof. First, the physical function 406 sends a to-be-migrated instruction to the physical function driver 403 of the kernel space 104, where the to-be-migrated instruction records data to be migrated related to a specific virtual hardware 408, so that the physical function driver 403 knows how much data needs to be migrated. Then, in response to the warm migration initiation request, the physical function 406 idles the specific virtual function 407 so that it does not communicate with the user space 102 temporarily, but the other virtual functions and their corresponding virtual hardware operate as usual. After idling the specific virtual function 407, the physical function 406 batch-fetches the data to be migrated from the specific virtual hardware 408 and sends the data to the physical function driver 403. After the data to be migrated is sent, the physical function 406 sends an end signal to the physical function driver 403.
At step 308, the VMLU QOM 404 obtains the data to be migrated from the physical function driver 403. The kernel-space physical function driver 403 sends the instruction to be migrated to the VMLU QOM 404 in the user virtual machine, and then sends the data to be migrated to the VMLU QOM 404. After receiving the instruction to be migrated, the VMLU QOM 404 calls a read function to obtain data to be migrated from the physical function driver 403.
In step 309, the VMLU QOM 404 transfers the data to be migrated to the Libvirt 401.
In step 310, after the data to be migrated is sent, the physical function 406 releases the resources of the specific virtual hardware 408 and the specific virtual function 407, the VMLU QOM 404 sends an end signal to the virtual function driver 405, the virtual function driver 405 sends a control signal to the interface 409 of the virtual function driver, and the guest operating system continues to issue tasks.
Through the above-mentioned flow, this embodiment implements the migration save path, and while executing the aforementioned flow, for unspecific virtual functions and hardware, the task from the user space 102 is still executed without being affected.
Another embodiment of the present disclosure is to migrate the restoration path, and the destination server in this embodiment is also the system in fig. 1, and has the same environment as the source server. FIG. 5 is a flow diagram illustrating a migration restoration path, and FIG. 6 is a schematic diagram illustrating a migration restoration path in the environment of FIG. 1. In more detail, this embodiment is to migrate the data to be migrated to the destination server after the embodiment of fig. 3 and 4 completes the migration save path.
In step 501, Libvirt601 initiates a request to QEMU 602 for importing data to be migrated. QEMU 602 receives the data to be migrated issued in the previous embodiment off-chip and initializes a warm migration initiation request. The off-chip refers to an origin server, and the origin server and the destination server may be on the same hardware platform or different hardware platforms.
In step 502, the VMLU QOM 604 sends the data to be migrated to the physical function driver 603. After receiving the data to be migrated, the VMLU QOM 604 calls a write-in function in response to the warm migration initiation request, and sends the data to be migrated to the physical function driver 603.
In step 503, the physical function 606 receives data to be migrated. In the previous step, the VMLU QOM 604 sends the data to be migrated to the physical function driver 603, and the physical function driver 603 sends the data to be migrated to the physical function 606.
In step 504, the configuration, data, and context are restored for the particular virtual function 607 and the particular virtual hardware 608.
First, the physical function 606 idles a particular virtual function 607 so that it does not communicate with the user space 102 for a while, other virtual functions are running as normal. After idling the specific virtual function 607, the physical function 606 sends the data to be migrated to the specific virtual hardware 608 through the specific virtual function 607.
Similarly, the specific virtual hardware 608 can be the virtual computing device, the specific virtual storage device, the virtual video codec device, or the virtual JPEG codec device of fig. 1. The data to be migrated includes drivers, firmware and hardware information, context information, state information, etc. associated with the particular virtual hardware 608. After the reply, the specific virtual function 607 and the specific virtual hardware 608 have the same environment and data as the specific virtual function 407 and the specific virtual hardware 408.
In step 505, the physical function 606 reports to the physical function driver 603 that the migration has been completed. After the data to be migrated is sent, the physical function 606 sends an end signal to the physical function driver 603 of the kernel space 104.
In step 506, the physical function driver 603 notifies the VMLU QOM 604 that the thermal migration has been completed, i.e., the physical function driver 603 sends an end signal to the QEMU 602.
In step 507, the VMLU QOM 604 changes state to notify the virtual function driver 605 that the live migration has been completed. The VMLU QOM 604 responds to the end signal by notifying the virtual function driver 605 that the live migration has been completed while changing the state of the base address register to point to the specific virtual function 607 and specific virtual hardware 608 of the destination server.
In step 508, the virtual function driver 605 sends a control signal to the virtual function driver's interface 609 to resume execution of the tasks of the guest operating system.
In step 509, the virtual function driver's interface 609 notifies the virtual function driver 605 to resume execution of the guest operating system's tasks. The virtual function driver 605 re-receives tasks from the processors of the user space 102 through the virtual function driver's interface 609, which tasks no longer access the source server's specific virtual hardware 408, but instead access the destination server's specific virtual hardware 608.
In step 510, the VMLU QOM 604 notifies Libvirt601 that the live migration is complete, and Libvirt601 cleans up the allocated hardware resources on the source server. This completes the migration restoration path.
In combination with the foregoing embodiments of the migration save path and the migration restore path, the present disclosure enables a live migration of a virtualized asic.
Fig. 7 is a block diagram illustrating an integrated circuit device 700 according to an embodiment of the disclosure. As shown in FIG. 7, the integrated circuit device 700, i.e., the artificial intelligence system on a chip in the foregoing embodiments, includes a computing device 702, and the computing device 702 may be the computing device 130 of FIG. 1. In addition, integrated circuit device 700 also includes a general interconnect interface 704 and other processing devices 706.
The other processing device 706 can be one or more types of general purpose and/or special purpose processors such as a central processing unit, a graphics processing unit, an artificial intelligence processing unit, etc., the number of which is not limited but is determined by the actual needs. The other processing device 706 serves as an interface for the computing device 702 to external data and controls, and performs basic controls including, but not limited to, data handling, turning the computing device 702 on and off, and the like. Other processing devices 706 may also cooperate with the computing device 702 to perform computational tasks.
The universal interconnect interface 704 may be used to transfer data and control instructions between the computing device 702 and other processing devices 706. For example, computing device 702 may obtain desired input data from other processing devices 706 via universal interconnect interface 704 and write the input data to memory locations on the chip of computing device 702. Further, the computing device 702 may obtain control instructions from other processing devices 706 via the universal interconnect interface 704 for writing to a control cache on the computing device 702 chip. Alternatively or in the alternative, the universal interconnect interface 704 may also read data from a memory module of the computing device 702 and transmit the data to the other processing device 706.
The integrated circuit device 700 also includes a storage device 708 that may be coupled to the computing device 702 and other processing devices 706, respectively. The storage device 708 is used for storing data of the computing device 702 and the other processing device 706, and is particularly suitable for storing data that is not stored in the computing device 702 or the other processing device 706.
According to different application scenarios, the integrated circuit device 700 can be used as a System On Chip (SOC) of a mobile phone, a robot, an unmanned aerial vehicle, a video acquisition device, and the like, thereby effectively reducing the core area of a control part, increasing the processing speed, and reducing the overall power consumption. In this case, the universal interconnect interface 704 of the integrated circuit device 700 is connected to certain components of the apparatus. Some of the components herein may be, for example, a camera, a display, a mouse, a keyboard, a network card or a wifi interface.
The present disclosure also discloses a chip or integrated circuit chip that includes an integrated circuit device 700. The present disclosure also discloses a chip package structure including the above chip.
Another embodiment of the present disclosure is a board card including the above chip package structure. Referring to fig. 8, the board 800 may include other kits including a memory device 804, an interface device 806, and a control device 808 in addition to the plurality of chips 802 described above.
The memory device 804 is coupled to the chip 802 within the chip package structure via a bus 814 for storing data. The memory device 804 may include multiple groups of memory cells 810.
An interface device 806 is electrically connected to the chip 802 within the chip package structure. The interface means 806 is used for data transmission between the chip 802 and an external device 812, such as a server or a computer. In this embodiment, the interface device 806 is a standard PCIe interface, and the data to be processed is transmitted from the server to the chip 802 through the standard PCIe interface, so as to implement data transfer. The results of the calculations made by chip 802 are also communicated back to external device 812 by interface device 806.
The control device 808 is electrically connected to the chip 802 to monitor the status of the chip 802. Specifically, chip 802 and control device 808 may be electrically connected through an SPI interface. The control device 808 may include a single chip microprocessor ("MCU").
Another embodiment of the present disclosure is an electronic device or apparatus, which includes the above board card 800. According to different application scenarios, the electronic device or apparatus may include a data processing apparatus, a robot, a computer, a printer, a scanner, a tablet computer, a smart terminal, a mobile phone, a vehicle data recorder, a navigator, a sensor, a camera, a server, a cloud server, a camera, a video camera, a projector, a watch, an earphone, a mobile storage, a wearable device, a vehicle, a household appliance, and/or a medical device. The vehicle comprises an airplane, a ship and/or a vehicle; the household appliances comprise a television, an air conditioner, a microwave oven, a refrigerator, an electric cooker, a humidifier, a washing machine, an electric lamp, a gas stove and a range hood; the medical equipment comprises a nuclear magnetic resonance apparatus, a B-ultrasonic apparatus and/or an electrocardiograph.
Another embodiment of the disclosure is a computer readable storage medium having stored thereon computer program code for live migration, which when executed by a processor, performs a method as described in fig. 3 or fig. 5.
The method and the system can realize the hot migration of the driving program, the firmware and the hardware information, the context information and the state information of the virtual hardware in the source server to the destination server, in particular to a virtual computing device, a virtual video coding and decoding device, a virtual JPEG coding and decoding device and the like of a special integrated circuit for hot migration.
The foregoing may be better understood in light of the following clauses:
clause a1, a system for implementing live migration, coupled to a kernel space, comprising: hardware virtualized as a plurality of virtual hardware; and a read-only memory storing firmware including: a physical function to: receiving a live migration start request from the kernel space, the live migration start request specifying a specific virtual hardware, the specific virtual hardware being one of the plurality of virtual hardware; sending a to-be-migrated instruction to the kernel space, wherein the to-be-migrated instruction records to-be-migrated data, and the to-be-migrated data is associated to the specific virtual hardware; taking out the data to be migrated from the specific virtual hardware in batches and sending the data to be migrated to the kernel space; and sending an end signal to the kernel space after the data to be migrated is sent.
Clause a2, the system of claim a1, wherein the hardware comprises a computing device, the particular virtual hardware being a particular virtual computing device, the computing device comprising: the intelligent processing device is used for executing convolution calculation of the neural network; the shared storage unit is used for temporarily storing the calculation intermediate value of the convolution calculation, the shared storage unit is virtualized into a plurality of virtual shared storage units, and the specific virtual calculation device corresponds to one virtual shared storage unit; wherein the data to be migrated includes a calculation intermediate value stored in the virtual shared storage unit.
Clause A3, the system of claim a2, wherein the computing device further comprises: the storage unit core is virtualized into a plurality of virtual storage unit cores, and the specific virtual computing device is configured with one virtual storage unit core; the data to be migrated comprises data stored in the virtual storage unit core.
Clause a4, the system of claim a1, wherein the hardware comprises a storage device, virtualized into a plurality of virtual storage devices, the particular virtual hardware being a particular virtual storage device, the data to be migrated comprising data stored at the particular virtual storage device.
Clause a5, the system of a1, wherein the hardware comprises a video codec device, the particular virtual hardware being a particular virtual video codec device.
Clause a6, the system of a1, wherein the hardware comprises a JPEG codec, the particular virtual hardware being a particular virtual JPEG codec.
Clause a7, the system of claim 1, wherein the firmware further comprises a plurality of virtual functions, managed by the physical function, the particular virtual hardware corresponding to a virtual function, the physical function idling the virtual function in response to the warm migration initiation request.
Clause A8, the system of claim a1, wherein the physical function releases the hardware and the virtual function when the data to be migrated is sent.
Clause a9, the system of a1, wherein the data to be migrated comprises one of driver, firmware and hardware information, context information, and state information.
Clause a10, the system of claim a1, wherein the kernel space is connected to user space, the user space carrying user virtual machines, the user virtual machines initiating the warm migration initiation request.
Clause a11, the system of a10, wherein the user virtual machine is a flash emulator.
Clause a12, the system of claim a10, wherein the kernel space sends the instruction to be migrated to the user virtual machine and sends the data to be migrated to the user virtual machine.
Clause a13 the system of a10, wherein the kernel space carries a physical function driver, the user space comprises a user-side kernel space, the user-side kernel space carries a virtual function driver, the physical function driver receives the live migration initiation request from the user virtual machine and sends the request to the virtual function driver, and the virtual function driver suspends execution of tasks from the user space.
Clause a14, the system of claim a13, wherein the virtual function driver does not return control instructions to the user space to suspend execution of the task.
Clause a15, the system of claim a13, wherein the kernel space sends the end signal to the virtual function driver, which then performs the task.
Clause a16, the system of claim a13, wherein the virtual function driver notifies the physical function driver after suspending execution of a task from the user space, the physical function driver sends the warm migration initiation request to the physical function.
Clause a17, a system for implementing live migration, coupled to a kernel space, comprising: hardware virtualized as a plurality of virtual hardware; and a read-only memory storing firmware including: a physical function configured to receive data to be migrated, where the data to be migrated is associated with a specific virtual hardware, and the specific virtual hardware is one of the virtual hardware; and a plurality of virtual functions, managed by the physical function, the specific virtual hardware corresponding to one virtual function; the physical function sends the data to be migrated to the specific virtual hardware through the virtual function; and after the data to be migrated is sent, the physical function sends an end signal to the kernel space.
Clause a18, the system of claim a17, wherein the hardware comprises a computing device, the particular virtual hardware being a particular virtual computing device, the computing device comprising: the intelligent processing device is used for executing convolution calculation of the neural network; the shared storage unit is used for temporarily storing the calculation intermediate value of the convolution calculation, the shared storage unit is virtualized into a plurality of virtual shared storage units, and the specific virtual calculation device corresponds to one virtual shared storage unit; and the virtual function stores the calculation intermediate value in the data to be migrated to the virtual shared storage unit.
Clause a19, the system of claim a18, wherein the computing device further comprises: the storage unit core is virtualized into a plurality of virtual storage unit cores, and the specific virtual computing device is configured with one virtual storage unit core; and the virtual function stores corresponding data in the data to be migrated to the virtual storage unit core.
Clause a20, the system of claim a17, wherein the hardware comprises a storage device, virtualized into a plurality of virtual storage devices, the particular virtual hardware being a particular virtual storage device, the virtual function storing respective ones of the data to be migrated to the virtual storage device.
Clause a21, the system of a17, wherein the hardware comprises a video codec device, the particular virtual hardware being a particular virtual video codec device.
Clause a22, the system of a17, wherein the hardware comprises a JPEG codec, the particular virtual hardware being a particular virtual JPEG codec.
Clause a23, the system of a17, wherein the data to be migrated comprises one of driver, firmware and hardware information, context information, and state information.
Clause a24, the system of claim a17, wherein the kernel space is connected to a user space, the user space carrying a user virtual machine, the user virtual machine receiving the data to be migrated off-chip and initiating a warm migration initiation request.
Clause a25, the system of a24, wherein the user virtual machine is a flash emulator.
Clause a26, the system according to a24, wherein the kernel space carries a physical function driver for receiving the data to be migrated from the user virtual machine and sending the data to be migrated to the physical function in response to the warm migration initiation request.
Clause a27, the system of claim a26, wherein the physical function driver sends the end signal to the user virtual machine.
Clause a28 the system of claim 27, wherein the user space comprises a user-side kernel space, the user-side kernel space carrying a virtual function driver, the user virtual machine, in response to the end signal, notifying the virtual function driver that the live migration is complete, the virtual function driver receiving a task from the user space, the task controlling the particular virtual hardware.
Clause a29, the system of claim a28, wherein the user virtual machine, in response to the end signal, changes a state of a base address register, the base address register pointing to the particular virtual hardware.
Clause a30, an integrated circuit device, comprising the system of any one of clauses a 1-29.
Clause a31, a board comprising the integrated circuit device of clause a 30.
Clause a32, a method of performing a live migration save path for a system, the system comprising hardware virtualized into a plurality of virtual hardware, the method comprising: receiving a live migration start request, wherein the live migration start request specifies specific virtual hardware, and the specific virtual hardware is one of the virtual hardware; idling a specific virtual function, the specific virtual function corresponding to the specific virtual hardware; sending data to be migrated in batches from the specific virtual hardware; and sending an end signal after the data to be migrated is sent.
Clause a33, the method of a32, wherein the hardware is one of a computing device, a storage device, a video codec device, and a JPEG codec device of a human intelligence system on a chip.
Clause a34, a method of performing a live migration restoration path for a system, the system comprising hardware virtualized into a plurality of virtual hardware, the method comprising: receiving data to be migrated, wherein the live migration data corresponds to specific virtual hardware, and the specific virtual hardware is one of the virtual hardware; idling a specific virtual function, the specific virtual function corresponding to the specific virtual hardware; sending the data to be migrated to the specific virtual hardware through a specific virtual function; and sending an end signal after the data to be migrated is sent.
Clause a35, the method of a34, wherein the hardware is one of a computing device, a storage device, a video codec device, and a JPEG codec device of a human intelligence system on a chip.
Clause a36, a computer-readable storage medium having stored thereon computer program code for live migration, which when executed by a processor, performs the method of any one of clauses a 32-35.
Claims (36)
1. A system for implementing a thermomigration, coupled to a kernel space, comprising:
hardware virtualized as a plurality of virtual hardware; and
a read-only memory storing firmware comprising:
a physical function to:
receiving a live migration start request from the kernel space, the live migration start request specifying a specific virtual hardware, the specific virtual hardware being one of the plurality of virtual hardware;
sending a to-be-migrated instruction to the kernel space, wherein the to-be-migrated instruction records to-be-migrated data, and the to-be-migrated data is associated to the specific virtual hardware;
taking out the data to be migrated from the specific virtual hardware in batches and sending the data to be migrated to the kernel space; and
and after the data to be migrated is sent, sending an end signal to the kernel space.
2. The system of claim 1, wherein the hardware comprises a computing device, the particular virtual hardware being a particular virtual computing device, the computing device comprising:
the intelligent processing device is used for executing convolution calculation of the neural network; and
the shared storage unit is used for temporarily storing the calculation intermediate value of the convolution calculation, the shared storage unit is virtualized into a plurality of virtual shared storage units, and the specific virtual calculation device corresponds to one virtual shared storage unit;
wherein the data to be migrated includes a calculation intermediate value stored in the virtual shared storage unit.
3. The system of claim 2, wherein the computing device further comprises:
the storage unit core is virtualized into a plurality of virtual storage unit cores, and the specific virtual computing device is configured with one virtual storage unit core;
the data to be migrated comprises data stored in the virtual storage unit core.
4. The system of claim 1, wherein the hardware comprises a storage device, virtualized into a plurality of virtual storage devices, the particular virtual hardware is a particular virtual storage device, and the data to be migrated comprises data stored at the particular virtual storage device.
5. The system of claim 1, wherein the hardware comprises a video codec device, the particular virtual hardware being a particular virtual video codec device.
6. The system of claim 1, wherein the hardware comprises a JPEG codec, the particular virtual hardware being a particular virtual JPEG codec.
7. The system of claim 1, wherein the firmware further comprises a plurality of virtual functions, managed by the physical function, the particular virtual hardware corresponding to one virtual function, the physical function idling the virtual function in response to the warm migration initiation request.
8. The system of claim 1, wherein the physical function releases the hardware and the virtual function after the data to be migrated is sent.
9. The system of claim 1, wherein the data to be migrated comprises one of driver, firmware and hardware information, context information, and state information.
10. The system of claim 1, wherein the kernel space is connected to a user space, the user space carrying a user virtual machine, the user virtual machine initiating the warm migration boot request.
11. The system of claim 10, wherein the user virtual machine is a flash emulator.
12. The system of claim 10, wherein the kernel space sends the instruction to be migrated to the user virtual machine and sends the data to be migrated to the user virtual machine.
13. The system of claim 10, wherein the kernel space hosts a physical function driver, the user space comprises a user-side kernel space, the user-side kernel space hosts a virtual function driver, the physical function driver receives the live-migration initiation request from the user virtual machine and sends the request to the virtual function driver, and the virtual function driver suspends execution of tasks from the user space.
14. The system of claim 13, wherein the virtual function driver does not return control instructions to the user space to suspend execution of the task.
15. The system of claim 13, wherein the kernel space sends the end signal to the virtual function driver, which subsequently executes the task.
16. The system of claim 13, wherein the virtual function driver notifies the physical function driver after suspending execution of a task from the user space, the physical function driver sending the warm migration initiation request to the physical function.
17. A system for implementing a thermomigration, coupled to a kernel space, comprising:
hardware virtualized as a plurality of virtual hardware; and
a read-only memory storing firmware comprising:
a physical function configured to receive data to be migrated, where the data to be migrated is associated with a specific virtual hardware, and the specific virtual hardware is one of the virtual hardware; and
a plurality of virtual functions managed by the physical function, the specific virtual hardware corresponding to one virtual function;
the physical function sends the data to be migrated to the specific virtual hardware through the virtual function; and after the data to be migrated is sent, the physical function sends an end signal to the kernel space.
18. The system of claim 17, wherein the hardware comprises a computing device, the particular virtual hardware being a particular virtual computing device, the computing device comprising:
the intelligent processing device is used for executing convolution calculation of the neural network; and
the shared storage unit is used for temporarily storing the calculation intermediate value of the convolution calculation, the shared storage unit is virtualized into a plurality of virtual shared storage units, and the specific virtual calculation device corresponds to one virtual shared storage unit;
and the virtual function stores the calculation intermediate value in the data to be migrated to the virtual shared storage unit.
19. The system of claim 18, wherein the computing device further comprises:
the storage unit core is virtualized into a plurality of virtual storage unit cores, and the specific virtual computing device is configured with one virtual storage unit core;
and the virtual function stores corresponding data in the data to be migrated to the virtual storage unit core.
20. The system of claim 17, wherein the hardware comprises a storage device, virtualized into a plurality of virtual storage devices, the particular virtual hardware being a particular virtual storage device, the virtual function storing respective ones of the data to be migrated to the virtual storage device.
21. The system of claim 17, wherein the hardware comprises a video codec device, the particular virtual hardware being a particular virtual video codec device.
22. The system of claim 17, wherein the hardware comprises a JPEG codec, the particular virtual hardware being a particular virtual JPEG codec.
23. The system of claim 17, wherein the data to be migrated comprises one of driver, firmware and hardware information, context information, and state information.
24. The system of claim 17, wherein the kernel space is connected to a user space, the user space carrying a user virtual machine that receives the data to be migrated off-chip and initializes a warm migration initiation request.
25. The system of claim 24, wherein the user virtual machine is a flash emulator.
26. The system of claim 24, wherein the kernel space carries a physical function driver to receive the data to be migrated from the user virtual machine and to send the data to be migrated to the physical function in response to the live migration initiation request.
27. The system of claim 26, wherein the physical function driver sends the end signal to the user virtual machine.
28. The system of claim 27, wherein the user space comprises a user-side kernel space, the user-side kernel space carrying a virtual function driver, the user virtual machine notifying the virtual function driver that the live migration is complete in response to the end signal, the virtual function driver receiving a task from the user space, the task controlling the particular virtual hardware.
29. The system of claim 28, wherein the user virtual machine changes a state of a base address register in response to the end signal, the base address register pointing to the particular virtual hardware.
30. An integrated circuit device comprising the system of any one of claims 1-29.
31. A board card comprising the integrated circuit device of claim 30.
32. A method of live migration preservation of a path to a system, the system comprising hardware, virtualized into a plurality of virtual hardware, the method comprising:
receiving a live migration start request, wherein the live migration start request specifies specific virtual hardware, and the specific virtual hardware is one of the virtual hardware;
idling a specific virtual function, the specific virtual function corresponding to the specific virtual hardware;
sending data to be migrated in batches from the specific virtual hardware; and
and sending an end signal after the data to be migrated is sent.
33. The method of claim 32, wherein the hardware is one of a computing device, a storage device, a video codec device, and a JPEG codec device of a system on artificial intelligence chip.
34. A method of performing a live migration restoration path for a system, the system comprising hardware, virtualized into a plurality of virtual hardware, the method comprising:
receiving data to be migrated, wherein the live migration data corresponds to specific virtual hardware, and the specific virtual hardware is one of the virtual hardware;
idling a specific virtual function, the specific virtual function corresponding to the specific virtual hardware;
sending the data to be migrated to the specific virtual hardware through a specific virtual function; and
and sending an end signal after the data to be migrated is sent.
35. The method of claim 34, wherein the hardware is one of a computing device, a storage device, a video codec device, and a JPEG codec device of a system on artificial intelligence chip.
36. A computer readable storage medium having stored thereon computer program code for live migration, which when executed by a processor, performs the method of any of claims 32-35.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010379648.XA CN113626131B (en) | 2020-05-07 | 2020-05-07 | Method, chip, board card and storage medium for realizing thermal migration |
EP21800406.7A EP4148568A4 (en) | 2020-05-07 | 2021-05-07 | Method for realizing live migration, chip, board, and storage medium |
PCT/CN2021/092199 WO2021223744A1 (en) | 2020-05-07 | 2021-05-07 | Method for realizing live migration, chip, board, and storage medium |
US17/923,677 US20230185595A1 (en) | 2020-05-07 | 2021-05-07 | Method for realizing live migration, chip, board, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010379648.XA CN113626131B (en) | 2020-05-07 | 2020-05-07 | Method, chip, board card and storage medium for realizing thermal migration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626131A true CN113626131A (en) | 2021-11-09 |
CN113626131B CN113626131B (en) | 2023-03-28 |
Family
ID=78377071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010379648.XA Active CN113626131B (en) | 2020-05-07 | 2020-05-07 | Method, chip, board card and storage medium for realizing thermal migration |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230185595A1 (en) |
EP (1) | EP4148568A4 (en) |
CN (1) | CN113626131B (en) |
WO (1) | WO2021223744A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114500718B (en) * | 2021-12-27 | 2023-11-03 | 天翼云科技有限公司 | Cloud mobile phone management method and device |
CN114691300A (en) * | 2022-03-25 | 2022-07-01 | 阿里巴巴(中国)有限公司 | Hot migration method of virtual machine instance |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398770A (en) * | 2007-09-30 | 2009-04-01 | 赛门铁克公司 | System for and method of migrating one or more virtual machines |
US20100083276A1 (en) * | 2008-09-30 | 2010-04-01 | Microsoft Corporation | On-the-fly replacement of physical hardware with emulation |
US20110066597A1 (en) * | 2009-09-14 | 2011-03-17 | Vmware, Inc. | Method and System for Performing Live Migration of Persistent Data of a Virtual Machine |
US20130238786A1 (en) * | 2012-03-08 | 2013-09-12 | Empire Technology Development Llc | Secure migration of virtual machines |
WO2017020927A1 (en) * | 2015-07-31 | 2017-02-09 | Hewlett-Packard Development Company, L P | Migration of computer systems |
CN108037980A (en) * | 2018-01-02 | 2018-05-15 | 腾讯科技(深圳)有限公司 | Control performs the method, apparatus and readable storage medium storing program for executing of live migration of virtual machine |
US20190129744A1 (en) * | 2016-06-29 | 2019-05-02 | Altera Corporation | Live migration of hardware accelerated applications |
US20190361732A1 (en) * | 2018-05-25 | 2019-11-28 | Vmware, Inc. | Live migration of a virtualized compute accelerator workload |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262557B (en) * | 2010-05-25 | 2015-01-21 | 运软网络科技(上海)有限公司 | Method for constructing virtual machine monitor by bus architecture and performance service framework |
KR20120117151A (en) * | 2011-04-14 | 2012-10-24 | 삼성전자주식회사 | Apparatus and method for generating performing virtual machine vm migration process in device |
CN108121574B (en) * | 2016-11-29 | 2021-09-24 | 阿里巴巴集团控股有限公司 | Hot upgrading method and device for kernel module and virtual machine system |
-
2020
- 2020-05-07 CN CN202010379648.XA patent/CN113626131B/en active Active
-
2021
- 2021-05-07 WO PCT/CN2021/092199 patent/WO2021223744A1/en unknown
- 2021-05-07 US US17/923,677 patent/US20230185595A1/en active Pending
- 2021-05-07 EP EP21800406.7A patent/EP4148568A4/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398770A (en) * | 2007-09-30 | 2009-04-01 | 赛门铁克公司 | System for and method of migrating one or more virtual machines |
US20100083276A1 (en) * | 2008-09-30 | 2010-04-01 | Microsoft Corporation | On-the-fly replacement of physical hardware with emulation |
US20110066597A1 (en) * | 2009-09-14 | 2011-03-17 | Vmware, Inc. | Method and System for Performing Live Migration of Persistent Data of a Virtual Machine |
US20130238786A1 (en) * | 2012-03-08 | 2013-09-12 | Empire Technology Development Llc | Secure migration of virtual machines |
WO2017020927A1 (en) * | 2015-07-31 | 2017-02-09 | Hewlett-Packard Development Company, L P | Migration of computer systems |
US20190129744A1 (en) * | 2016-06-29 | 2019-05-02 | Altera Corporation | Live migration of hardware accelerated applications |
CN108037980A (en) * | 2018-01-02 | 2018-05-15 | 腾讯科技(深圳)有限公司 | Control performs the method, apparatus and readable storage medium storing program for executing of live migration of virtual machine |
US20190361732A1 (en) * | 2018-05-25 | 2019-11-28 | Vmware, Inc. | Live migration of a virtualized compute accelerator workload |
Non-Patent Citations (1)
Title |
---|
孙彩兰: "私有云研究与设计", 《好家长》 * |
Also Published As
Publication number | Publication date |
---|---|
WO2021223744A1 (en) | 2021-11-11 |
US20230185595A1 (en) | 2023-06-15 |
CN113626131B (en) | 2023-03-28 |
EP4148568A4 (en) | 2024-07-31 |
EP4148568A1 (en) | 2023-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8972991B2 (en) | Systems and methods for exposing processor topology for virtual machines | |
RU2532708C2 (en) | Method and apparatus for input/output operation in virtualisation environment | |
CN112286645B (en) | GPU resource pool scheduling system and method | |
US5706514A (en) | Distributed execution of mode mismatched commands in multiprocessor computer systems | |
US9798565B2 (en) | Data processing system and method having an operating system that communicates with an accelerator independently of a hypervisor | |
CN107479943B (en) | Multi-operating-system operation method and device based on industrial Internet operating system | |
US20120054740A1 (en) | Techniques For Selectively Enabling Or Disabling Virtual Devices In Virtual Environments | |
US20180060103A1 (en) | Guest code emulation by virtual machine function | |
CN103034524A (en) | Paravirtualized virtual GPU | |
CN106844007A (en) | A kind of virtual method and system based on spatial reuse | |
CN104714846A (en) | Resource processing method, operating system and equipment | |
CN113326226A (en) | Virtualization method and device, board card and computer readable storage medium | |
WO2020192448A1 (en) | Migration method and system of virtual machine | |
US20110219373A1 (en) | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform | |
WO2018144102A1 (en) | Technologies for duplicating virtual machine states | |
CN113626131B (en) | Method, chip, board card and storage medium for realizing thermal migration | |
CN114138423B (en) | Virtualized construction system and method based on domestic GPU graphics card | |
WO2022001808A1 (en) | System and interrupt processing method | |
CN112433823A (en) | Apparatus and method for dynamically virtualizing physical card | |
CN111857943B (en) | Data processing method, device and equipment | |
CN115904617A (en) | GPU virtualization implementation method based on SR-IOV technology | |
CN114281467A (en) | System method, device and storage medium for realizing heat migration | |
CN113568734A (en) | Virtualization method and system based on multi-core processor, multi-core processor and electronic equipment | |
CN113434087A (en) | Multi-core starting method based on shared space | |
CN113326091A (en) | Virtualization method, virtualization device, board card and computer-readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |