WO2017114361A1 - 一种配置加速器的方法和装置 - Google Patents
一种配置加速器的方法和装置 Download PDFInfo
- Publication number
- WO2017114361A1 WO2017114361A1 PCT/CN2016/112143 CN2016112143W WO2017114361A1 WO 2017114361 A1 WO2017114361 A1 WO 2017114361A1 CN 2016112143 W CN2016112143 W CN 2016112143W WO 2017114361 A1 WO2017114361 A1 WO 2017114361A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- accelerator
- service
- bare
- target
- server
- Prior art date
Links
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- 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]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
-
- 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/4401—Bootstrapping
Definitions
- the present invention relates to the field of computer technologies, and in particular, to a method and apparatus for configuring an accelerator.
- Accelerator is information technology (English name: information technology, English abbreviation: IT), communication technology (English full name: communication technology, English abbreviation: CT) and information and communication technology (English full name: information and communications technology, English abbreviation: ICT)
- Commonly used accelerator hardware includes: field programmable gate array (English name: field-programmable gate array, English abbreviation: FPGA), graphics processor (English full name: graphic processing unit, English abbreviation: GPU), digital signal processing (English full name : digital signal process, English abbreviation: DSP), integrated circuit (English full name: application specific integrated circuit, English abbreviation: ASIC).
- the accelerator set in the server is an accelerator generated after the business logic function corresponding to a certain service has been loaded, and once an accelerator is set in the server, it can always provide an acceleration service for one type of service. Due to the variety of service types, in order to provide acceleration services for each type of service, the accelerator corresponding to each service type needs to be set in the server. However, the server is not always available. All need to provide acceleration services for each type of service, so some accelerators will be idle at the same time, which will make the utilization of accelerator resources lower.
- Embodiments of the present invention provide a method and apparatus for configuring an accelerator to improve utilization of accelerator resources.
- a method of configuring an accelerator for use in a server including at least one bare accelerator, wherein the bare accelerator refers to an accelerator generated after loading basic logic functions for the accelerator hardware, the basic logic functions including Communication interface function and loading function; the method includes:
- the server loads the service logic function corresponding to the target service type for the target bare accelerator, and generates a target service accelerator, wherein the target service accelerator can provide an acceleration service for the service with the target service type.
- the method for configuring an accelerator provided by the embodiment of the present invention generates a service accelerator by determining a target service type and a target bare accelerator, thereby loading a target logical accelerator with a service logic function corresponding to the target service type. That is to say, in the embodiment of the present invention, when an acceleration service needs to be provided for a certain service, a service accelerator is configured for the service, that is, an on-demand setting, and an acceleration service is provided for each service in advance compared with the prior art.
- the accelerator's technical solution can improve the utilization of accelerator resources.
- an apparatus for configuring an accelerator for use in a server including at least one bare accelerator, wherein the bare accelerator refers to an accelerator generated after loading basic logic functions for the accelerator hardware, the basic logic functions including Communication interface function and loading function; the device comprises:
- a determining unit configured to determine a target service type and a target bare accelerator, and determine a service logic function corresponding to the target service type
- a loading unit configured to load a service logic function corresponding to the target service type for the target bare accelerator, to generate a target service accelerator, wherein the target service accelerator can provide an acceleration service for a service having the target service type.
- the technical effects that can be obtained can refer to the technical effects in the above first aspect, and Let me repeat.
- the determining, by the server, the target service type and the target bare accelerator may include: receiving, by the server, a target service type sent by the user equipment, if the server There is no accelerator for providing acceleration service for the service having the target service type, and the server selects one bare accelerator from the at least one bare accelerator as the target bare accelerator.
- the determining unit is specifically configured to: receive a target service type sent by the user equipment, if the server does not have the target service type
- the service provides an acceleration service accelerator, and selects one bare accelerator from the at least one bare accelerator as the target bare accelerator.
- the server selects the target bare accelerator autonomously.
- the server may determine the target bare accelerator according to a certain rule. The embodiment of the present invention does not limit the rule.
- the determining, by the server, the target service type and the target bare accelerator may include: the server receiving the target service type sent by the user equipment and the identifier of the target bare accelerator.
- the determining unit is specifically configured to: receive a target service type sent by the user equipment and an identifier of the target bare accelerator.
- the target bare accelerator is specified by the user. In this way, the user's experience can improve the user's experience.
- the method may further include: the server uninstalling a service logic function corresponding to the target service type loaded in the target service accelerator, and generating a bare accelerator.
- the apparatus may further include: an unloading unit, configured to uninstall the target loaded in the target service accelerator, according to the foregoing second aspect or any optional implementation manner of the second aspect, Business logic function corresponding to the business type, generating a bare accelerator
- the service accelerator generates a bare accelerator by uninstalling the service logic function loaded in the service accelerator.
- the server may further load the service type of the bare accelerator by using the method provided by the first aspect.
- the corresponding business logic function so that a bare accelerator can provide acceleration services for different types of services at different times, that is, one physical device can be configured to support an acceleration engine of different services, thereby satisfying different types of services. Accelerated demand, therefore, has great flexibility; in addition, it can use less accelerator hardware to provide acceleration services for more types of services, thereby saving hardware resources.
- each accelerator hardware can be fully utilized, thereby greatly improving resource utilization.
- the method may further include: the server is configured to update a set of identifiers of the bare accelerators and a set of identifiers of the service accelerators. At least one of them.
- the apparatus may further include: an updating unit, configured to update at least one of a set of identifiers of the bare accelerators and a set of identifiers of the service accelerators.
- an updating unit configured to update at least one of a set of identifiers of the bare accelerators and a set of identifiers of the service accelerators.
- the server may periodically or triggerably update at least one of the set of the identifiers of the bare accelerators and the set of the identifiers of the service accelerators. For example, each preset time period updates at least one of a set consisting of a set of identifiers of the bare accelerators and a set of identifiers of the service accelerators; or, when the set of identifiers of the bare accelerators and the identifier of the service accelerator are formed, When the element in at least one of the elements changes, it is updated.
- the method may further include: the server sending, to the user equipment, a set of identifiers of the bare accelerators and an identifier of the service accelerator. At least one of the collections.
- the device may further include: a sending unit, configured to send, to the user equipment, a set and service formed by the identifier of the bare accelerator, according to the optional implementation of the foregoing second aspect or the second aspect. At least one of the set of identifiers of the accelerator.
- the user equipment may display a set formed by the identifier of the bare accelerator and the identifier formed by the service accelerator, thereby Enables the user to specify a target bare accelerator or target traffic accelerator based on what is displayed on the user device.
- the method may further include: the server displaying a set of identifiers formed by the bare accelerator and a set of identifiers of the service accelerator At least one of them.
- the method may further include: a display unit, configured to display a set of identifiers of the bare accelerators and a set of identifiers of the service accelerators, based on the foregoing second aspect or the optional implementation of the second aspect. At least one of them.
- the server may display a set of identifiers formed by the identification of the bare accelerator and a logo of the service accelerator, so that the administrator can specify the target bare accelerator or the target traffic accelerator according to the content displayed on the server.
- an apparatus for configuring an accelerator for use in a server including at least one bare accelerator, wherein the bare accelerator refers to an accelerator generated after loading basic logic functions for the accelerator hardware, the basic logic functions including a communication interface function and a load function; the device comprising: a processor, a memory, and a system bus; the memory for storing computer execution instructions, the processor being coupled to the memory via the system bus, when the device is running The processor executes the computer-executed instructions stored by the memory to cause the apparatus to perform any of the methods of configuring the accelerator provided by the first aspect or any alternative implementation of the first aspect. .
- a server comprising: any one of the foregoing second aspect or the third aspect, wherein the accelerator is configured.
- a readable medium comprising computer-executable instructions that, when executed by a processor of a server, execute the method of configuring an accelerator.
- the apparatus, the server, and the readable medium for configuring the accelerator in the embodiment of the present invention are both used to execute the method for configuring the accelerator described in the above first aspect, the technical effects that can be obtained can be referred to the above first aspect. Technical effects, not repeated here.
- FIG. 1 is a schematic diagram 1 of a hardware architecture of a server to which the technical solution provided by the embodiment of the present invention is applied;
- FIG. 2 is a second schematic diagram of a hardware architecture of a server to which the technical solution provided by the embodiment of the present invention is applied;
- FIG. 3 is a schematic flowchart of a method for configuring an accelerator according to an embodiment of the present invention.
- FIG. 4 is a schematic diagram 3 of a hardware architecture of a server to which the technical solution provided by the embodiment of the present invention is applied;
- FIG. 5 is a schematic structural diagram 1 of an apparatus for configuring an accelerator according to an embodiment of the present disclosure
- FIG. 6 is a schematic structural diagram 2 of an apparatus for configuring an accelerator according to an embodiment of the present disclosure
- FIG. 7 is a schematic structural diagram of a communication device according to an embodiment of the present invention.
- Common accelerator hardware includes: FPGA, GPU, DSP, ASIC, etc.
- Accelerator hardware can be divided into programmable accelerator hardware and non-programmable accelerator hardware.
- the accelerator hardware involved in the embodiment of the present invention may refer to programmable accelerator hardware. .
- the accelerator hardware after loading basic logic functions and business logic functions can provide accelerated services for the business.
- the basic logic functions include the communication interface function and the loading function
- the business logic function refers to the function that enables the accelerator hardware to provide an acceleration service for a certain service.
- the accelerator set in the server in advance is the accelerator hardware that has loaded the basic logic function and the business logic function. Therefore, in the prior art, it is only necessary to distinguish the accelerator hardware from the accelerator loaded with the basic logic function and the business logic function.
- the hardware can be, specifically, the accelerator hardware after loading the basic logic function and the business logic function is called an "accelerator".
- the accelerator that is set in the server in advance may be the accelerator hardware or the accelerator hardware loaded with the basic logic function. Therefore, in the embodiment of the present invention, the accelerator hardware and the accelerator hardware loaded with the basic logic function need to be distinguished. As well as the accelerator hardware loaded with the business logic function, specifically, the accelerator hardware loaded with the basic logic function is called “naked accelerator”, and the accelerator hardware loaded with the business logic function is called “service accelerator”.
- the server in the application may be a general server; or a cloud server, that is, a server in a cloud environment.
- a cloud server can include all service devices in a clouded scenario.
- Each service device included in the cloud server can be configured with a central processing unit (English name: central processing unit; English abbreviation: CPU), that is, each service device included in the cloud server can be used as an independent entity; one of the cloud servers Or multiple service devices can serve as the control end of the cloud server for controlling other service devices.
- Any two service devices included in the cloud server can be far apart in physical location, for example, one service device is located in city A and another service device is located in city B.
- FIG. 1 it is a schematic diagram of a hardware architecture of a server to which the technical solution provided by the embodiment of the present invention is applied.
- the server shown in Figure 1 includes a service board, a service board 2, and a switch board.
- Each service board may correspond to one of the foregoing service devices, or multiple service boards may also correspond to one of the service devices, that is, multiple service boards are integrated into one service device.
- the service board 1 includes a CPU (hereinafter referred to as a main CPU) and a network card.
- the service board 1 has a cloud operating system (English name: operating system, English abbreviation: OS).
- OS operating system
- the main CPU and the network card pass through Interconnected with external devices (English full name: peripheral component interconnect express, English abbreviation: PCIe) bus connection.
- the service board 2 includes a CPU (hereinafter referred to as a slave CPU) and an accelerator hardware 1 to an accelerator hardware N, where N is an integer greater than or equal to 2; for example, the slave CPU passes between the accelerator hardware 1 and the accelerator hardware N PCIe bus connection.
- a slave CPU a CPU
- N is an integer greater than or equal to 2
- the slave CPU passes between the accelerator hardware 1 and the accelerator hardware N PCIe bus connection.
- the switch board is used to connect the service board 1 to the service board 2.
- the NIC and the switch board in the service board 1 are connected by a bus (such as a 10GE Base-KR bus), and the service board 2
- the CPU is connected to the switch board through a bus (such as a 10GE Base-KR bus).
- the service board 1 serves as the control end.
- the main CPU in the service board 1 can implement the control of the accelerator hardware 1 to the accelerator hardware N in the service board 2 based on, for example, the cloud OS.
- the service board 1 can be called the main service board, that is, the control board.
- the service board 2 can be called the slave service board.
- One main service board can pass one or more switch boards and multiple slave boards.
- a single service board can be configured with one or more accelerator hardware. Different service boards can be distributed in the same physical area or different physical areas.
- Each slave CPU can manage multiple accelerator hardware, bare accelerators, and traffic accelerators on the slave service board on which it resides. For example, each slave CPU can load business logic functions into multiple accelerator hardware on the service board it is on. For example, each slave CPU can also assign an identifier to a newly generated bare accelerator or a newly generated service accelerator, or delete the identity of a bare accelerator that has generated a service accelerator, or delete the identity of a service accelerator that has generated a bare accelerator, and the like. For example, each slave CPU can also report the identity of the bare accelerator on the board where the slave CPU is located and the identifier of the service accelerator to the main CPU.
- the main CPU can control each of the accelerator hardware, the bare accelerator, and the service accelerator included in the service board on which the slave CPU manages. For example, the main CPU determines when each slave CPU loads the business logic function to which accelerator hardware, and the like; In addition, the main CPU can also count and update the identity of each bare accelerator reported by the CPU and the identity of the service accelerator.
- the main service board (for example, the service board 1 in FIG. 1) may be referred to as the cloud, and the service board (for example, the service board 2 in FIG. 1) may be referred to as an acceleration service provider.
- the cloud can also be connected to one or more user equipments (English name: user equipment, English abbreviation: UE), which is not shown in FIG.
- the user accesses the “cloud (ie, cloud)” through the client installed on the UE, similar to logging in to the Baidu cloud website, etc.; the cloud accelerates the service through control.
- the providing end provides an acceleration service for the service accessed by the UE.
- the hardware shown in FIG. 1 is only an optional implementation manner.
- the service board 1 and the service board 2 can be combined on one board, that is, into one service board.
- the server board may not include a switch board, and may only include one CPU, that is, the main CPU and the slave CPU are not distinguished.
- the service board can also be connected to one or more UEs without distinguishing between the cloud and the acceleration service provider.
- FIG. 2 it is a schematic diagram of a hardware architecture of a server to which the technical solution provided by the embodiment of the present invention is applied.
- the server shown in FIG. 2 includes a service board including a CPU and an accelerator hardware 1 to an accelerator hardware N, where N is an integer greater than or equal to 2; for example, CPU and accelerator hardware 1 to accelerator hardware N Connected via a PCIe bus.
- Multiple in the present application means two or more.
- multiple accelerators refer to two or more accelerators.
- the character "/" in the present application means the relationship of "or", for example, A/B means A or B.
- a method for configuring an accelerator according to an embodiment of the present invention is applied to a server including at least one bare accelerator, where the bare accelerator refers to an accelerator generated after the basic logic function is loaded for the accelerator hardware.
- the basic logic functions include the communication interface function and the loading function, excluding the "business logic function", that is, the accelerator loaded with the basic logic function does not have the function of processing the service; the method may include the following steps S301-S303:
- S301 The server determines a target service type and a target bare accelerator.
- the "service type” may be a type of service related to various media (such as a service type such as a picture, an audio, or a video), or another type of service that needs to be accelerated; the target service type may be any type of service supported by the server. .
- One or more bare accelerators can be preset in the server.
- one or more accelerator hardware may be preset in the server, and then a basic accelerator function is loaded for each accelerator hardware through a CPU on a service board where each accelerator hardware is located, thereby generating a bare accelerator; for example, based on FIG. 1, it may be pre- Set on the service board 2
- the accelerator hardware 1 to the accelerator hardware N are placed, and then the basic logic function is loaded by the slave CPU on the service board 2 for the accelerator hardware 1 to the accelerator hardware N, thereby generating a bare accelerator.
- the target bare accelerator can be a bare accelerator determined by the server itself or a bare accelerator indicated by the user.
- the basic logic can be loaded into a specific location of the accelerator hardware to implement basic functions such as a communication interface (such as a PCIe interface) and a loading function.
- a communication interface such as a PCIe interface
- the accelerator hardware can act as a device conforming to the communication interface protocol and communicate with the CPU.
- the communication interface is a PCIe communication interface
- the bare accelerator is powered on (that is, after the bare accelerator chip is powered on)
- the bare accelerator is presented as a PCIe device in the cloud OS, which can be through the PCIe communication interface and the service ticket where it is located. Communication between the CPUs on the board.
- the process for the server to load the basic logic function for the accelerator hardware by using the CPU on the service board where the accelerator hardware is located may include: the CPU scans the accelerator hardware on the service board to which it belongs, for example, based on FIG.
- the slave CPU on the board 2 scans the accelerator hardware 1 to the accelerator hardware N, wherein as long as one device/device complies with the PCIe specification, the CPU on the service board where the device/device is located runs the basic input/output system (English full name) :basic input output system, the English abbreviation: BIOS) related program, you can scan the device / device; then, through the scanned bus hardware function BDF number corresponding to the accelerator hardware, determine the driver corresponding to the accelerator hardware, A PCIe device corresponds to a BDF number, and a BDF number corresponds to a driver; then, the driver is executed from the CPU to generate a bare accelerator for the accelerator hardware, and an identifier is assigned to the bare accelerator.
- the basic logic functions loaded on the bare accelerator in the service board can be the same or different.
- one of the servers is connected from the bare accelerator on the service board to the slave CPU on the slave service board through the PCIe bus.
- the communication interface in the basic logic function refers to the PCIe communication interface.
- the basic logic functions loaded on each bare accelerator are the same, and the communication interface is a PCIe communication interface as an example.
- S302 The server determines a service logic function corresponding to the target service type.
- the server may pre-store one or more service types supported by the server, and a service logic function corresponding to each service type.
- the server stores in advance a service logic function corresponding to each service type supported by the server.
- the service logic function corresponding to the service type stored in the server may be updated. For example, when the server supports a new service, the service logic function corresponding to the service type of the new service may be loaded into the server.
- the business logic functions can be stored in a folder from the specified path of the service board.
- S303 The server loads the service logic function corresponding to the target service type for the target bare accelerator, and generates a target service accelerator, where the target service accelerator can provide an acceleration service for the service with the target service type.
- the execution body of step S301 and step S302 may be the main CPU in the server, and the execution body of step S303 may be the slave CPU in the server.
- the execution body of steps S301 to S303 may be a CPU in the server.
- the business logic function corresponding to the target service type in the folder of the specified path is loaded from the CPU through the PCIe bus to the target bare accelerator, and the target service accelerator is generated. Specifically, the loading process can be completed by driving the target bare accelerator.
- the method for configuring an accelerator provided by the embodiment of the present invention generates a service accelerator by determining a target service type and a target bare accelerator, thereby loading a target logical accelerator with a service logic function corresponding to the target service type. That is to say, in the embodiment of the present invention, when an acceleration service needs to be provided for a certain service, a service accelerator is configured for the service, that is, an on-demand setting, and an acceleration service is provided for each service in advance compared with the prior art.
- the accelerator's technical solution can improve the utilization of accelerator resources.
- FIG. 4 is a schematic diagram of a hardware architecture of a server according to an embodiment of the present invention, which is based on FIG. 1 .
- the service board 2 also includes FPGAx (where x represents 0, 1, 2, ..., FPGAx indicates that there may be multiple FPGA chips), which is used to implement the network card function and the PCIe controller function, and is responsible for hardware acceleration device data respectively.
- Plane and control plane communication for example, from the CPU and FPGAx through the PCIe bus connection, FPGAx and accelerator hardware 1 ⁇ accelerator hardware N through the parallel converter (English full name: serializer-deserialize, English abbreviation: serdes) bus connection
- the FPGAx is connected to the switch board through the serdes bus.
- the service board 1 also includes an FPGA.
- the FPGA in the service board 1 is connected to the switch board through a serdes bus.
- the method may further include: assigning an identifier to the target service accelerator from the CPU, and then reporting the identifier of the target service accelerator to the main CPU; wherein the process may be referred to as a process of registering the target service accelerator to the cloud OS.
- the server can accelerate the service by using the path "main CPU-network card-FPGA-serdes bus-switching board-serdes bus-FPGAx-accelerator hardware 1 to accelerator hardware N" in the hardware architecture as shown in FIG. In this way, the service data can be accelerated through the dedicated hardware path without accelerating the service from the CPU.
- the step S301 may include: the server receives the target service type sent by the UE, and if there is no service accelerator corresponding to the target service type in the server, the server selects a bare accelerator from the at least one bare accelerator as the server. Target bare accelerator.
- the service accelerator corresponding to the target service type refers to a service accelerator that provides an acceleration service for a service with a target type service.
- the server autonomously selects the target bare accelerator.
- the main CPU receives the target service type sent by the UE, and determines whether the set of the identifier of the service accelerator includes the service accelerator corresponding to the target service type. If not, select a bare one in the set formed by the identifier of the bare accelerator.
- the identification of the accelerator is used as the identification of the target bare accelerator.
- the primary CPU may arbitrarily select the identifier of one bare accelerator as the identifier of the target bare accelerator in the set of the identifiers of the bare accelerators, or may select the distance between the UE and the UE to be smaller than the set of the identifiers of the bare accelerators.
- An identifier of a bare accelerator in the identifier of the bare accelerator reported from the CPU equal to the preset value is used as the identifier of the target bare accelerator. Of course not limited to this.
- the set of identifiers of the service accelerators in the optional implementation may be a set of identifiers of some or all of the service accelerators reported by the CPU; the set of identifiers of the bare accelerators may be part or all reported by the CPU. A collection of identifications of bare accelerators.
- the server can directly use the service accelerator to provide an acceleration service for the service with the target service type, and the specific acceleration service implementation manner can refer to the current There is technology, so I won't go into details here.
- the server may also receive a service accelerator of the set of the service accelerator, such as any one of the service accelerators or a service accelerator that is idle at the current time or a service ticket that is closer to the UE.
- the service logic function loaded on a service accelerator or a service accelerator carried in the indication message is unloaded to generate a bare accelerator; then, the bare accelerator is re-generated to generate a target service accelerator.
- step S301 may include: the server receiving the target service type sent by the user equipment and the identifier of the target bare accelerator.
- the target bare accelerator is specified by the user.
- the UE may provide a UI to the user, so that the user indicates the target bare accelerator to the UE, so that the UE indicates the identifier of the target bare accelerator to the server.
- the method may further include: the server uninstalling the service logic function corresponding to the target service type loaded in the target service accelerator, and generating a bare accelerator.
- the optional implementation manner is to enable the service accelerator to generate a bare accelerator by uninstalling the service logic function loaded in the service accelerator. Further, the server may further load the bare accelerator by using the method provided in the foregoing steps S301-S303.
- the service logic function corresponding to the service type so that a bare accelerator can provide acceleration services for different types of services at different times, that is, one physical device can be configured to support Different business acceleration engines to meet the needs of accelerating different types of services, so it has great flexibility; in addition, it can use less accelerator hardware to provide acceleration services for more types of services, thus saving hardware resources. .
- each accelerator hardware can be fully utilized, thereby greatly improving resource utilization.
- Example 1 The server receives the indication message of the UE, where the indication message carries the identifier of the target service accelerator, and is used to instruct the server to uninstall the service logic function corresponding to the target service type loaded in the target service accelerator; the server according to the indication message Unload the business logic function corresponding to the target service type loaded in the target service accelerator to generate a bare accelerator.
- the main CPU receives an indication message sent by the UE, where the indication message carries the identifier of the target service accelerator; and then sends the indication message to the slave CPU on the service board where the target service accelerator is located;
- the slave controller unloads the service logic function corresponding to the target service type loaded in the target service accelerator according to the indication message, and generates a bare accelerator.
- the method may further include: deleting the identifier of the target service accelerator from the CPU, and assigning an identifier to the bare accelerator.
- Example 2 Based on an optional implementation manner of the foregoing step 301, if the server determines that there is no service accelerator corresponding to the target service type in the set formed by the service accelerator, and the set formed by the bare accelerator is empty, that is, the bare accelerator does not exist in the server.
- the server carries one of the service accelerators in the set of the service accelerators, for example, any one of the service accelerators or a service accelerator that is currently idle or a service accelerator or an indication message on a service board that is closer to the UE.
- a business accelerator, etc. is loaded on the business logic function to unload and generate a bare accelerator. Then, the service accelerator corresponding to the target service type is generated again for the bare accelerator.
- the method may further include: the server assigning an identifier to the target service accelerator, and deleting the identifier of the target bare accelerator.
- the method may further include: the server updating at least one of a set of identifiers of the bare accelerators and a set of identifiers of the service accelerators.
- the identifier of the target service accelerator may reflect some attribute information, for example, the VCx represents a service accelerator corresponding to the audio and video service; the embodiment of the present invention does not limit information such as the field and type occupied by the attribute information.
- the slave CPU may assign an identifier to the target traffic accelerator and delete the identifier of the target bare accelerator; then, the slave CPU sends the target to the primary CPU. a first indication message and a second indication message, where the first indication message includes an identifier of the target service accelerator, so that the main CPU increases the identifier of the target service accelerator in the set formed by the identifier of the service accelerator; Contains the identity of the target bare accelerator to cause the primary CPU to delete the destination in the set of identifications of the bare accelerator The identity of the standard business accelerator.
- the first indication message and the second indication message may be combined into the same indication message, thereby reducing signaling interaction.
- the main CPU initiates hot plugging, thereby updating the set of raw accelerators and the set of service accelerators.
- hot plugging is a software function of the cloud OS, which is used to update the set of naked accelerators and the set of service accelerators.
- the main CPU can initiate hot plugging periodically or triggeringly.
- the at least one of the set of the identifiers of the bare accelerators and the set of the identifiers of the service accelerators may be stored in the server in any manner such as a table, a list, or a combination thereof.
- the method may further include: the server sending, to the UE, at least one of a set consisting of a set of identifiers of the bare accelerators and a set of identifiers of the service accelerators.
- the UE may be any UE that requests acceleration service from the server.
- the main CPU transmits at least one of a set of identifiers of the bare accelerators and a set of identifiers of the service accelerators to the UE.
- the optional implementation enables the UE to know the set of the identifiers of the bare accelerators in the server and the set of the identifiers of the service accelerators, so that the user can independently select the target bare accelerator or the target traffic accelerator.
- the method may further include: displaying, by the server, at least one of a set of identifiers of the bare accelerators and a set of identifiers of the service accelerators.
- the main service board (or server) where the main CPU is located can display the set of the identifiers of the bare accelerators and the identifiers of the service accelerators through the user interface (English name: user interface, English abbreviation: UI). At least one.
- the set of identifiers of the bare accelerators herein may be a set of parts or all of the identifiers of the bare accelerators on the service board where the CPU is located.
- the identifier of the service accelerator may be part or all of the service boards on which the slave CPUs are located. Collection of logos for business accelerators.
- the slave service board (or server) page where the CPU is located may display at least one of the set consisting of the identifier of the bare accelerator on the service board and the identifier of the service accelerator through the UI.
- the optional implementation may be applied to the following scenario: the administrator inputs at least one of a set of identifiers of the bare accelerator and a set of identifiers of the service accelerators by inputting a cloud OS command to the server; the server according to the cloud The OS command displays at least one of a set consisting of a set of identifiers of the bare accelerator and a set of identifiers of the service accelerator.
- FIG. 5 it is a schematic structural diagram of an apparatus 50 for configuring an accelerator according to an embodiment of the present invention.
- the apparatus 50 is applied to a server including at least one bare accelerator, wherein the bare accelerator refers to an accelerator generated after loading basic logic functions for the accelerator hardware, the basic logic functions including communication interface functions and loading functions can.
- the device 50 is configured to perform the steps performed by the server in the method for configuring the accelerator provided above.
- the device 50 may include a unit module corresponding to the corresponding step.
- the method may include:
- the determining unit 501 is configured to determine a target service type and a target bare accelerator, and determine a service logic function corresponding to the target service type.
- the loading unit 502 is configured to load a service logic function corresponding to the target service type for the target bare accelerator to generate a target service accelerator, where the target service accelerator can provide an acceleration service for a service having the target service type.
- the determining unit 501 is specifically configured to: receive a target service type sent by the user equipment, if the server does not provide an acceleration service for the service with the target service type, Then, one bare accelerator is selected from the at least one bare accelerator as a target bare accelerator.
- the determining unit 501 is specifically configured to: receive a target service type sent by the user equipment and an identifier of the target bare accelerator.
- the apparatus 50 may further include: an unloading unit 503, configured to uninstall a service logic function corresponding to the target service type loaded in the target service accelerator, to generate a bare accelerator.
- an unloading unit 503 configured to uninstall a service logic function corresponding to the target service type loaded in the target service accelerator, to generate a bare accelerator.
- the apparatus 50 may further include: an updating unit 504, configured to update at least one of a set of identifiers of the bare accelerators and a set of identifiers of the service accelerators.
- an updating unit 504 configured to update at least one of a set of identifiers of the bare accelerators and a set of identifiers of the service accelerators.
- the apparatus 50 may further include: a sending unit 505, configured to send, to the user equipment, at least one of a set formed by the identifier of the bare accelerator and a set formed by the identifier of the service accelerator.
- a sending unit 505 configured to send, to the user equipment, at least one of a set formed by the identifier of the bare accelerator and a set formed by the identifier of the service accelerator.
- the apparatus 50 may further include: a display unit 506, configured to display at least one of a set of identifiers of the bare accelerators and a set of identifiers of the service accelerators.
- a display unit 506 configured to display at least one of a set of identifiers of the bare accelerators and a set of identifiers of the service accelerators.
- the apparatus 50 of the embodiment of the present invention may correspond to the server in the method described in the foregoing embodiment, and the division and/or function of each module in the apparatus 50 of the embodiment of the present invention is to implement the foregoing method flow.
- the determining unit 501, the loading unit 502, the unloading unit 503, the updating unit 504, the sending unit 505, and the like may be implemented based on a CPU and a memory, that is, a corresponding instruction is stored in the memory for execution by the CPU, to implement The function of each unit.
- Display unit 506 can be various types of displays to facilitate viewing by a user.
- the device 50 in the embodiment of the present invention can be used to perform the foregoing method, and therefore, the technical effects that can be obtained can also be referred to the foregoing method embodiments, and details are not described herein again.
- FIG. 6 a schematic structural diagram of an apparatus 60 for configuring an accelerator is provided according to an embodiment of the present invention.
- the apparatus 60 is applied to a server including at least one bare accelerator, wherein the bare accelerator refers to an accelerator generated after the basic logic function is loaded for the accelerator hardware, the basic logic functions including a communication interface function and a loading function.
- the device 60 is configured to perform the steps performed by the server in the method of configuring the accelerator provided above.
- the device 60 may include a processor 601, a memory 602, a system bus 603, and a communication interface 604.
- the memory 602 is configured to store computer execution instructions
- the processor 601 is coupled to the memory 602 via the system bus, and when the apparatus 60 is running, the processor 601 executes the memory stored by the memory 603
- the computer executes the instructions to cause the apparatus 60 to perform any of the methods described above for configuring the accelerator.
- a specific method for configuring the accelerator refer to the related description in the foregoing embodiment, and details are not described herein again.
- the embodiment further provides a storage medium, which may include the memory 602.
- the processor 601 can be a central processing unit (CPU).
- the processor 601 can also be other general-purpose processors, digital signal processing (DSP), application specific integrated circuit (ASIC), field-programmable gate array (FPGA). ) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, and the like.
- DSP digital signal processing
- ASIC application specific integrated circuit
- FPGA field-programmable gate array
- the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
- the processor 601 can be a dedicated processor, and the dedicated processor can include at least one of a baseband processing chip, a radio frequency processing chip, and the like. Further, the dedicated processor may also include a chip having other dedicated processing functions of device 60.
- the memory 602 may include a volatile memory, such as a random-access memory (RAM); the memory 602 may also include a non-volatile memory, such as only Read-only memory (ROM), flash memory, hard disk drive (HDD) or solid-state drive (SSD); the memory 602 may also include the above-described type of memory The combination.
- RAM random-access memory
- non-volatile memory such as only Read-only memory (ROM), flash memory, hard disk drive (HDD) or solid-state drive (SSD); the memory 602 may also include the above-described type of memory The combination.
- the system bus 603 can include a data bus, a power bus, a control bus, a signal status bus, and the like. For the sake of clarity in the present embodiment, various buses are illustrated as the system bus 603 in FIG.
- the communication interface 604 can be specifically a transceiver on the device 60.
- the transceiver can be a wireless transceiver.
- the wireless transceiver can be an antenna or the like of device 60.
- the processor 601 performs data transmission and reception with the other device, such as the terminal, through the communication interface 604.
- each step in any of the foregoing method flows may be implemented by the processor 601 in hardware form executing a computer-executed instruction in the form of software stored in the memory 602. To avoid repetition, we will not repeat them here.
- the device 60 provided by the embodiment of the present invention can be used to perform the foregoing method, the technical effects that can be obtained can be referred to the foregoing method embodiments, and details are not described herein again.
- the foregoing device 50 and/or device 60 may be a server or a functional module in the server.
- the embodiment of the present invention further provides a server, which includes any of the devices 50 or 60 provided above.
- another embodiment of the present invention further provides a communication device, including: one or more processors 71, one or more accelerator hardware 72, and a memory 73;
- the processor 71 is configured to perform basic service processing (except for services requiring accelerator processing) and to complete management of the accelerator hardware 72 (eg, load business logic functions to accelerator hardware), and the accelerator hardware 72 can be used as the foregoing embodiment.
- the "naked accelerator” or “business accelerator” mentioned in the memory is used for storing the code required by the processor to execute the program and various data generated during the operation.
- the above described device is only illustrated by the division of the above functional modules. In practical applications, the above functions may be assigned differently according to needs.
- the function module is completed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above.
- the device and the unit described above refer to the corresponding process in the foregoing method embodiment, and details are not described herein again.
- the disclosed system, apparatus, and method may be implemented in other manners.
- the device embodiments described above are merely illustrative.
- the division of the modules or units is only a logical function division.
- there may be another division manner for example, multiple units or components may be used. Combinations can be integrated into another system, or some features can be ignored or not executed.
- the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be in an electrical, mechanical or other form.
- the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple On the network unit. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
- each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
- the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
- the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a computer readable storage medium.
- the instructions include a plurality of instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor (English: processor) to perform all or part of the steps of the methods described in various embodiments of the present invention.
- the foregoing storage medium includes: a U disk, a mobile hard disk, a ROM, a RAM, a magnetic disk, or an optical disk, and the like, which can store a program code.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种配置加速器的方法和装置,涉及计算机技术领域,用以提高加速器资源的利用率。该方法应用于包含至少一个裸加速器的服务器中,其中,所述裸加速器是指为加速器硬件加载了基本逻辑功能之后生成的加速器,所述基本逻辑功能包括通信接口功能和加载功能;所述方法包括:所述服务器确定目标业务类型和目标裸加速器;所述服务器确定所述目标业务类型对应的业务逻辑功能;所述服务器为所述目标裸加速器加载所述目标业务类型对应的业务逻辑功能,生成目标业务加速器,其中,所述目标业务加速器能够为具有所述目标业务类型的业务提供加速服务。
Description
本申请要求于2016年4月13日提交中国专利局、申请号为201610227605.3、发明名称为“一种配置加速器的方法和装置”的中国专利申请的优先权,其中,申请号为201610227605.3的中国专利申请要求于2015年12月31日提交到中国专利局、申请号为201511032133.8、发明名称为“一种配置加速器的方法和装置”的中国专利申请的优先权,两个申请全部内容通过引用结合在本申请中。
本发明涉及计算机技术领域,尤其涉及一种配置加速器的方法和装置。
加速器是信息技术(英文全称:information technology,英文简称:IT)、通信技术(英文全称:communication technology,英文简称:CT)和信息与通信技术(英文全称:information and communications technology,英文简称:ICT)中性能提升的关键器件,其能够对业务进行加速。常用的加速器硬件包括:现场可编程门阵列(英文全称:field-programmable gate array,英文简称:FPGA)、图形处理器(英文全称:graphic processing unit,英文简称:GPU)、数字信号处理(英文全称:digital signal process,英文简称:DSP)、集成电路(英文全称:application specific integrated circuit,英文简称:ASIC)等。只有当加速器硬件上加载了某一业务类型(例如视频类型等)对应的业务逻辑功能(具体可通过加载一个业务对应的二进制文件,也称bin文件)之后,才能为具有该业务类型的业务提供加速服务。
目前,一般地,服务器中所设置的加速器是已经加载有某业务对应的业务逻辑功能之后所生成的加速器,并且,一个加速器一旦设置在服务器中,其始终只能为一种业务提供加速服务。由于业务类型多种多样,利用现有技术中的配置加速器的方法,为了给每种业务类型的业务提供加速服务,需要在服务器中设置每种业务类型对应的加速器,然而,服务器并非时时刻刻都需要为每种业务提供加速服务,因此同一时刻会有部分加速器会处于空闲状态,这会使得加速器资源的利用率较低。
发明内容
本发明的实施例提供一种配置加速器的方法和装置,用以提高加速器资源的利用率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种配置加速器的方法,应用于包含至少一个裸加速器的服务器中,其中,所述裸加速器是指为加速器硬件加载了基本逻辑功能之后生成的加速器,所述基本逻辑功能包括通信接口功能和加载功能;所述方法包括:
所述服务器确定目标业务类型和目标裸加速器;
所述服务器确定所述目标业务类型对应的业务逻辑功能;
所述服务器为所述目标裸加速器加载所述目标业务类型对应的业务逻辑功能,生成目标业务加速器,其中,所述目标业务加速器能够为具有所述目标业务类型的业务提供加速服务。
本发明实施例提供的配置加速器的方法,通过确定目标业务类型和目标裸加速器,从而为目标裸加速器加载目标业务类型对应的业务逻辑功能,生成业务加速器。也就是说,本发明实施例中,当需要为某种业务提供加速服务时,才为该业务配置业务加速器,即按需设置,相比现有技术中预先设置好为每种业务提供加速服务的加速器的技术方案相比,能够提高加速器资源的利用率。
第二方面,提供一种配置加速器的装置,应用于包含至少一个裸加速器的服务器中,其中,所述裸加速器是指为加速器硬件加载了基本逻辑功能之后生成的加速器,所述基本逻辑功能包括通信接口功能和加载功能;所述装置包括:
确定单元,用于确定目标业务类型和目标裸加速器,以及确定所述目标业务类型对应的业务逻辑功能;
加载单元,用于为所述目标裸加速器加载所述目标业务类型对应的业务逻辑功能,生成目标业务加速器,其中,所述目标业务加速器能够为具有所述目标业务类型的业务提供加速服务。
由于本发明实施例中的配置加速器的装置可以用于执行上述第一方面中所述的配置加速器的方法,因此其所能获得的技术效果可以参考上述第一方面中的技术效果,此处不再赘述。
基于上述第一方面,在一种可选的实现方式中,所述服务器确定目标业务类型和目标裸加速器,可以包括:所述服务器接收用户设备发送的目标业务类型,若所述服务器
中没有为具有所述目标业务类型的业务提供加速服务的加速器,则所述服务器从所述至少一个裸加速器中选择一个裸加速器作为目标裸加速器。
相应地,基于上述第二方面,在一种可选的实现方式中,所述确定单元具体用于:接收用户设备发送的目标业务类型,若所述服务器中没有为具有所述目标业务类型的业务提供加速服务的加速器,则从所述至少一个裸加速器中选择一个裸加速器作为目标裸加速器。
在该可选的实现方式中,服务器自主选择目标裸加速器,具体实现时,服务器可以根据一定的规则确定目标裸加速器,本发明实施例对该规则不进行限定。
基于上述第一方面,另一种可选的实现方式中,所述服务器确定目标业务类型和目标裸加速器,可以包括:所述服务器接收用户设备发送的目标业务类型和目标裸加速器的标识。
相应地,基于上述第二方面,在一种可选的实现方式中,所述确定单元具体用于:接收用户设备发送的目标业务类型和目标裸加速器的标识。
该可选的实现方式中,由用户指定目标裸加速器。这样,通过用户的参与,能够提高用户的体验效果。
基于上述第一方面或第一方面的任一种可选的实现方式,可选的,在所述服务器为所述目标裸加速器加载所述待加载的业务逻辑功能,生成目标业务加速器之后,所述方法还可以包括:所述服务器卸载所述目标业务加速器中所加载的所述目标业务类型对应的业务逻辑功能,生成裸加速器。
相应地,基于上述第二方面或第二方面的任一种可选的实现方式,可选的,该装置还可以包括:卸载单元,用于卸载所述目标业务加速器中所加载的所述目标业务类型对应的业务逻辑功能,生成裸加速器
该可选的实现方式中,通过卸载业务加速器中所加载的业务逻辑功能,使得该业务加速器生成裸加速器,进一步地,服务器还可以利用第一方面提供的方法,为该裸加速器加载其他业务类型对应的业务逻辑功能,从而使得一个裸加速器可以在不同时刻为具有不同类型的业务提供加速服务,也就是说,一个物理设备可以配置成支撑不同业务的加速引擎,从而满足对不同类型的业务进行加速的需求,因此具有很大的灵活性;另外,能够利用较少的加速器硬件,为较多类型的业务提供加速服务,从而节省硬件资源。并且,在加速器硬件个数确定的前提下,能够使得每个加速器硬件得到充分的利用,从而极大的提高了资源的利用率。
基于上述第一方面或第一方面的任一种可选的实现方式,可选的,所述方法还可以包括:所述服务器更新裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
相应地,该装置还可以包括:更新单元,用于更新裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
具体的,服务器(或更新单元)可以周期性地或触发性地更新裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。例如,每个预设时间段更新一次裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种;或者,当裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种中的元素发生变化时,即更新。
基于上述第一方面或第一方面的任一种可选的实现方式,可选的,所述方法还可以包括:所述服务器向用户设备发送裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
相应地,基于上述第二方面或第二方面的任一种可选的实现方式,可选的,该装置还可以包括:发送单元,用于向用户设备发送裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
在该可选的实现方式中,用户设备在接收到裸加速器的标识构成的集合和业务加速器的标识构成的集合之后,可以显示裸加速器的标识构成的集合和业务加速器的标识构成的集合,从而使得用户可以根据用户设备上所显示的内容指定目标裸加速器或目标业务加速器。
基于上述第一方面或第一方面的任一种可选的实现方式,可选的,所述方法还可以包括:所述服务器显示裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
基于上述第二方面或第二方面的任一种可选的实现方式,可选的,该方法还可以包括:显示单元,用于显示裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
在该可选的实现方式中,服务器可以显示裸加速器的标识构成的集合和业务加速器的标识构成的集合,从而使得管理员可以根据服务器上所显示的内容指定目标裸加速器或目标业务加速器。
第三方面,提供一种配置加速器的装置,应用于包含至少一个裸加速器的服务器中,其中,所述裸加速器是指为加速器硬件加载了基本逻辑功能之后生成的加速器,所述基本逻辑功能包括通信接口功能和加载功能;所述装置包括:处理器、存储器和系统总线;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述系统总线连接,当所述装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述装置执行上述第一方面或者第一方面的任一种可选的实现方式提供的任一种配置加速器的方法。
第四方面,提供一种服务器,包括:上述第二方面或第三方面提供的任一种配置加速器的装置。
第五方面,提供一种可读介质,包括计算机执行指令,当服务器的处理器执行所述计算机执行指令时,所述服务器执行上述配置加速器的方法。
由于本发明实施例中的配置加速器的装置、服务器和可读介质均用于执行上述第一方面中所述的配置加速器的方法,因此其所能获得的技术效果可以参考上述第一方面中的技术效果,此处不再赘述。
图1为本发明实施例提供的技术方案所适用的一种服务器的硬件架构示意图一;
图2为本发明实施例提供的技术方案所适用的一种服务器的硬件架构示意图二;
图3为本发明实施例提供的一种配置加速器的方法流程示意图;
图4为本发明实施例提供的技术方案所适用的一种服务器的硬件架构示意图三;
图5为本发明实施例提供的一种配置加速器的装置的结构示意图一;
图6为本发明实施例提供的一种配置加速器的装置的结构示意图二;
图7为本发明实施例提供的一种通信设备的结构示意图。
首先,对本申请中所涉及的部分技术术语进行解释说明,以方便本领域技术人员对于本发明实施例的理解。
1)加速器硬件、裸加速器、业务加速器
常见的加速器硬件包括:FPGA、GPU、DSP、ASIC等,加速器硬件可分为可编程加速器硬件和不可编程加速器硬件,优选的,本发明实施例中所涉及的加速器硬件可以是指可编程加速器硬件。
加载有基本逻辑功能和业务逻辑功能之后的加速器硬件才能为业务提供加速服务。其中,基本逻辑功能包括通信接口功能和加载功能等,业务逻辑功能是指能够使加速器硬件具有为某种业务提供加速服务的功能。
现有技术中,预先在服务器中设置的加速器是已经加载了基本逻辑功能和业务逻辑功能的加速器硬件,因此,现有技术中只需区分加速器硬件与加载了基本逻辑功能和业务逻辑功能的加速器硬件即可,具体的,将加载基本逻辑功能和业务逻辑功能之后的加速器硬件称为“加速器”。
在本发明实施例中,预先在服务器中设置的加速器可以是加速器硬件或者加载了基本逻辑功能的加速器硬件,因此,本发明实施例中,需要区分加速器硬件、加载了基本逻辑功能的加速器硬件、以及加载了业务逻辑功能的加速器硬件,具体的,将加载了基本逻辑功能的加速器硬件称为“裸加速器”,将加载了业务逻辑功能的加速器硬件称为“业务加速器”。
2)服务器
本申请中的服务器可以是普通的服务器;也可以是云服务器,即云化场景下的服务器。其中,一个云服务器可以包括一个云化场景下的所有服务设备。云服务器包含的每个服务设备中均可以设置中央处理器(英文全称:central processing unit;英文简称:CPU),即云服务器包含的每个服务设备均可以作为独立的实体;云服务器中的一个或多个服务设备可以作为该云服务器的控制端,用于控制其他的服务设备。云服务器包含的任意两个服务设备在物理位置上可以相隔较远,例如,一个服务设备位于城市A,另一个服务设备位于城市B。
如图1所示,是本发明实施例提供的技术方案所适用的一种服务器的硬件架构示意图。图1所示的服务器包括:服务单板1、服务单板2和交换单板。其中,每个服务单板可以对应上述的一个服务设备,或者,多个服务单板也可以对应上述的一个服务设备,即多个服务单板集成在一个服务设备中。
服务单板1包含CPU(下文中称为主CPU)和网卡等,服务单板1中安装有云操作系统(英文全称:operating system,英文简称:OS)。示例的,主CPU与网卡之间通过专
用外部设备互连(英文全称:peripheral component interconnect express,英文简称:PCIe)总线连接。
服务单板2包含CPU(下文中称为从CPU)以及加速器硬件1~加速器硬件N,其中,N是大于或等于2的整数;示例的,从CPU与加速器硬件1~加速器硬件N之间通过PCIe总线连接。
交换单板用于连接服务单板1与服务单板2,示例的,服务单板1中的网卡与交换单板之间通过总线(如10GE Base-KR总线)连接,服务单板2中的从CPU与交换单板之间通过总线(如10GE Base-KR总线)连接。
服务单板1作为控制端,服务单板1中的主CPU可基于例如云OS的方式实现对服务单板2中的加速器硬件1~加速器硬件N的控制。服务单板1可以称为主服务单板,即控制单板,服务单板2可以称为从服务单板,一个主服务单板可以通过一个或多个交换单板与多个从服务单板连接,一个从服务单板上可以设置一个或多个加速器硬件;不同的服务单板可以分布在同一物理区域或不同的物理区域中。
每个从CPU可以管理其所在的从服务单板上的多个加速器硬件、裸加速器以及业务加速器,例如,每个从CPU可以向其所在的服务单板上的多个加速器硬件加载业务逻辑功能等;又如,每个从CPU还可以为新生成的裸加速器或新生成的业务加速器分配标识,或删除已生成业务加速器的裸加速器的标识,或删除已生成裸加速器的业务加速器的标识等;再如,每个从CPU还可以向主CPU上报该从CPU所在的单板上的裸加速器的标识以及业务加速器的标识等。
主CPU可以控制每个从CPU管理其所在的服务单板上包含的多个加速器硬件、裸加速器以及业务加速器,例如,主CPU确定每个从CPU何时向哪个加速器硬件加载业务逻辑功能等;另外,主CPU还可以统计并更新每个从CPU上报的裸加速器的标识和业务加速器的标识等。
从逻辑功能上来看,主服务单板(例如图1中的服务单板1)可以称为云端,从服务单板(例如图1中的服务单板2)可以称为加速服务提供端,具体实现时,云端还可以连接一个或多个用户设备(英文全称:user equipment,英文简称:UE),图1中未示出。
对于用户而言,基于图1所示的硬件架构,能够实现以下功能:用户通过安装在UE上的客户端访问“云(即云端)”,类似于登陆百度云网站等;云端通过控制加速服务提供端为该UE所访问的业务提供加速服务。
需要说明的是,图1所示的硬件只是一种可选的实现方式,具体实现时,服务单板1和服务单板2可以做在一个单板上,即合并为一个服务单板。可以理解的是,若服务单板1与服务单板2合并为一个服务单板,则该服务器单板上可以不包含交换单板,并且可以只包含一个CPU,即不区分主CPU和从CPU;另外,还可以不区分云端和加速服务提供端,该服务单板还可以连接一个或多个UE。如图2所示,是本发明实施例提供的技术方案所适用的一种服务器的硬件架构示意图。图2所示的服务器包括服务单板,该服务单板包含CPU和加速器硬件1~加速器硬件N,其中,N是大于或等于2的整数;示例的,CPU与加速器硬件1~加速器硬件N之间通过PCIe总线连接。
下文中均以图1所示的云服务器的硬件架构为例对本发明实施例提供的技术方案进行示例性地说明。本领域普通技术人员应当能够从基于图1所示的示例,在不付出创造性的劳动下,得到基于图2所示的具体示例。
3)多个,“/”
本申请中的“多个”是指两个或两个以上。例如,多个加速器是指两个或两个以上的加速器。本申请中的字符“/”表示“或”的关系,例如,A/B是指A或者B。
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行示例性描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图3所示,是本发明实施例提供的一种配置加速器的方法,应用于包含至少一个裸加速器的服务器中,其中,裸加速器是指为加速器硬件加载了基本逻辑功能之后生成的加速器,基本逻辑功能包括通信接口功能和加载功能,不包括“业务逻辑功能”,即加载了基本逻辑功能的加速器不具备处理业务的功能;该方法可以包括以下步骤S301-S303:
S301:服务器确定目标业务类型和目标裸加速器。
“业务类型”可以是各种媒体相关的业务的类型(如图片、音频、视频等业务类型),也可以是其他需要加速处理的业务类型;目标业务类型可以是服务器支持的任何一种业务类型。
服务器中可以预先设置一个或多个裸加速器。或者,服务器中可以预先设置一个或多个加速器硬件,然后,通过各个加速器硬件所在的服务单板上的CPU为各个加速器硬件加载基本逻辑功能,从而生成裸加速器;例如,基于图1,可以预先在服务单板2上设
置加速器硬件1~加速器硬件N,然后,通过服务单板2上的从CPU分别为该加速器硬件1~加速器硬件N加载基本逻辑功能,从而生成裸加速器。目标裸加速器可以是服务器自身确定的一个裸加速器,也可以是用户指示的一个裸加速器。
其中,基本逻辑可以被加载到加速器硬件的特定位置上,用以实现通信接口(例如PCIe接口等)功能和加载功能等基本功能。当加速器硬件被加载了通信接口功能之后,其可以作为符合该通信接口协议的设备,并与CPU进行通信。当通信接口是PCIe通信接口时,为裸加速器上电后(即为裸加速器芯片上电后),该裸加速器在云OS中呈现为一个PCIe设备,其可以通过PCIe通信接口与其所在的服务单板上的CPU之间进行通信。
可选的,服务器通过各个加速器硬件所在的服务单板上的CPU为加速器硬件加载基本逻辑功能的过程可以包括:该CPU扫描其所属的服务单板上的加速器硬件,例如,基于图1,服务单板2上的从CPU扫描加速器硬件1~加速器硬件N,其中,只要一个设备/器件符合PCIe规范,该设备/器件所在的服务单板上的CPU运行其中的与基本输入输出系统(英文全称:basic input output system,英文简称:BIOS)相关的程序,即可扫描到该设备/器件;然后,通过所扫描到的加速器硬件对应的总线设备功能BDF号,确定该加速器硬件对应的驱动,其中,一个PCIe设备对应一个BDF号,一个BDF号对应一个驱动;接着,从CPU执行该驱动,以将该加速器硬件生成一个裸加速器,并为该裸加速器分配标识。其中,裸加速器的标识可以体现一些属性信息,例如BMx表示裸加速器x;本发明实施例对属性信息的所占的字段和类型等信息不进行限定。
服务器中的不同从服务单板中的裸加速器上所加载的基本逻辑功能可以相同也可以不同。例如,服务器中的一个从服务单板上的裸加速器与该从服务单板上的从CPU之间通过PCIe总线连接,该情况下,基本逻辑功能中的通信接口是指PCIe通信接口。本文中均以每个裸加速器上加载的基本逻辑功能相同,并且通信接口均是PCIe通信接口为例进行说明。
S302:服务器确定目标业务类型对应的业务逻辑功能。
服务器中可以预先存储有该服务器支持的一种或多种业务类型,以及每种业务类型对应的业务逻辑功能,优选的,服务器中预先存储该服务器支持的每种业务类型对应的业务逻辑功能。并且,服务器中所存储的业务类型对应的业务逻辑功能可以进行更新,例如,当服务器支持一种新业务时,可以将该新业务的业务类型对应的业务逻辑功能加载至该服务器中。
基于图1,业务逻辑功能可以存储在从服务单板的指定路径的文件夹中。
S303:服务器为目标裸加速器加载目标业务类型对应的业务逻辑功能,生成目标业务加速器,其中,目标业务加速器能够为具有目标业务类型的业务提供加速服务。
基于图1,步骤S301和步骤S302的执行主体可以是服务器中的主CPU,步骤S303的执行主体可以是服务器中的从CPU。基于图2,步骤S301~S303的执行主体可以是服务器中的CPU。
基于图1,从CPU通过PCIe总线将指定路径的文件夹中的目标业务类型对应的业务逻辑功能,加载到目标裸加速器中,生成目标业务加速器。具体的,可以通过目标裸加速器的驱动完成该加载过程。
本发明实施例提供的配置加速器的方法,通过确定目标业务类型和目标裸加速器,从而为目标裸加速器加载目标业务类型对应的业务逻辑功能,生成业务加速器。也就是说,本发明实施例中,当需要为某种业务提供加速服务时,才为该业务配置业务加速器,即按需设置,相比现有技术中预先设置好为每种业务提供加速服务的加速器的技术方案相比,能够提高加速器资源的利用率。
图4是基于图1绘制的,适用于本发明实施例的一种服务器的硬件架构示意图。其中,服务单板2中还包括FPGAx(其中,x代表0,1,2……,FPGAx表示可以有多个FPGA芯片),用于实现网卡功能和PCIe控制器功能,分别负责硬件加速设备数据平面和控制平面通信;示例的,从CPU与FPGAx之间通过PCIe总线连接,FPGAx与加速器硬件1~加速器硬件N之间通过并行转换器(英文全称:serializer-deserialize,英文简称:serdes)总线连接,FPGAx与交换单板之间通过serdes总线连接。
服务单板1中还包括FPGA;示例的,服务单板1中的FPGA与交换单板之间通过serdes总线连接。
在步骤S303之后,该方法还可以包括:从CPU为目标业务加速器分配标识,然后将目标业务加速器的标识上报给主CPU;其中,该过程可以称为将目标业务加速器注册到云OS的过程。接着,服务器可以通过如图4所示的硬件架构中的通路“主CPU-网卡-FPGA-serdes总线-交换单板-serdes总线-FPGAx-加速器硬件1~加速器硬件N”完成对业务的加速。这样,经过专用硬件通路,而不经过从CPU,实现对业务进行加速,能够加快业务数据的传输速率。
在一种可选的实现方式中,步骤S301可以包括:服务器接收UE发送的目标业务类型,若服务器中没有目标业务类型对应的业务加速器,则服务器从该至少一个裸加速器中选择一个裸加速器作为目标裸加速器。
其中,目标业务类型对应的业务加速器是指,为具有目标类型业务的业务提供加速服务的业务加速器。
在该可选的实现方式中,服务器自主选择目标裸加速器。基于图1,主CPU接收UE发送的目标业务类型,并判断业务加速器的标识构成的集合中是否包含目标业务类型对应的业务加速器,若没有,则在裸加速器的标识构成的集合中选择一个裸加速器的标识作为目标裸加速器的标识。示例的,主CPU可以在裸加速器的标识构成的集合中任意选择一个裸加速器的标识作为目标裸加速器的标识,或者,可以在裸加速器的标识构成的集合中选择与该UE之间的距离小于等于预设值的一个从CPU上报的裸加速器的标识中的一个裸加速器的标识作为目标裸加速器的标识。当然不限于此。
其中,该可选的实现方式中的业务加速器的标识构成的集合可以是部分或所有从CPU上报的业务加速器的标识构成的集合;裸加速器的标识构成的集合可以是部分或所有从CPU上报的裸加速器的标识构成的集合。
另外,若业务加速器的标识构成的集合中包含目标业务类型对应的业务加速器,则服务器可以直接利用该业务加速器为具有目标业务类型的业务提供加速服务,其具体的加速服务的实现方式可以参考现有技术,此处不再赘述。另外,服务器也可以在接收到UE的指示消息的情况下,将业务加速器构成的集合中的一个业务加速器,例如任意一个业务加速器或当前时刻空闲的一个业务加速器或距离该UE较近的服务单板上的一个业务加速器或该指示消息中携带的一个业务加速器等,上所加载的业务逻辑功能卸载,生成裸加速器;接着,重新将该裸加速器生成目标业务加速器。
在另一种可选的实现方式中,步骤S301可以包括:服务器接收用户设备发送的目标业务类型和目标裸加速器的标识。
该可选的实现方式中,由用户指定目标裸加速器。其中,UE可以向用户提供UI,以使得用户向该UE指示目标裸加速器,从而使得该UE向服务器指示该目标裸加速器的标识。
在一种可选的实现方式中,在步骤S303之后,该方法还可以包括:服务器卸载目标业务加速器中所加载的目标业务类型对应的业务逻辑功能,生成裸加速器。
该可选的实现方式,通过卸载业务加速器中所加载的业务逻辑功能,使得该业务加速器生成裸加速器,进一步地,服务器还可以利用上述步骤S301-S303所提供的方法,为该裸加速器加载其他业务类型对应的业务逻辑功能,从而使得一个裸加速器可以在不同时刻为具有不同类型的业务提供加速服务,也就是说,一个物理设备可以配置成支撑
不同业务的加速引擎,从而满足对不同类型的业务进行加速的需求,因此具有很大的灵活性;另外,能够利用较少的加速器硬件,为较多类型的业务提供加速服务,从而节省硬件资源。并且,在加速器硬件个数确定的前提下,能够使得每个加速器硬件得到充分的利用,从而极大的提高了资源的利用率。
示例1:服务器接收UE的指示消息,其中,该指示消息中携带有目标业务加速器的标识,用以指示服务器卸载目标业务加速器中所加载的目标业务类型对应的业务逻辑功能;服务器根据该指示消息卸载目标业务加速器中所加载的目标业务类型对应的业务逻辑功能,生成裸加速器。
基于图1,主CPU接收UE发送的指示消息,该指示消息中携带有目标业务加速器的标识;然后,向该目标业务加速器所在的从服务单板上的从CPU发送该指示消息;接着,该从CPU根据该指示消息卸载目标业务加速器中所加载的目标业务类型对应的业务逻辑功能,生成裸加速器。另外该方法还可以包括:该从CPU删除该目标业务加速器的标识,并为该裸加速器分配标识。
示例2:基于上述步骤301的一种可选的实现方式,若服务器确定业务加速器构成的集合中没有目标业务类型对应的业务加速器,并且裸加速器构成的集合为空,即服务器中不存在裸加速器,则服务器将业务加速器构成的集合中的其中一个业务加速器,例如任意一个业务加速器或当前时刻空闲的一个业务加速器或距离该UE较近的一个服务单板上的一个业务加速器或指示消息中携带的一个业务加速器等,上所加载的业务逻辑功能卸载,生成裸加速器。接着,重新为将该裸加速器生成目标业务类型对应的业务加速器。
可选的,在执行步骤S303之后,该方法还可以包括:服务器为目标业务加速器分配标识,并且删除目标裸加速器的标识。在一种可选的实现方式中,该方法还可以包括:服务器更新裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
其中,目标业务加速器的标识可以体现一些属性信息,例如VCx表示音视频业务对应的业务加速器;本发明实施例对属性信息的所占的字段和类型等信息不进行限定。
基于图1,裸加速器所在的从服务单板上的从CPU生成目标业务加速器之后,该从CPU可以为目标业务加速器分配标识,并删除目标裸加速器的标识;然后,该从CPU向主CPU发送第一指示消息和第二指示消息,其中,第一指示消息中包含目标业务加速器的标识,用以使主CPU在业务加速器的标识构成的集合中增加目标业务加速器的标识;第二指示消息中包含目标裸加速器的标识,用以使主CPU在裸加速器的标识构成的集合中删除目
标业务加速器的标识。具体实现时,第一指示消息和第二指示消息可以合并为同一条指示消息,从而减少信令交互。主CPU启动热插拔,从而更新裸加速器构成的集合和业务加速器构成的集合。其中,热插拔是云OS的一个软件功能,用以更新裸加速器构成的集合和业务加速器构成的集合。具体实现时,主CPU可以周期性或触发性地启动热插拔。
其中,裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种可以以表格、列表或其组合等任一种方式被存储在服务器中。
在一种可选的实现方式中,该方法还可以包括:服务器向UE发送裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
其中,该UE可以是向服务器请求加速服务的任一个UE。
基于图1,主CPU向UE发送裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。该可选的实现方式能够使UE获知服务器中的裸加速器的标识构成的集合和业务加速器的标识构成的集合,从而可以使用户自主选择对目标裸加速器或目标业务加速器。
在一种可选的实现方式中,该方法还可以包括:服务器显示裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
基于图1,主CPU所在的主服务单板(或服务器)可以通过用户界面(英文全称:user interface,英文简称:UI)显示裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。其中,这里的裸加速器的标识构成的集合可以是部分或所有从CPU所在的服务单板上的裸加速器的标识构成的集合,业务加速器的标识可以是部分或所有从CPU所在的服务单板上的业务加速器的标识构成的集合。另外,从CPU所在的从服务单板(或服务器)页可以通过UI显示该从服务单板上的裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
该可选的实现方式可以应用于以下场景中:管理员通过向服务器输入云OS命令,以查看裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种;服务器根据该云OS命令,显示裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
如图5所示,是本发明实施例提供一种配置加速器的装置50的结构示意图。该装置50应用于包含至少一个裸加速器的服务器中,其中,所述裸加速器是指为加速器硬件加载了基本逻辑功能之后生成的加速器,所述基本逻辑功能包括通信接口功能和加载功
能。该装置50用以执行上述提供的配置加速器的方法中服务器所执行的步骤,该装置50可以包括相应步骤所对应的单元模块,示例的,可以包括:
确定单元501,用于确定目标业务类型和目标裸加速器,以及确定所述目标业务类型对应的业务逻辑功能。
加载单元502,用于为所述目标裸加速器加载所述目标业务类型对应的业务逻辑功能,生成目标业务加速器,其中,所述目标业务加速器能够为具有所述目标业务类型的业务提供加速服务。
在一种可选的实现方式中,所述确定单元501具体可以用于:接收用户设备发送的目标业务类型,若所述服务器中没有为具有所述目标业务类型的业务提供加速服务的加速器,则从所述至少一个裸加速器中选择一个裸加速器作为目标裸加速器。
在另一种可选的实现方式中,所述确定单元501具体可以用于:接收用户设备发送的目标业务类型和目标裸加速器的标识。
可选的,该装置50还可以包括:卸载单元503,用于卸载所述目标业务加速器中所加载的所述目标业务类型对应的业务逻辑功能,生成裸加速器。
可选的,该装置50还可以包括:更新单元504,用于更新裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
可选的,该装置50还可以包括:发送单元505,用于向用户设备发送裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
可选的,该装置50还可以包括:显示单元506,用于显示裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
可以理解,本发明实施例的装置50可对应于上述实施例所述的方法中的服务器,并且本发明实施例的装置50中的各个模块的划分和/或功能等均是为了实现上述方法流程,为了简洁,在此不再赘述。装置50中,确定单元501、加载单元502、卸载单元503、更新单元504、发送单元505等单元可以基于CPU以及存储器来实现,即存储器中存储相应的指令,供CPU读取后执行,以实现各个单元的功能。显示单元506可以是各种类型的显示器,以方便用户查看。
由于本发明实施例中的装置50可以用于执行上述方法流程,因此,其所能获得的技术效果也可参考上述方法实施例,在此不再赘述。
如图6所示,为本发明实施例提供一种配置加速器的装置60的结构示意图。该装置60应用于包含至少一个裸加速器的服务器中,其中,所述裸加速器是指为加速器硬件加载了基本逻辑功能之后生成的加速器,所述基本逻辑功能包括通信接口功能和加载功能。该装置60用以执行上述提供的配置加速器的方法中服务器所执行的步骤,示例的,该装置60可以包括:处理器601、存储器602、系统总线603和通信接口604。
所述存储器602用于存储计算机执行指令,所述处理器601与所述存储器602通过所述系统总线连接,当所述装置60运行时,所述处理器601执行所述存储器603存储的所述计算机执行指令,以使所述装置60执行上述任一种配置加速器的方法。具体的配置加速器的方法可参见上文所示的实施例中的相关描述,此处不再赘述。
本实施例还提供一种存储介质,该存储介质可以包括所述存储器602。
所述处理器601可以为中央处理器(central processing unit,CPU)。所述处理器601还可以为其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述处理器601可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。进一步地,该专用处理器还可以包括具有装置60其他专用处理功能的芯片。
所述存储器602可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);所述存储器602也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);所述存储器602还可以包括上述种类的存储器的组合。
所述系统总线603可以包括数据总线、电源总线、控制总线和信号状态总线等。本实施例中为了清楚说明,在图6中将各种总线都示意为系统总线603。
所述通信接口604具体可以是装置60上的收发器。该收发器可以为无线收发器。例如,无线收发器可以是装置60的天线等。所述处理器601通过所述通信接口604与其他设备,例如终端之间进行数据的收发。
在具体实现过程中,上述任一方法流程中的各步骤均可以通过硬件形式的处理器601执行存储器602中存储的软件形式的计算机执行指令实现。为避免重复,此处不再赘述。
由于本发明实施例提供的装置60可用于执行上述方法流程,因此其所能获得的技术效果可参考上述方法实施例,此处不再赘述。
需要说明的是,上述装置50和/或装置60可以是服务器,也可以是服务器中的一个功能模块。若是后者,则本发明实施例还提供了一种服务器,该服务器包括上述提供的任一种装置50或装置60。
如图7所示,基于上述各实施例,本发明另一实施例还提供了一种通信设备,包括:一个或多个处理器71,一个或多个加速器硬件72以及存储器73;
其中,处理器71用于完成基本业务的处理(需要加速器处理的业务除外)以及用于完成对加速器硬件72的管理(例如,加载业务逻辑功能到加速器硬件),加速器硬件72可作为前述实施例中提到的“裸加速器”或者“业务加速器”使用,存储器73用于存储处理器执行程序所需代码及运行过程中产生的各种数据。
其中,处理器71对加速器硬件进行管理的具体过程可参见上述各实施例中的具体方法,例如,参见上述实施例中步骤301-303,这里不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
- 一种配置加速器的方法,其特征在于,应用于包含至少一个裸加速器的服务器中,其中,所述裸加速器是指为加速器硬件加载了基本逻辑功能之后生成的加速器,所述基本逻辑功能包括通信接口功能和加载功能;所述方法包括:所述服务器确定目标业务类型和目标裸加速器;所述服务器确定所述目标业务类型对应的业务逻辑功能;所述服务器为所述目标裸加速器加载所述目标业务类型对应的业务逻辑功能,生成目标业务加速器,其中,所述目标业务加速器能够为具有所述目标业务类型的业务提供加速服务。
- 根据权利要求1所述的方法,其特征在于,所述服务器确定目标业务类型和目标裸加速器,包括:所述服务器接收用户设备发送的目标业务类型,若所述服务器中没有为具有所述目标业务类型的业务提供加速服务的加速器,则所述服务器从所述至少一个裸加速器中选择一个裸加速器作为目标裸加速器;或者,所述服务器接收用户设备发送的目标业务类型和目标裸加速器的标识。
- 根据权利要求1或2所述的方法,其特征在于,在所述服务器为所述目标裸加速器加载所述待加载的业务逻辑功能,生成目标业务加速器之后,所述方法还包括:所述服务器卸载所述目标业务加速器中所加载的所述目标业务类型对应的业务逻辑功能,生成裸加速器。
- 根据权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括:所述服务器更新裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
- 根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:所述服务器向用户设备发送裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
- 根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:所述服务器显示裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
- 一种配置加速器的装置,其特征在于,应用于包含至少一个裸加速器的服务器中,其中,所述裸加速器是指为加速器硬件加载了基本逻辑功能之后生成的加速器,所述基本逻辑功能包括通信接口功能和加载功能;所述装置包括:确定单元,用于确定目标业务类型和目标裸加速器,以及确定所述目标业务类型对应的业务逻辑功能;加载单元,用于为所述目标裸加速器加载所述目标业务类型对应的业务逻辑功能,生成目标业务加速器,其中,所述目标业务加速器能够为具有所述目标业务类型的业务提供加速服务。
- 根据权利要求7所述的装置,其特征在于,所述确定单元具体用于:接收用户设备发送的目标业务类型,若所述服务器中没有为具有所述目标业务类型的业务提供加速服务的加速器,则从所述至少一个裸加速器中选择一个裸加速器作为目标裸加速器;或者,接收用户设备发送的目标业务类型和目标裸加速器的标识。
- 根据权利要求7或8所述的装置,其特征在于,还包括:卸载单元,用于卸载所述目标业务加速器中所加载的所述目标业务类型对应的业务逻辑功能,生成裸加速器。
- 根据权利要求7-9任一项所述的装置,其特征在于,还包括:更新单元,用于更新裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
- 根据权利要求7-10任一项所述的装置,其特征在于,还包括:发送单元,用于向用户设备发送裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
- 根据权利要求7-11任一项所述的装置,其特征在于,还包括:显示单元,用于显示裸加速器的标识构成的集合和业务加速器的标识构成的集合中的至少一种。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16881150.3A EP3385835B1 (en) | 2015-12-31 | 2016-12-26 | Method and apparatus for configuring accelerator |
US16/025,569 US10698699B2 (en) | 2015-12-31 | 2018-07-02 | Method and apparatus for configuring accelerator |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511032133 | 2015-12-31 | ||
CN201511032133.8 | 2015-12-31 | ||
CN201610227605.3A CN105824706B (zh) | 2015-12-31 | 2016-04-13 | 一种配置加速器的方法和装置 |
CN201610227605.3 | 2016-04-13 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/025,569 Continuation US10698699B2 (en) | 2015-12-31 | 2018-07-02 | Method and apparatus for configuring accelerator |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017114361A1 true WO2017114361A1 (zh) | 2017-07-06 |
Family
ID=56526949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2016/112143 WO2017114361A1 (zh) | 2015-12-31 | 2016-12-26 | 一种配置加速器的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10698699B2 (zh) |
EP (1) | EP3385835B1 (zh) |
CN (1) | CN105824706B (zh) |
WO (1) | WO2017114361A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10270709B2 (en) | 2015-06-26 | 2019-04-23 | Microsoft Technology Licensing, Llc | Allocating acceleration component functionality for supporting services |
US9792154B2 (en) | 2015-04-17 | 2017-10-17 | Microsoft Technology Licensing, Llc | Data processing system having a hardware acceleration plane and a software plane |
US10198294B2 (en) | 2015-04-17 | 2019-02-05 | Microsoft Licensing Technology, LLC | Handling tenant requests in a system that uses hardware acceleration components |
US10216555B2 (en) | 2015-06-26 | 2019-02-26 | Microsoft Technology Licensing, Llc | Partially reconfiguring acceleration components |
US9819542B2 (en) * | 2015-06-26 | 2017-11-14 | Microsoft Technology Licensing, Llc | Configuring acceleration components over a network |
CN105824706B (zh) * | 2015-12-31 | 2020-11-06 | 华为技术有限公司 | 一种配置加速器的方法和装置 |
CN108829512B (zh) * | 2018-05-09 | 2021-08-24 | 山东浪潮科学研究院有限公司 | 一种云中心硬件加速计算力的分配方法、系统和云中心 |
WO2020140260A1 (en) | 2019-01-04 | 2020-07-09 | Baidu.Com Times Technology (Beijing) Co., Ltd. | Method and system to derive a session key to secure an information exchange channel between a host system and a data processing accelerator |
EP3794771A4 (en) * | 2019-01-04 | 2022-01-05 | Baidu.com Times Technology (Beijing) Co., Ltd. | PROCESS AND SYSTEM FOR DISTRIBUTION AND EXCHANGE OF KEYS FOR DATA PROCESSING ACCELERATORS |
US11328075B2 (en) | 2019-01-04 | 2022-05-10 | Baidu Usa Llc | Method and system for providing secure communications between a host system and a data processing accelerator |
WO2020140267A1 (en) | 2019-01-04 | 2020-07-09 | Baidu.Com Times Technology (Beijing) Co., Ltd. | A data processing accelerator having a local time unit to generate timestamps |
CN112262547B (zh) | 2019-01-04 | 2023-11-21 | 百度时代网络技术(北京)有限公司 | 具有安全单元以提供根信任服务的数据处理加速器 |
CN112262545B (zh) | 2019-01-04 | 2023-09-15 | 百度时代网络技术(北京)有限公司 | 主机系统与数据处理加速器之间的证明协议 |
WO2020140261A1 (en) | 2019-01-04 | 2020-07-09 | Baidu.Com Times Technology (Beijing) Co., Ltd. | Method and system for protecting data processed by data processing accelerators |
WO2020140269A1 (en) | 2019-01-04 | 2020-07-09 | Baidu.Com Times Technology (Beijing) Co., Ltd. | Method and system for managing memory of data processing accelerators |
CN112334902A (zh) | 2019-01-04 | 2021-02-05 | 百度时代网络技术(北京)有限公司 | 建立主机系统与数据处理加速器之间的安全信息交换信道的方法 |
EP3794477B1 (en) | 2019-01-04 | 2023-05-10 | Baidu.com Times Technology (Beijing) Co., Ltd. | Method and system for validating kernel objects to be executed by a data processing accelerator of a host system |
CN109918335A (zh) * | 2019-02-28 | 2019-06-21 | 苏州浪潮智能科技有限公司 | 一种基于cpu+fpga 8路dsm架构服务器系统及处理方法 |
CN111858016A (zh) | 2019-04-29 | 2020-10-30 | 阿里巴巴集团控股有限公司 | 计算作业处理方法、系统、移动设备及加速设备 |
EP3901780A1 (de) * | 2020-04-20 | 2021-10-27 | Siemens Aktiengesellschaft | Digitale schaltanordnung und verfahren zur konfiguration zumindest einer konfigurierbaren hardwarekomponente |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6256724B1 (en) * | 1998-02-04 | 2001-07-03 | Texas Instruments Incorporated | Digital signal processor with efficiently connectable hardware co-processor |
CN104375972A (zh) * | 2013-08-16 | 2015-02-25 | 亚德诺半导体集团 | 用于可配置数学硬件加速器的微处理器集成配置控制器 |
CN104657308A (zh) * | 2015-03-04 | 2015-05-27 | 浪潮电子信息产业股份有限公司 | 一种用fpga实现的服务器硬件加速的方法 |
CN105824706A (zh) * | 2015-12-31 | 2016-08-03 | 华为技术有限公司 | 一种配置加速器的方法和装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6209077B1 (en) * | 1998-12-21 | 2001-03-27 | Sandia Corporation | General purpose programmable accelerator board |
JP4779756B2 (ja) * | 2006-03-29 | 2011-09-28 | カシオ計算機株式会社 | コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム |
US8082418B2 (en) * | 2007-12-17 | 2011-12-20 | Intel Corporation | Method and apparatus for coherent device initialization and access |
US8869160B2 (en) * | 2009-12-24 | 2014-10-21 | International Business Machines Corporation | Goal oriented performance management of workload utilizing accelerators |
US9043923B2 (en) * | 2012-12-27 | 2015-05-26 | Empire Technology Development Llc | Virtual machine monitor (VMM) extension for time shared accelerator management and side-channel vulnerability prevention |
US20140380025A1 (en) * | 2013-01-23 | 2014-12-25 | Empire Technology Development Llc | Management of hardware accelerator configurations in a processor chip |
US9183174B2 (en) * | 2013-03-15 | 2015-11-10 | Qualcomm Incorporated | Use case based reconfiguration of co-processor cores for general purpose processors |
CN104951353B (zh) * | 2014-03-28 | 2018-09-21 | 华为技术有限公司 | 一种对vnf实现加速处理的方法及装置 |
-
2016
- 2016-04-13 CN CN201610227605.3A patent/CN105824706B/zh active Active
- 2016-12-26 EP EP16881150.3A patent/EP3385835B1/en active Active
- 2016-12-26 WO PCT/CN2016/112143 patent/WO2017114361A1/zh active Application Filing
-
2018
- 2018-07-02 US US16/025,569 patent/US10698699B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6256724B1 (en) * | 1998-02-04 | 2001-07-03 | Texas Instruments Incorporated | Digital signal processor with efficiently connectable hardware co-processor |
CN104375972A (zh) * | 2013-08-16 | 2015-02-25 | 亚德诺半导体集团 | 用于可配置数学硬件加速器的微处理器集成配置控制器 |
CN104657308A (zh) * | 2015-03-04 | 2015-05-27 | 浪潮电子信息产业股份有限公司 | 一种用fpga实现的服务器硬件加速的方法 |
CN105824706A (zh) * | 2015-12-31 | 2016-08-03 | 华为技术有限公司 | 一种配置加速器的方法和装置 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3385835A4 * |
Also Published As
Publication number | Publication date |
---|---|
US20180307499A1 (en) | 2018-10-25 |
EP3385835A1 (en) | 2018-10-10 |
EP3385835B1 (en) | 2023-04-05 |
EP3385835A4 (en) | 2019-01-09 |
CN105824706A (zh) | 2016-08-03 |
US10698699B2 (en) | 2020-06-30 |
CN105824706B (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017114361A1 (zh) | 一种配置加速器的方法和装置 | |
US11146453B2 (en) | Method and apparatus for creating network slice, and communications system | |
US11032214B2 (en) | Method, apparatus, and system for managing network slice instance | |
EP3512233B1 (en) | Method for managing network slice and management unit | |
US10924966B2 (en) | Management method, management unit, and system | |
US10270648B2 (en) | Configuration information management method, device, network element management system and storage medium | |
EP3684012A1 (en) | Service deployment method and network function accelerating platform | |
US10819592B2 (en) | Slice instance management method and apparatus | |
WO2019228344A1 (zh) | 资源配置方法、装置、终端及存储介质 | |
US11336521B2 (en) | Acceleration resource scheduling method and apparatus, and acceleration system | |
EP3076296A1 (en) | Computer, control device and data processing method | |
US20160344671A1 (en) | Executing commands on virtual machine instances in a distributed computing environment | |
EP3584998A1 (en) | Method for virtual machine capacity expansion and reduction and virtual management device | |
TW201725881A (zh) | 用於虛擬化網路功能的具現及終止之技術 | |
WO2018121354A1 (zh) | 一种物理网络功能pnf迁移方法及相关设备 | |
US20200351165A1 (en) | Driver upgrade method and device | |
EP3624499B1 (en) | Communication control method and communication system | |
WO2019057015A1 (zh) | 一种网络切片管理方法及装置 | |
US20230221997A1 (en) | System and method for subscription management using composed systems | |
EP4052126A1 (en) | Management of multiple physical function non-volatile memory devices | |
EP4057143A1 (en) | Resource adjusting method and apparatus | |
EP3358795B1 (en) | Method and apparatus for allocating a virtual resource in network functions virtualization (nfv) network | |
US11321109B2 (en) | Container engine for selecting driver based on container metadata | |
TW202008154A (zh) | 基於軟體容器提供雲端服務之系統及方法 | |
WO2018082574A1 (zh) | 一种信息发送方法、单元和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16881150 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2016881150 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2016881150 Country of ref document: EP Effective date: 20180704 |