CN115776463A - Route configuration method, device, system, computing equipment and storage medium - Google Patents
Route configuration method, device, system, computing equipment and storage medium Download PDFInfo
- Publication number
- CN115776463A CN115776463A CN202211662848.1A CN202211662848A CN115776463A CN 115776463 A CN115776463 A CN 115776463A CN 202211662848 A CN202211662848 A CN 202211662848A CN 115776463 A CN115776463 A CN 115776463A
- Authority
- CN
- China
- Prior art keywords
- port
- information
- class
- type
- routing
- 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 73
- 238000004891 communication Methods 0.000 claims abstract description 33
- 238000003032 molecular docking Methods 0.000 claims description 53
- 238000013507 mapping Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 4
- 210000001503 joint Anatomy 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The application discloses a method, a device, a computing device, a storage medium and a program product for route configuration, wherein the method comprises the following steps: acquiring port connection information of a first type device and other first type devices; sending the port connection information to second-class equipment so that the second-class equipment determines routing information among the first-class equipment based on the port connection information; acquiring routing information of communication between the first-class equipment and other first-class equipment from the second-class equipment; and configuring the routing device based on the routing information. According to the embodiment of the application, the routing configuration can be carried out on the plurality of first-class devices, so that the plurality of first-class devices can carry out joint calculation and storage.
Description
Technical Field
The present application relates to the field of communications technologies, and in particular, to a method, an apparatus, a system, a computing device, a computer-readable storage medium, and a computer program product for route configuration.
Background
With the rapid development of science and technology, more and more new technologies are applied to various fields of society, which makes the demand of modern society for calculation and storage more and more. To increase the computing and storage capabilities, multiple devices (e.g., GPU cards) may be used for computing and storage at the same time. At this time, communication needs to be performed between a plurality of devices to accurately and timely perform data transmission. For this reason, the devices need to be configured for routing to meet the communication needs between the devices.
Disclosure of Invention
In view of the above, the present application provides a route configuration method and apparatus, a system, a computing device, a computer readable storage medium and a computer program product, which are expected to meet the communication requirements between devices.
According to one aspect of the present application, there is provided a method implemented at a first class device for routing configuration, each of the first class devices comprising a graphics processor, routing means for routing to a plurality of other first class devices, and a port for communicating with other devices, the method comprising: acquiring port connection information of a first type device and other first type devices; sending the port connection information to second-class equipment so that the second-class equipment determines routing information among the first-class equipment based on the port connection information; acquiring routing information of communication between the first-class equipment and other first-class equipment from the second-class equipment; and configuring the routing device based on the routing information.
In a routing configuration method according to some embodiments of the present application, each of the first type devices includes a connection port, where the connection port is connected to a connection port of another first type device, and acquiring port connection information between one first type device and another first type device includes: determining port information of connection ports connected to other first-class devices in one first-class device; acquiring port information of a docking port in other first-class devices, which is docked with the connection port; and determining port connection information based on the port information of the connection port and the port information of the docking port.
In a routing configuration method according to some embodiments of the present application, acquiring port information of a docking port that is docked with a connection port in other first-type devices includes: indicating that a first type of device is ready to acquire information; and acquiring port information of the docking port where the other first-type device is docked with the connection port.
In a routing configuration method according to some embodiments of the present application, the first type device further includes a first status register and a first information register, and a second status register and a second information register, where the first status register is configured to store status information of the connection port, the first information register is configured to store port information of the connection port, the second status register is configured to store information stored by the first status register of the other first type device acquired from the docking port through the connection port, and the second information register is configured to store information stored by the first information register of the other first type device acquired from the docking port through the connection port.
In a method for route configuration according to some embodiments of the present application, indicating that a first type device is ready to obtain information includes: storing a ready signal into a first status register of a first type of device for a connection port such that: the other first type devices acquire the ready signal stored by the first status register from the connection port through the docking port and store the ready signal into second status registers of the other first type devices, and in response to the second status registers of the other first type devices storing the ready signal, the other first type devices store port information of the docking port into first information registers of the other first type devices for the docking port.
In a routing configuration method according to some embodiments of the present application, acquiring port information of a docking port at which another first type device docks with a connection port includes: acquiring port information of the docking ports stored in the first information registers of other first-class devices from the docking ports docked with the connection ports through the connection ports; storing the port information of the butt joint port in a second information register of the first type equipment; and acquiring the port information of the docking port from a second information register of the first type device.
In the route configuration method according to some embodiments of the present application, the port information includes a device number of a first type device where the port is located and a port number of the port in the first type device.
In a routing configuration method according to some embodiments of the present application, configuring a routing device based on routing information includes: determining routing ports of a first type device and other first type devices based on the routing information; determining address ranges of other first-type devices; mapping at least part of addresses in the address range of other first-type devices to the routing port; and configuring the mapped information to the routing device.
In a routing configuration method according to some embodiments of the present application, mapping at least part of addresses in address ranges of other first-class devices to a routing port includes: determining an address set, wherein the address set comprises all addresses in the address range of other first-type devices; determining the number of routing ports between one first-class device and other first-class devices; averagely dividing an address set into a number of sub-address sets; respectively corresponding the number of sub-address sets to the routing ports; and establishing mapping between the addresses in the sub-address set and the routing ports corresponding to the sub-address set.
According to another aspect of the present application, there is provided a method implemented at a device of a second type for route configuration, the method comprising: acquiring port connection information of a plurality of first-class devices; determining routing information among a plurality of first-class devices based on the port connection information; and sending the routing information to the plurality of first type devices, so that each first type device of the plurality of first type devices configures the routing device thereof based on the routing information.
In a routing configuration method according to some embodiments of the present application, determining routing information between a plurality of first-class devices based on port connection information includes: determining a topology among the plurality of first-class devices based on the port connection information; determining candidate routes among a plurality of first-class devices based on the topology; determining a shortest route between the plurality of first class devices based on the candidate routes; and determining routing information between the plurality of first type devices based on the shortest route.
According to another aspect of the present application, there is provided a system for routing configuration, comprising a plurality of first type devices and a second type device, each device of the plurality of first type devices comprising a graphics processor, routing means for routing to a plurality of other first type devices and a port for communicating with other devices, the system comprising: each first-class device of the plurality of first-class devices acquires port connection information of the first-class device and other first-class devices; each first-class device of the plurality of first-class devices sends port connection information to the second-class device; the second-class equipment acquires port connection information of a plurality of first-class equipment; the second type equipment determines routing information among the first type equipment based on the port connection information; the second type equipment sends the routing information to a plurality of first type equipment, so that each first type equipment of the plurality of first type equipment configures a routing device of the first type equipment based on the routing information; each first-class device of the plurality of first-class devices acquires routing information of communication between the first-class device and other first-class devices from the second-class device; and each of the plurality of first type devices configures its routing means based on the routing information.
According to another aspect of the present application, there is provided an apparatus for routing configuration implemented at a first class device, each of the first class devices including a graphics processor, routing means for routing to a plurality of other first class devices, and a port for communicating with other devices, the apparatus comprising: the device comprises a first acquisition module, a second acquisition module and a third acquisition module, wherein the first acquisition module is configured to acquire port connection information of one first-class device and other first-class devices; a first sending module configured to send the port connection information to the second type devices, so that the second type devices determine routing information among the first type devices based on the port connection information; a second obtaining module configured to obtain, from the second type device, routing information of communication between one first type device and other first type devices; and a configuration module configured to configure the routing device based on the routing information.
According to another aspect of the present application, there is provided an apparatus for route configuration implemented at a device of a second type, the apparatus comprising: a third obtaining module configured to obtain port connection information of a plurality of first-class devices; a determining module configured to determine routing information between a plurality of first type devices based on the port connection information; and a second sending module configured to send the routing information to the plurality of first type devices, so that each of the plurality of first type devices configures its routing means based on the routing information.
According to another aspect of the present application, there is provided a computing device comprising: a memory configured to store computer-executable instructions; and a processor configured to perform the steps of the route configuration method according to some embodiments of the application when the computer executable instructions are executed by the processor.
According to another aspect of the present application, there is provided a computer-readable storage medium storing computer-executable instructions that, when executed, implement the steps of a method of route configuration according to some embodiments of the present application.
According to another aspect of the present application, a computer program product is provided, comprising a computer program which, when executed by a processor, performs the steps of a method of route configuration according to some embodiments of the present application.
In the method and apparatus for configuring a route claimed in the present application, first, port connection information between a first type device and other first type devices is obtained. Then, the port connection information is sent to the second type devices, so that the second type devices determine the routing information among the first type devices based on the port connection information. Then, the routing information of the communication between the first-class device and other first-class devices is obtained from the second-class device. And finally, configuring a routing device of the first type of equipment based on the routing information.
Therefore, in the routing configuration method disclosed by the application, the routing information is determined based on the port connection information between the first-class devices, so that the routing information can fully meet the subsequent data transmission requirements between the first-class devices. And completing the configuration of the routing device of the first-class equipment based on the routing information, so that the first-class equipment can communicate with each other based on the routing information.
These and other advantages of the present application will become apparent from and elucidated with reference to the embodiments described hereinafter.
Drawings
Embodiments of the present application will now be described in more detail and with reference to the accompanying drawings, in which:
fig. 1 illustrates an exemplary application scenario of a route configuration method according to some embodiments of the present application;
FIG. 2 illustrates an exemplary flow diagram of a route configuration method implemented at a first type of device according to some embodiments of the present application;
FIG. 3 illustrates an exemplary flow diagram of a route configuration method implemented at a second class of devices according to some embodiments of the present application;
FIG. 4 illustrates a schematic diagram of port connection information for a plurality of first type devices according to some embodiments of the present application;
FIG. 5 illustrates a schematic diagram of a topology between a plurality of first type devices, in accordance with some embodiments of the present application;
FIG. 6 illustrates a schematic diagram of address mapping according to some embodiments of the present application;
FIG. 7 illustrates an exemplary block diagram of a routing configuration apparatus according to some embodiments of the present application;
fig. 8 illustrates an exemplary block diagram of a routing configuration apparatus according to some embodiments of the present application; and
fig. 9 illustrates an example system that includes an example computing device that represents one or more systems and/or devices that can implement the various methods described herein.
Detailed Description
Example embodiments will now be described more fully with reference to the accompanying drawings. Example embodiments may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of example embodiments to those skilled in the art. The same reference numerals in the drawings denote the same or similar parts, and a repetitive description thereof will be omitted.
Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided to give a thorough understanding of embodiments of the application. One skilled in the relevant art will recognize, however, that the subject matter of the present application can be practiced without one or more of the specific details, or with other methods, components, devices, steps, and so forth. In other instances, well-known methods, devices, implementations, or operations have not been shown or described in detail to avoid obscuring aspects of the application.
The block diagrams depicted in the figures are functional entities only and do not necessarily correspond to physically separate entities. I.e. these functional entities may be implemented in the form of software, or in one or more hardware modules or integrated circuits, or in different networks and/or processor means and/or microcontroller means.
The flow charts shown in the drawings are merely illustrative and do not necessarily include all of the information and operations/steps, nor do they necessarily have to be performed in the order described. For example, some operations/steps may be decomposed, and some operations/steps may be combined or partially combined, so that the actual execution sequence may be changed according to the actual situation.
It will be understood that, although the terms first, second, third, etc. may be used herein to describe various components, these components should not be limited by these terms. These terms are used to distinguish one element from another. Thus, a first component discussed below could be termed a second component without departing from the teachings of the present concepts. As used herein, the term "and/or" and similar terms include all combinations of any, multiple, and all of the associated listed items.
It will be appreciated by those skilled in the art that the drawings are merely schematic representations of exemplary embodiments, and that the blocks or processes shown in the drawings are not necessarily required to practice the present application and are, therefore, not intended to limit the scope of the present application.
Before describing embodiments of the present application in detail, a concept of routing and related technologies is first explained.
Routing: routing refers to the network-wide process of determining an end-to-end path as a packet travels from a source to a destination. Routers implement network interconnections by forwarding packets. A router typically connects two or more logical ports, identified by IP subnets or point-to-point protocols, with at least 1 physical port. The router determines an output port and a next hop address according to a network layer address in the received data packet and a routing table maintained inside the router, and rewrites a link layer data packet header to realize forwarding of the data packet. Routers reflect the current network topology by dynamically maintaining routing tables, which are maintained by other routers on the network exchanging routing and link information.
GPU (graphics processing unit): the graphics processor, also called a display core, a visual processor, and a display chip, is a microprocessor that is dedicated to image and graphics related operations on personal computers, workstations, game machines, and some mobile devices (e.g., tablet computers, smart phones, etc.).
Displaying and storing: the video memory, also called a frame buffer, is used for storing rendering data processed or to be extracted by the video card chip. As with the memory of a computer, video memory is the means used to store graphics information to be processed.
The communication protocol is as follows: a communication protocol refers to the rules and conventions that must be followed by two entities to complete a communication or service.
Interlaken: also known as ILKN, is a protocol for high-speed data transmission between chips.
Serdes: also written as SERDES, is short for SERializer/DESerializer. It is a mainstream Time Division Multiplexing (TDM), point-to-point (P2P) serial communication technology. That is, at the transmitting end, the multi-path low-speed parallel signals are converted into high-speed serial signals, and finally, at the receiving end, the high-speed serial signals are converted into low-speed parallel signals again through a transmission medium (an optical cable or a copper wire). The point-to-point serial communication technology fully utilizes the channel capacity of a transmission medium, reduces the number of required transmission channels and device pins, and improves the transmission speed of signals, thereby greatly reducing the communication cost.
SMC: the control unit in the GPU chip can access the whole address space of the GPU and can access 256T physical memory under the address width of 48 bits.
FW: a program running on the SMC.
InitDone register: a register used in ILKN protocol into which the value written is automatically synchronized into the initdoneshandow register of the docking port. The InitDone register is used to prepare for port handshaking. Typically, there is one InitDone register per port.
Initdoneshedow register: a register used in ILKN protocol whose value follows the value of the InitDone register of the docking port. Typically, there is one initdonoshadow register per port.
TopoInfo register: a register used in ILKN protocol may be written with 64bits of data that will be automatically synchronized by the hardware to the TopoInfoShadow register of the docking port. Typically, there is one TopoInfo register per port.
Topolnfosgadow register: a register used in the ILKN protocol, the value of which varies following the value of the docking port TopoInfo register. Typically, there is one TopoInfoShadow register per port.
Host equipment: also referred to as a host, may be a host computer or the like. When communication is performed between a plurality of terminals, processing needs to be performed by the host.
Topological structure: topology refers to the physical layout of various devices such as computers interconnected by transmission media, and refers to the geometry formed during the interconnection process, which can represent the network configuration and interconnection of network servers and workstations.
Fig. 1 illustrates an exemplary application scenario of a route configuration method according to some embodiments of the present application. As shown in fig. 1, the application scenario may include at least one second-type device and a plurality of first-type devices. The first type of devices may be interconnected and communicate through the ports. And the first type device may communicate with the second type device by means of wired or wireless communication, for example, via a bus. The first type of device may be a GPU card or other computing device. The second type of device may be a device that contains computing functionality, such as a HOST device or the like.
In this embodiment, each of the first type devices comprises a graphics processor, routing means for routing to a plurality of other first type devices and a port for communicating with the other devices. A method implemented at a first type of device for route configuration comprising: acquiring port connection information of a first type device and other first type devices; sending the port connection information to the second type equipment, so that the second type equipment determines the routing information among the first type equipment based on the port connection information; acquiring routing information of communication between the first-class equipment and other first-class equipment from the second-class equipment; and configuring a routing device of the first type device based on the routing information.
It should be noted that fig. 1 only shows an exemplary embodiment of one application scenario. For different application scenarios, the number of the first-type devices, the number of the second-type devices, the number of the ports of the first-type devices, the connection relationship between the first-type devices, and the like may all be changed accordingly, which is not limited herein. And the connection between the second type of device and the first type of device may adopt common connection manners, including but not limited to wired connection, wireless connection, and the like, and may be connected through a bus, for example, which is not limited herein.
It should be noted that the first type of device, the second type of device may each comprise a medium and/or a device capable of persistently storing information, and/or a tangible storage means. Accordingly, computer-readable storage media refers to non-signal bearing media. Computer-readable storage media include hardware such as volatile and nonvolatile, removable and non-removable media and/or storage devices implemented in a method or technology suitable for storage of information such as computer-readable instructions, data structures, program modules, logic elements/circuits, or other data.
Fig. 2 illustrates an exemplary flow diagram of a route configuration method 200 implemented at a first type of device according to some embodiments of the present application. The first type of device may be a first type of device as shown in fig. 1 and the second type of device may be a second type of device as shown in fig. 1. And each of the first type devices comprises a graphics processor, routing means for routing to a plurality of other first type devices and a port for communicating with other devices. As shown in fig. 2, the route configuration method 200 implemented at a first type of device may include steps S210-S240.
In step S210, port connection information between one first-type device and other first-type devices is obtained. In some embodiments, the first type of device may be a GPU card including a GPU chip, the GPU cards are interconnected through a port, and the port connection information may be information of the GPU card where the port is located and a port number of the port in the GPU card.
In step S220, the port connection information is sent to the second type device, so that the second type device determines routing information between the first type devices based on the port connection information. In some embodiments, the first type device may send the port connection information to the second type device through wired or wireless communication, for example, the port connection information may be sent to the second type device through a bus. By way of example, the second type of device may be a HOST device or other computing device. After receiving the port connection information, the second-class device determines routing information among the first-class devices based on the port connection information.
In step S230, routing information of a first type device communicating with other first type devices is obtained from a second type device. In some embodiments, the second type device may split the determined routing information into a plurality of parts according to the requirements of each first type device, and then send each part to the corresponding first type device. For example, in the application scenario shown in fig. 1, the second type device sends the routing information required by the first type device 0 to the first type device 0, and sends the routing information required by the first type device N to the first type device N. Thus, a first type device can obtain the routing information of the communication between itself and other first type devices from a second type device.
In step S240, the routing device is configured based on the routing information. In some embodiments, after the first type device receives the routing information required by itself from the second type device, the routing apparatus of itself will be configured based on this.
The method 200 first obtains port connection information between the first-type devices and sends the port connection information to the second-type devices, so that the second-type devices can determine routing information based on the port connection information between the first-type devices, and the routing information can sufficiently meet subsequent data transmission requirements between the first-type devices. And the method 200 configures the routing means of the first type devices based on the routing information so that the first type devices can communicate with each other based on the routing information.
In some embodiments, each of the first type devices includes a connection port, the connection port is connected to a connection port of another first type device, and acquiring port connection information between one first type device and another first type device includes: determining port information of connection ports connected to other first-class devices in one first-class device; acquiring port information of a docking port in other first-class devices, which is docked with the connection port; and determining port connection information based on the port information of the connection port and the port information of the docking port.
As an example, the first type of device may be a GPU card, and the connection port and the docking port may be ports of the GPU card that are connected to each other. For example, if port 3 of GPU card 1 is used as a connection port and port 1 of GPU card 2 is used as an interface port for interfacing with port 3 of GPU card 1, the port connection information may be "13-21". Here, "13" represents port 3 of GPU card 1, and "21" represents port 1 of GPU card 2.
In some embodiments, obtaining port information of a docking port that docks with the connection port in the other first-type device includes: indicating that a first type of device is ready to acquire information; and acquiring port information of the docking port where the other first-type device is docked with the connection port.
As an example, when a first type device indicates that it is ready to obtain information, other first type devices connected to it may send information of their docking ports that dock with the connection port of a first type device to a first type device. At this time, one first-type device may obtain port information of a docking port where the other first-type device docks with the connection port.
In some embodiments, the first type device further includes a first status register and a first information register, and a second status register and a second information register, the first status register is configured to store status information of the connection port, the first information register is configured to store port information of the connection port, the second status register is configured to store information stored by the first status register of the other first type device acquired from the docking port through the connection port, and the second information register is configured to store information stored by the first information register of the other first type device acquired from the docking port through the connection port.
In some embodiments, the communication between the first class of devices may be based on ILKN protocol, in which case the first status register may be an InitDone register, the first information register may be a Topoinfo register, the second status register may be an initdoneseshadow register, and the second information register may be a Topoinfo shadow register. For example, the first type of device may be a GPU card, where, based on the ILKN protocol, the GPU card has, for each connected port, an InitDone register, a Topoinfo register, an initdonoshadow register, and a Topoinfo shadow register, which are used for: recording whether a connection port is ready, recording port information of the connection port, recording whether a docking port is ready, and recording port information of the docking port. And the InitDoneShadow register and the TopoInfoShadow register of the connection port are respectively synchronized with the InitDone register and the TopoInfo register of the docking port.
In some embodiments, indicating that a first type of device is ready to obtain information comprises: storing a ready signal into a first status register of a first type of device for a connection port such that: the other first-class devices acquire the ready signals stored by the first status register from the connecting port through the docking port and store the ready signals into second status registers of the other first-class devices, and in response to the second status registers of the other first-class devices storing the ready signals, the other first-class devices store port information of the docking port into first information registers of the other first-class devices for the docking port.
As an example, the first type of device may be a GPU card, the connection port may be port 3 of GPU card 1, and the docking port may be port 1 of GPU card 2. The GPU card 1 and the GPU card 2 can handshake and communicate based on ILKN protocol. When the GPU card 1 indicates that it is ready to obtain information, it may store, for example, a character 1 or 2 in the InitDone register corresponding to the port 3, and at this time, the initdoneshedow register of the port 1 of the GPU card 2 will be automatically synchronized to 1 or 2.GPU card 2 may thus learn that GPU card 1 is ready to retrieve information.
In some embodiments, obtaining port information of a docking port where other first-type devices dock with the connection port includes: acquiring port information of the docking ports stored in the first information registers of other first-class devices from the docking ports docked with the connection ports through the connection ports; storing the port information of the docking port in a second information register of the first type device; and acquiring the port information of the docking port from a second information register of the first type device.
As an example, the first type of device may be a GPU card, the connection port may be port 3 of GPU card 1, and the docking port may be port 1 of GPU card 2. The GPU card 1 and the GPU card 2 can handshake and communicate based on ILKN protocol. When GPU card 2 learns that GPU card 1 is ready to fetch information, the port information for port 1 of GPU card 2 is stored in its Topoinfo register. This port information is then automatically synchronized by the hardware to the topoinfo shadow register of port 3 of GPU card 1. At this time, GPU card 1 will obtain the port information of the docking port from the TopoinfoShadow register of its port 3.
In some embodiments, the port information includes a device number of the first type device in which the port is located and a port number of the port in the first type device. For example, if the device number of a first type device is 3 and the port number of the connection port on this first type device is 5, the port information of the connection port is "35".
In some embodiments, the first type devices may be GPU cards, and the connection and communication between the first type devices may be based on ILKN and Serdes. The second type of device may be a HOST device. At this time, the performing the routing configuration on the first type device may include: training Serdes, ILKN initialization, handshaking and enumeration, reporting port connection information to HOST equipment, and the like.
As an example, the process of handshaking port 3 of GPU card 1 with port 1 of GPU card 2 will be described below. First, the GPU chip in the GPU card 1 will automatically boot the FW to run after being powered on, the FW will initialize Serdes, and then Serdes will be trained to meet the communication requirement between the GPU cards. Then, ILKN is initialized. When ILKN initialization is completed, 1 will be written in the InitDone register corresponding to port 3, indicating that the connection port can start communication. At this time, the contents of the initdoneshedow register of port 1 of GPU card 2 are also synchronized to 1.GPU card 2 thus knows that GPU card 1 is ready, writes the port information of the docking port that it is docked with GPU card 1 into the TopoInfo register. Alternatively, the written data may be in the format shown in table I.
TABLE I data Format
bits | Means of |
0-16 | Device numbering |
16-24 | Port numbering |
24-63 | Retention |
At this time, the device number may be the number of the GPU card, and the port number may be the number of the port in the GPU card, which is reserved to indicate that these bits may be used for other functions. For example, FWs of nth first-class devices (n is a natural number) may write values as shown in table II to TopoInfo registers of different ports, respectively, to characterize port information.
Table II values characterizing port information
Port numbering | Values characterizing |
0 | 0x00<<16| |
1 | 0x01<<16| |
2 | 0x02<<16| |
3 | 0x03<<16| |
4 | 0x04<<16| |
5 | 0x05<<16|n |
Then, the GPU card reports the port connection information to the HOST device. As an example, the port connection information may be characterized by the data shown in tables III and IV.
Table III port connection information of the first type device 0
Port numbering | Value of TopoinfoShadow register | Means of |
0 | 0x2<<16|7 | |
1 | 0x1<<16|7 | |
2 | 0x0<<16|7 | |
3 | 0x0<<16|1 | |
4 | 0x1<<16|1 | |
5 | 0x3<<16|7 | |
Table IV port connection information for devices of the first type 1
Port numbering | Value of TopoinfoShadow register | Means of |
0 | 0x3<<16|0 | |
1 | 0x4<<16|0 | |
2 | 0x0<<16|6 | |
3 | 0x0<<16|2 | |
4 | 0x1<<16|2 | The |
5 | 0x3<<16|6 | The |
In some embodiments, configuring the routing device based on the routing information comprises: determining routing ports of a first type device and other first type devices based on the routing information; determining address ranges of other first-type devices; mapping at least part of addresses in the address range of other first-type devices to the routing port; and configuring the mapped information to the routing device.
As an example, the routing port of one first type device and the other first type device may be connection ports therebetween. And when one first-class device is not directly connected with other first-class devices, the relay can be carried out through another or a plurality of other first-class devices.
In some embodiments, mapping at least part of the addresses within the address range of the other first type devices to the routing port comprises: determining an address set, wherein the address set comprises all addresses in the address range of other first-type devices; determining the number of routing ports between one first-class device and other first-class devices; averagely dividing the address set into a plurality of sub-address sets; respectively corresponding the number of sub-address sets to the routing ports; and establishing mapping between the addresses in the sub-address set and the routing ports corresponding to the sub-address set.
By way of example, the address range of one first-type device is 0-4G, the address ranges of other first-type devices are 4G-8G, and one first-type device is connected with other first-type devices through 4 ports. Alternatively, the four ports may be mapped to address ranges of 4G-5G, 5G-6G, 6G-7G, 7G-8G, respectively.
Fig. 3 illustrates an exemplary flow diagram of a route configuration method 300 implemented at a second class of devices according to some embodiments of the present application. As shown in fig. 3, the route configuration method 300 includes steps S310, S320, and S330.
In step S310, port connection information of a plurality of first-class devices is acquired. In some embodiments, the second type device may obtain port connection information of the plurality of first type devices from the plurality of first type devices by means of wired communication or wireless communication. For example, the second type device may obtain port connection information from a plurality of first type devices through the bus.
In step S320, routing information between the plurality of first type devices is determined based on the port connection information. In some embodiments, the second type device may determine a topology structure between the plurality of first type devices based on the port connection information, and then determine routing information between the plurality of first type devices according to the structure.
In step S330, the routing information is sent to the plurality of first type devices, so that each of the plurality of first type devices configures its routing apparatus based on the routing information. In some embodiments, the second type device may divide the determined routing information into a plurality of portions according to the own requirements of each first type device, each portion being applicable to one first type device, and send each portion to the corresponding first type device to configure its routing apparatus. For example, for the scenario shown in FIG. 1, the second type device may send the routing information required by the first type device N to the first type device N based on the requirement of the first type device N (0 ≦ N ≦ N).
In the method 300, the second type device determines the routing information between the first type devices based on the port connection information between the first type devices, so that the routing information can sufficiently meet the subsequent data transmission requirements between the first type devices. And after determining the routing information among the first-class devices, the second-class device sends the routing information to the first-class devices, so that the first-class devices can configure their own routing devices based on the routing information, and then communicate with each other based on the routing information.
In some embodiments, determining routing information between the plurality of first class devices based on the port connection information comprises: determining a topology structure among a plurality of first-class devices based on the port connection information; determining candidate routes among a plurality of first-class devices based on the topology; determining a shortest route between the plurality of first class devices based on the candidate routes; and determining routing information between the plurality of first type devices based on the shortest route. This will be described in detail below by way of example.
As an example, fig. 4 shows a schematic diagram of port connection information for a plurality of first type devices according to some embodiments of the present application. As shown in fig. 4, 8 devices of the first type are connected by ports. It is noted that the first type of device in the figure is still in communication with the second type of device, but is not shown.
First, each of a plurality of first-class devices acquires port connection information between itself and other first-class devices. Alternatively, the port connection information may be represented using the data formats shown in table III and table IV. For example, the first type device 0 obtains port connection information between itself and the first type device 1: 03-10 and 04-11.
Then, each of the plurality of first type devices transmits the port connection information to the second type device. Optionally, each of the plurality of first type devices may send a table in the data format of table III and table IV to the second type device.
Then, the second-class device acquires port connection information of the plurality of first-class devices and determines routing information among the plurality of first-class devices based on the port connection information. First, the second type device will determine the topology between the plurality of first type devices based on the port connection information. Fig. 5 shows, as an example, a schematic diagram of a topology determined by a second type device based on port connection information between a plurality of first type devices in fig. 4.
As shown in fig. 5, the numbers in the circles in the figure represent the numbers of the first type devices, and the lines between the circles represent candidate routes, which may be represented by alphabets in combination with the numbers. For example q (23-30) indicates that port 3 of the first type device 2 is connected to port 0 of the first type device 3.
The second class device will then determine a candidate route between the plurality of first class devices based on the topology and determine the shortest route between the plurality of first class devices based on the candidate route. As can be seen from fig. 5, the first type device 0 and the first type device 4 may communicate with each other via a plurality of candidate routes. To this end, the second type device may determine a candidate route between the plurality of first type devices and determine the shortest route between the plurality of first type devices based on the candidate route. For example, a classic data structure algorithm may be used to calculate the shortest path between every two first-type devices, where the shortest path may not be one, and in some embodiments, when there are multiple shortest paths, load balancing may be performed, and the shortest optimal path may be selected in combination with the load balancing. Specifically, based on the topology shown in fig. 5, the determined shortest path between the first type devices is shown in table V.
TABLE V shortest route between devices of the first type
Number of | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
0 | mn | mn-op | mn-op-qr | mn-op-rq-ijkl | mn-op-gh | mn- | abcd | ||
1 | mn | op | op-qr | op-qr-ijkl | op-gh | ef | mn- |
||
2 | op-mn | op | qr | qr-ijkl | gh | gh-uv | gh-uv- |
||
3 | qr-op-mn | rq-op | qr | ijkl | ijkl-st | ijkl-st-uv | ijkl-st-uv- |
||
4 | ijkl-qr-op-mn | ijkl-qr-op | ijkl-qr | ijkl | st | st-uv | st-uv- |
||
5 | Gh-op-mn | gh-op | gh | st-ijkl | st | uv | uv- |
||
6 | Ef-mn | ef | uv-gh | uv-st-ijkl | uv- | uv | wx | ||
7 | abdc | wx-uv-ef | wx-uv-gh | wx-uv-st-ijkl | wx-uv-st | wx-uv | wx |
As shown in Table V, "number" represents the number of the first type device, and the letter in the table represents the shortest route between the first type devices. The second class of devices will then determine routing information between the plurality of first class devices based on the shortest route.
The second class device then sends the routing information to the plurality of first class devices to cause each of the plurality of first class devices to configure its routing means based on the routing information. As an example, when the routing information is sent, the complete routing information is sent, for example, mn in the table is supplemented as m (03-10) n (04-11) to be sent.
Finally, each first-class device of the plurality of first-class devices acquires the routing information of the first-class device communicating with other first-class devices from the second-class device, and configures the routing device based on the routing information.
For example, when the first type of device is a GPU card and the second type of device is a HOST device, the FW of each GPU card receives the routing data from the HOST device and then configures the routing device accordingly according to the routing data. As an example, table 6 shows routing data sent by the HOST device to GPU card 0.
Routing data for Table VI GPU card 0
Numbering | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | mn | mn-op | mn-op-qr | mn-op-rq-ijkl | mn-op-gh | mn-ef | abcd |
As shown in table VI, the numbers indicate the numbers of the first type devices and the letters represent routing paths. Specifically, m refers to m (03-10), which represents that port 3 of the first type device 0 and port 0 of the first type device 1 are interconnected; n refers to n (04-11), which represents that the port 4 of the first type device 0 is interconnected with the port 1 of the first type device 1; o refers to O (13-20) and represents that port 3 of the first type device 1 and port 0 of the first type device 2 are interconnected; p refers to p (14-21) indicating that port 4 of the first type device 1 and port 1 of the first type device 2 are interconnected; e refers to e (12-60) indicating that port 2 of the first type device 1 and port 0 of the first type device 6 are interconnected; f refers to f (15-63) indicating that port 5 of the first type device 1 and port 3 of the first type device 6 are interconnected; a refers to a (00-72), which indicates that port 0 of the first type device 0 and port 2 of the first type device 7 are interconnected; b refers to b (01-71), which represents the interconnection of port 1 of the first type device 0 and port 1 of the first type device 7; c refers to c (02-70), which represents the interconnection of port 2 of first class device 0 and port 0 of first class device 7; d refers to d (05-73) and indicates that port 5 of device 0 of the first type and port 3 of device 7 of the first type are interconnected.
At this time, the first device 0 configures its routing means based on the route existence data shown in table VI. Specifically, the method comprises the following steps: determining a set of addresses comprising all addresses within the address range of the other first type devices, e.g. in the embodiment shown in fig. 4, the set of addresses comprises addresses of eight first type devices; determining the number of routing ports between one first type device and other first type devices, e.g., in the embodiment shown in fig. 4, the number of routing ports between the first type device and other first type devices is 6; averagely dividing the address set into a plurality of sub-address sets; respectively corresponding the number of sub-address sets to the routing ports; and establishing a mapping between addresses in the sub-address set and routing ports corresponding to the sub-address set, which may be specifically shown in fig. 6.
FIG. 6 illustrates a schematic diagram of address mapping according to some embodiments of the present application. As shown in fig. 6, device 0 of the first type maps addresses to video memory or ports. Specifically, addresses for different ranges will be mapped to either the video memory or one of the ports. The specific mapping information of the address mapping shown in fig. 6 is applicable to the first type device 0 of the connected first type devices shown in fig. 4. And the address mapping method shown in fig. 6, is suitable for any first type device. In the first type device shown in fig. 6, the video memory of the first type device is 64G, so when the address is 0-64G, the first type device 0 will map the address to its video memory, and when the address exceeds 64G, the port will be called for.
In addition, a system for routing configuration is disclosed, comprising a plurality of first type devices and a second type device, each of the plurality of first type devices comprising a graphics processor, routing means for routing to a plurality of other first type devices and a port for communicating with other devices, the system comprising: each first-class device of the plurality of first-class devices acquires port connection information of the first-class device and other first-class devices; each first-class device of the plurality of first-class devices sends port connection information to the second-class device; the second-class equipment acquires port connection information of a plurality of first-class equipment; the second type equipment determines routing information among the first type equipment based on the port connection information; the second-class device sends the routing information to the plurality of first-class devices, so that each first-class device of the plurality of first-class devices configures a routing device of the first-class device based on the routing information; each first-class device of the plurality of first-class devices acquires routing information of communication between the first-class device and other first-class devices from the second-class device; and each of the plurality of first type devices configures its routing means based on the routing information.
As an example, the system of routing configuration may be arranged as shown in fig. 1, for example, each first-type device may be connected through a port, and the second-type device and the first-type device may be connected through a wired or wireless manner, for example, through a bus connection, etc.
It can be seen that, in the system for route configuration disclosed in the present application, first, a plurality of first-class devices obtain port connection information between themselves and other first-class devices and upload the port connection information to a second-class device, and the second-class device determines, based on the port connection information between the first-class devices, route information between the first-class devices, so that the route information can sufficiently meet subsequent data transmission requirements between the first-class devices. The second type device then sends the routing information to the plurality of first type devices. Finally, each first-class device configures the routing device based on the routing information, so that each first-class device can communicate with each other based on the routing information.
Fig. 7 illustrates an exemplary block diagram of a routing configuration apparatus 700 according to some embodiments of the present application. As shown in fig. 7, the apparatus 700 includes a first obtaining module 710, a first sending module 720, a second obtaining module 730, and a configuring module 740.
The first obtaining module 710 is configured to obtain port connection information of a first type device and other first type devices.
The first sending module 720 is configured to send the port connection information to the second type devices, so that the second type devices determine routing information between the respective first type devices based on the port connection information.
The second obtaining module 730 is configured to obtain, from the second type device, routing information for the first type device to communicate with other first type devices.
The configuration module 740 is configured to configure the routing device based on the routing information.
It can be seen that when the apparatus 700 is used for route configuration, the first obtaining module 710 obtains port connection information between the first-type devices, and then the first sending module 720 sends the port connection information to the second-type device, so that the second-type device can determine route information based on the port connection information between the first-type devices, which enables the route information to fully satisfy subsequent data transmission requirements between the first-type devices. And, the second obtaining module 730 will obtain the routing information, and then the configuring module 740 will configure the routing device of the first kind device based on the routing information, so that the first kind devices can communicate with each other based on the routing information.
Fig. 8 illustrates an exemplary block diagram of a routing configuration apparatus 800 according to some embodiments of the present application. As shown in fig. 8, the apparatus 800 includes a third obtaining module 810, a determining module 820, and a second sending module 830.
The third obtaining module 810 is configured to obtain port connection information of a plurality of first-class devices.
The determining module 820 is configured to determine routing information between the plurality of first type devices based on the port connection information.
The second sending module 830 is configured to send the routing information to the plurality of first type devices, so that each of the plurality of first type devices configures its routing means based on the routing information.
It can be seen that when the apparatus 800 is used for routing configuration, the third obtaining module 810 first obtains port connection information of a plurality of first-type devices, and then the determining module 820 determines routing information between the first-type devices based on the port connection information between the first-type devices, so that the routing information can sufficiently meet subsequent data transmission requirements between the first-type devices. Finally, the second sending module 830 sends the routing information to the first-class devices, so that the first-class devices can configure their own routing apparatus based on the routing information for subsequent mutual communication based on the routing information.
Fig. 9 illustrates an example system 900 that includes an example computing device 910 that represents one or more systems and/or devices that can implement the various methods described herein. The computing device 910 may be, for example, a server of a service provider, a device associated with a server, a system on a chip, and/or any other suitable computing device or computing system. The routing configuration apparatus 700 described above with reference to fig. 7 or the routing configuration apparatus 800 described in fig. 8 may take the form of a computing device 910. Alternatively, the route configuration apparatus 700 or the route configuration apparatus 800 may be implemented as a computer program in the form of an application 916.
The example computing device 910 as illustrated includes a processing system 911, one or more computer-readable media 912, and one or more I/O interfaces 913 communicatively coupled to each other. Although not shown, the computing device 910 may also include a system bus or other data and command transfer system that couples the various components to one another. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures. Various other examples are also contemplated, such as control and data lines.
The processing system 911 represents functionality to perform one or more operations using hardware. Thus, the processing system 911 is illustrated as including hardware elements 914 that may be configured as processors, functional blocks, and the like. This may include implementation in hardware as an application specific integrated circuit or other logic device formed using one or more semiconductors. Hardware element 914 is not limited by the material from which it is formed or the processing mechanisms employed therein. For example, a processor may be comprised of semiconductor(s) and/or transistors (e.g., electronic Integrated Circuits (ICs)). In such a context, processor-executable instructions may be electronically-executable instructions.
The computer-readable medium 912 is illustrated as including memory/storage 916. Memory/storage 916 represents memory/storage capacity associated with one or more computer-readable media. The memory/storage 916 may include volatile media (such as Random Access Memory (RAM)) and/or nonvolatile media (such as Read Only Memory (ROM), flash memory, optical disks, magnetic disks, and so forth). The memory/storage 916 may include fixed media (e.g., RAM, ROM, a fixed hard drive, etc.) as well as removable media (e.g., flash memory, a removable hard drive, an optical disk, and so forth). The computer-readable medium 912 may be configured in various other ways, which are further described below.
One or more I/O interfaces 913 represent functionality that allows a user to enter commands and information to computing device 910 using various input devices and optionally also allows information to be presented to the user and/or other components or devices using various output devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone (e.g., for voice input), a scanner, touch functionality (e.g., capacitive or other sensors configured to detect physical touch), a camera (e.g., motion that may not involve touch may be detected as gestures using visible or invisible wavelengths such as infrared frequencies), and so forth. Examples of output devices include display devices, speakers, printers, network cards, haptic response devices, and so forth. Thus, the computing device 910 may be configured in various ways to support user interaction, as described further below.
The computing device 910 also includes an application 916. The application 916 may be, for example, a software instance of the routing configuration apparatus 700 or the routing configuration apparatus 800, and in combination with other elements in the computing device 910 implement the techniques described herein.
A computer program product or computer program is provided that includes computer instructions stored in a computer readable storage medium. The processor of the computing device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions to cause the computing device to perform the route configuration method provided in the various alternative implementations described above.
Various techniques may be described herein in the general context of software hardware elements or program modules. Generally, these modules include routines, programs, objects, elements, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The terms "module," "functionality," and "component" as used herein generally represent software, firmware, hardware, or a combination thereof. The features of the techniques described herein are platform-independent, meaning that the techniques may be implemented on a variety of computing platforms having a variety of processors.
An implementation of the described modules and techniques may be stored on or transmitted across some form of computer readable media. Computer readable media can include a variety of media that can be accessed by computing device 910. By way of example, and not limitation, computer-readable media may comprise "computer-readable storage media" and "computer-readable signal media".
"computer-readable storage medium" refers to media and/or devices capable of persistently storing information, and/or tangible storage devices, as opposed to mere signal transmission, carrier waves, or signals per se. Accordingly, computer-readable storage media refers to non-signal bearing media. Computer-readable storage media include hardware such as volatile and nonvolatile, removable and non-removable media and/or storage devices implemented in a method or technology suitable for storage of information such as computer-readable instructions, data structures, program modules, logic elements/circuits, or other data. Examples of computer readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital Versatile Disks (DVD) or other optical storage, hard disks, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other storage devices, tangible media, or an article of manufacture suitable for storing the desired information and accessible by a computer.
"computer-readable signal medium" refers to a signal-bearing medium configured to transmit instructions to the hardware of the computing device 910, such as via a network. Signal media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave, data signal or other transport mechanism. Signal media also includes any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
As before, hardware element 914 and computer-readable medium 912 represent instructions, modules, programmable device logic, and/or fixed device logic implemented in hardware that, in some embodiments, may be used to implement at least some aspects of the techniques described herein. The hardware elements may include integrated circuits or systems-on-chips, application Specific Integrated Circuits (ASICs), field Programmable Gate Arrays (FPGAs), complex Programmable Logic Devices (CPLDs), and other implementations in silicon or components of other hardware devices. In this context, a hardware element may serve as a processing device that performs program tasks defined by instructions, modules, and/or logic embodied by the hardware element, as well as a hardware device for storing instructions for execution, such as the computer-readable storage medium described previously.
Combinations of the foregoing may also be used to implement the various techniques and modules herein. Thus, software, hardware, or program modules and other program modules may be implemented as one or more instructions and/or logic embodied on some form of computer-readable storage medium and/or by one or more hardware elements 914. The computing device 910 may be configured to implement particular instructions and/or functions corresponding to software and/or hardware modules. Thus, implementing modules at least partially in hardware as modules executable by the computing device 910 as software may be accomplished, for example, through the use of the processing system's computer-readable storage media and/or hardware elements 914. The instructions and/or functions may be executable/operable by one or more articles of manufacture (e.g., one or more computing devices 910 and/or processing systems 911) to implement the techniques, modules, and examples herein.
In various implementations, the computing device 910 may assume a variety of different configurations. For example, the computing device 910 may be implemented as a computer-like device including a personal computer, a desktop computer, a multi-screen computer, a laptop computer, a netbook, and so forth. The computing device 910 may also be implemented as a mobile device-like device including mobile devices, such as a mobile phone, a portable music player, a portable gaming device, a tablet computer, a multi-screen computer, and so on. The computing device 910 may also be implemented as a television-like device that includes devices with or connected to generally larger screens in casual viewing environments. These devices include televisions, set-top boxes, game consoles, and the like.
The techniques described herein may be supported by these various configurations of the computing device 910 and are not limited to specific examples of the techniques described herein.
It will be appreciated that for clarity, embodiments of the application have been described with reference to different functional units. However, it will be apparent that the functionality of each functional unit may be implemented in a single unit, in a plurality of units or as part of other functional units without detracting from the application. For example, functionality illustrated to be performed by a single unit may be performed by a plurality of different units. Thus, references to specific functional units are only to be seen as references to suitable units for providing the described functionality rather than indicative of a strict logical or physical structure or organization. Thus, the present application may be implemented in a single unit or may be physically and functionally distributed between different units and circuits.
Although the present application has been described in connection with some embodiments, it is not intended to be limited to the specific form set forth herein. Rather, the scope of the present application is limited only by the accompanying claims. Additionally, although individual features may be included in different claims, these may possibly advantageously be combined, and the inclusion in different claims does not imply that a combination of features is not feasible and/or advantageous. The order of features in the claims does not imply any specific order in which the features must be worked. Furthermore, in the claims, the word "comprising" does not exclude other elements, and the terms "a" or "an" do not exclude a plurality. Reference signs in the claims are provided merely as a clarifying example and shall not be construed as limiting the scope of the claims in any way.
It is to be understood that in the present application, data related to user information and the like are referred to in specific embodiments. When the above embodiments of the present application are applied to specific products or technologies, user permission or consent needs to be obtained, and the collection, use and processing of relevant data need to comply with relevant laws and regulations and standards of relevant countries and regions.
Claims (16)
1. A method implemented at a first class device for routing configuration, each of the first class devices including a graphics processor, routing means for routing to a plurality of other first class devices, and a port for communicating with other devices, the method comprising:
acquiring port connection information of the first-class equipment and other first-class equipment;
sending the port connection information to a second type of equipment so that the second type of equipment determines routing information among the first type of equipment based on the port connection information;
acquiring the routing information of the communication between the first-class device and other first-class devices from the second-class device; and
configuring the routing device based on the routing information.
2. The method according to claim 1, wherein each of the first-class devices includes a connection port, and the connection port is connected to a connection port of another first-class device to obtain port connection information between the one first-class device and the other first-class device, including:
determining port information of the connection ports of the other first-class devices connected to the one first-class device;
acquiring port information of a docking port in the other first-class devices, which is docked with the connection port; and
and determining the port connection information based on the port information of the connection port and the port information of the butt joint port.
3. The method according to claim 2, wherein obtaining port information of a docking port of the other first-class device that is docked with the connection port comprises:
indicating that said one first type device is ready to acquire information; and
and acquiring port information of the butt joint port of the other first-class equipment and the connecting port.
4. The method according to claim 3, wherein the first type device further includes a first status register and a first information register, and a second status register and a second information register, the first status register is used for storing status information of the connection port, the first information register is used for storing port information of the connection port, the second status register is used for storing information stored by the first status register of the other first type device acquired from the docking port through the connection port, and the second information register is used for storing information stored by the first information register of the other first type device acquired from the docking port through the connection port.
5. The method of claim 4, wherein indicating that the one first type device is ready to obtain information comprises:
storing a ready signal into a first status register of said one first type device for said connection port such that:
the other first type device acquires the ready signal stored by the first status register from the connection port via the docking port and stores the ready signal in a second status register of the other first type device, and
in response to the second status register of the other first type device storing the ready signal, the other first type device stores the port information of the docking port in a first information register of the other first type device for the docking port.
6. The method according to claim 4, wherein obtaining port information of a docking port where the other first-type device docks with the connection port comprises:
acquiring port information of the docking port stored in a first information register of the other first-class device from the docking port docked with the connection port through the connection port;
storing the port information of the docking port in a second information register of the first type device; and
and acquiring the port information of the docking port from the second information register of the first type equipment.
7. The method according to claim 2, wherein the port information includes a device number of a first type device where a port is located and a port number of the port in the first type device.
8. The method of claim 1, wherein configuring the routing device based on the routing information comprises:
determining routing ports of the first-class device and other first-class devices based on the routing information;
determining address ranges of the other first type devices;
mapping at least part of the addresses in the address range of the other first type devices to the routing port; and
configuring the mapped information to the routing device.
9. The method according to claim 8, wherein mapping at least some addresses in the address range of the other first type devices to the routing port comprises:
determining a set of addresses comprising all addresses within the address range of the other first type devices;
determining the number of routing ports between the one first type device and the other first type devices;
averagely dividing the address set into the number of sub-address sets;
respectively corresponding the number of sub-address sets to the routing ports; and
and establishing mapping between the addresses in the sub-address set and the routing ports corresponding to the sub-address set.
10. A method implemented at a device of a second type for route configuration, comprising:
acquiring port connection information of a plurality of first-class devices;
determining routing information among the plurality of first-class devices based on the port connection information; and
and sending the routing information to the plurality of first-class devices, so that each first-class device of the plurality of first-class devices configures a routing device thereof based on the routing information.
11. The method according to claim 10, wherein determining routing information among the plurality of first type devices based on the port connectivity information comprises:
determining a topology among the plurality of first-class devices based on the port connection information;
determining candidate routes between the plurality of first class devices based on the topology;
determining a shortest route between the plurality of first class devices based on the candidate route; and
determining routing information between the plurality of first class devices based on the shortest route.
12. A system for routing configuration comprising a plurality of first type devices and a second type device, each of said plurality of first type devices comprising a graphics processor, routing means for routing to a plurality of other first type devices and a port for communicating with other devices, said system comprising:
each first-class device of the plurality of first-class devices acquires port connection information of the first-class device and other first-class devices;
each first-class device of the plurality of first-class devices sends the port connection information to the second-class device;
the second-class equipment acquires port connection information of the first-class equipment;
the second type device determines routing information among the plurality of first type devices based on the port connection information;
the second class device sends the routing information to the plurality of first class devices, so that each first class device of the plurality of first class devices configures a routing device of the first class device based on the routing information;
each first-class device of the plurality of first-class devices acquires routing information of communication between the first-class device and other first-class devices from the second-class device; and
each of the plurality of first type devices configures its routing means based on the routing information.
13. An apparatus for routing configuration implemented at a first class device, each of said first class devices comprising a graphics processor, routing means for routing to a plurality of other first class devices, and ports for communicating with other devices, said apparatus comprising:
a first obtaining module configured to obtain port connection information of the first type device and other first type devices;
a first sending module configured to send the port connection information to a second type of device, so that the second type of device determines routing information between the first type of devices based on the port connection information;
a second obtaining module configured to obtain, from the second type device, routing information of communication between the one first type device and other first type devices; and
a configuration module configured to configure the routing device based on the routing information.
14. An apparatus implemented at a device of a second type for routing configuration, comprising:
a third obtaining module configured to obtain port connection information of a plurality of first-class devices;
a determination module configured to determine routing information between the plurality of first class devices based on the port connection information; and
a second sending module configured to send the routing information to the plurality of first class devices to cause each of the plurality of first class devices to configure its routing apparatus based on the routing information.
15. A computing device, comprising:
a memory configured to store computer-executable instructions; and
a processor configured to perform the method of any of claims 1-11 when the computer-executable instructions are executed by the processor.
16. A computer-readable storage medium having computer-executable instructions stored therein, which when executed perform the method of any one of claims 1-11.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211662848.1A CN115776463B (en) | 2022-12-23 | 2022-12-23 | Route configuration method, device, system, computing equipment and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211662848.1A CN115776463B (en) | 2022-12-23 | 2022-12-23 | Route configuration method, device, system, computing equipment and storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115776463A true CN115776463A (en) | 2023-03-10 |
CN115776463B CN115776463B (en) | 2023-10-31 |
Family
ID=85392818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211662848.1A Active CN115776463B (en) | 2022-12-23 | 2022-12-23 | Route configuration method, device, system, computing equipment and storage medium |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115776463B (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004350050A (en) * | 2003-05-22 | 2004-12-09 | Nec Corp | Network management method and network management system |
JP2013026687A (en) * | 2011-07-15 | 2013-02-04 | Nec Corp | Synchronous digital hierarchy network, device, topology construction method of the same, and program |
CN103152271A (en) * | 2013-04-03 | 2013-06-12 | 清华大学 | Routing forwarding method for content-based data center network |
CN103532846A (en) * | 2013-10-21 | 2014-01-22 | 深信服网络科技(深圳)有限公司 | Route link selection method and device |
US20160087873A1 (en) * | 2013-05-14 | 2016-03-24 | Zte Corporation | Network Topology Discovery Method and System |
CN112953774A (en) * | 2021-02-25 | 2021-06-11 | 山东英信计算机技术有限公司 | Network topology generation method, system, equipment and computer storage medium |
-
2022
- 2022-12-23 CN CN202211662848.1A patent/CN115776463B/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004350050A (en) * | 2003-05-22 | 2004-12-09 | Nec Corp | Network management method and network management system |
JP2013026687A (en) * | 2011-07-15 | 2013-02-04 | Nec Corp | Synchronous digital hierarchy network, device, topology construction method of the same, and program |
CN103152271A (en) * | 2013-04-03 | 2013-06-12 | 清华大学 | Routing forwarding method for content-based data center network |
US20160087873A1 (en) * | 2013-05-14 | 2016-03-24 | Zte Corporation | Network Topology Discovery Method and System |
CN103532846A (en) * | 2013-10-21 | 2014-01-22 | 深信服网络科技(深圳)有限公司 | Route link selection method and device |
CN112953774A (en) * | 2021-02-25 | 2021-06-11 | 山东英信计算机技术有限公司 | Network topology generation method, system, equipment and computer storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN115776463B (en) | 2023-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103023824B (en) | Based on data transmission system and the method for peripheral component interface express passway PCIe | |
US7096310B2 (en) | Switch configurable for a plurality of communication protocols | |
WO2015194534A1 (en) | Switching device, computer system, method, and program | |
EP3282649A1 (en) | Data packet forwarding | |
CN105721357A (en) | Exchange device, and peripheral component interconnection express (PCIe) system and initialization method thereof | |
US10698849B2 (en) | Methods and apparatus for augmented bus numbering | |
US10616105B1 (en) | Extending virtual routing and forwarding using source identifiers | |
US20170364308A1 (en) | System, method, and computer program product for interfacing one or more storage devices with a plurality of bridge chips | |
CN108234264A (en) | A kind of data packet forwarding method and device based on the extension of PCIe signaling interfaces | |
CN106790444A (en) | Network data exchange method and device | |
CN103685041A (en) | Programmable router and routing method based on bit granularity | |
US10169279B2 (en) | Input/output control device, input/output control system, and input/output control method for conversion of logical address of instruction into local address of device specified in instruction | |
US7647438B1 (en) | Binary base address sorting method and device with shift vector | |
CN115776463B (en) | Route configuration method, device, system, computing equipment and storage medium | |
CN111274193A (en) | Data processing apparatus and method | |
CN110943939B (en) | Network card unit, distributed network switch system and networking method | |
US20060112211A1 (en) | Method of transporting a PCI express packet over a VMEbus network | |
CN114237928A (en) | Inter-container communication method and device, electronic equipment and computer-readable storage medium | |
CN100382056C (en) | I/O configuration messaging within a link-based computing system | |
US7034837B2 (en) | Method, system, and computer program product for determining a structure of a graphics compositor tree | |
CN115793983B (en) | Addressing method, apparatus, system, computing device and storage medium | |
US7634586B1 (en) | Device for concurrent limit validity check | |
WO2021196904A1 (en) | Device management method, apparatus, and computer system | |
CN111698141A (en) | Message forwarding method and device | |
CN113824579B (en) | Interface configuration method of equipment in campus network and network equipment |
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 |