CN115776463B - Route configuration method, device, system, computing equipment and storage medium - Google Patents

Route configuration method, device, system, computing equipment and storage medium Download PDF

Info

Publication number
CN115776463B
CN115776463B CN202211662848.1A CN202211662848A CN115776463B CN 115776463 B CN115776463 B CN 115776463B CN 202211662848 A CN202211662848 A CN 202211662848A CN 115776463 B CN115776463 B CN 115776463B
Authority
CN
China
Prior art keywords
port
type
information
devices
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.)
Active
Application number
CN202211662848.1A
Other languages
Chinese (zh)
Other versions
CN115776463A (en
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202211662848.1A priority Critical patent/CN115776463B/en
Publication of CN115776463A publication Critical patent/CN115776463A/en
Application granted granted Critical
Publication of CN115776463B publication Critical patent/CN115776463B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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 one first type of equipment and other first type of equipment; transmitting the port connection information to the second class of devices, so that the second class of devices determine routing information among the first class of devices based on the port connection information; obtaining route information of communication between a first type device and other first type devices from a second type device; and configuring the routing device based on the routing information. According to the embodiment of the application, the routing configuration can be performed on the plurality of first-type devices, so that the plurality of first-type devices can perform joint calculation and storage.

Description

Route configuration method, device, system, computing equipment and storage medium
Technical Field
The present application relates to the field of communications technologies, and in particular, to a route configuration method, apparatus, system, computing device, computer readable storage medium, and computer program product.
Background
With the rapid development of technology, more and more new technologies are applied to various fields of society, which makes the demands for computation and storage of modern society greater and greater. To enhance computing and storage capabilities, multiple devices (e.g., GPU cards) may be used simultaneously for computing and storage. At this time, communication between a plurality of devices is required to accurately and timely perform data transmission. For this reason, it is necessary to perform routing configuration for devices to satisfy communication demands between the devices.
Disclosure of Invention
In view of this, the present application provides a route configuration method and apparatus, system, computing device, computer readable storage medium, and computer program product, which are expected to meet the communication needs between devices.
According to one aspect of the present application there is provided a method implemented at a first class of devices for routing configuration, each of the first class of devices comprising a graphics processor, routing means for routing to a plurality of other first class devices and ports for communication with the other devices, the method comprising: acquiring port connection information of one first type of equipment and other first type of equipment; transmitting the port connection information to the second class of devices, so that the second class of devices determine routing information among the first class of devices based on the port connection information; obtaining route information of communication between a first type device and other first type devices from a second type device; 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 first-class devices includes a connection port, where the connection port interfaces with a docking port of another first-class device, and obtaining port connection information between the first-class device and the other first-class device includes: determining port information of connection ports connected to other first-class devices in one first-class device; acquiring port information of a butt joint port which is in butt joint with a connection port in other first-class equipment; and determining port connection information based on the port information of the connection port and the port information of the docking port.
In a route configuration method according to some embodiments of the present application, obtaining port information of a docking port that docks with a connection port in other first-class devices includes: indicating that a first type of device is ready to obtain information; and acquiring port information of a butt joint port of other first-class equipment and the connection port.
In the route configuration method according to some embodiments of the present application, the first type device further includes a first status register for storing status information of the connection port and a first information register for storing port information of the connection port, and a second status register for storing information stored in the first status register of the other first type device acquired from the docking port through the connection port, and a second information register for storing information stored in the first information register of the other first type device acquired from the docking port through the connection port.
In a routing configuration method according to some embodiments of the present application, it is indicated that a first type of device is ready to acquire information, including: storing the ready signal in a first status register for the connection port of a first type of device such that: the other first type device obtains a readiness signal stored by the first status register from the connection port via the docking port and stores the readiness signal into 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 readiness signal, the other first type device stores port information of the docking port into a first information register of the other first type device for the docking port.
In a route configuration method according to some embodiments of the present application, obtaining port information of a docking port where other first type devices dock with a connection port includes: obtaining port information of the docking port stored in a first information register of other first type equipment from the docking port docked with the connection port through the connection port; storing port information of the docking port in a second information register of the first type of equipment; and obtaining port information of the docking port from a second information register of the first type of equipment.
In the route configuration method according to some embodiments of the present application, the port information includes a device number of a first type of device in which the port is located and a port number of the port in the first type of device.
In a route configuration method according to some embodiments of the present application, a routing device is configured based on route information, including: determining a routing port of one first type device and other first type devices based on the routing information; determining address ranges of other first-class devices; mapping at least part of addresses within the address range of the other first type devices to the routing ports; 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 within an address range of other first class devices to a routing port includes: determining an address set comprising all addresses within the address range of the other first class devices; determining the number of routing ports between one first type device and other first type devices; dividing the address set into a plurality of sub-address sets on average; respectively corresponding the number of sub-address sets with the routing ports; and establishing a 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 second class of devices for routing configuration, the method comprising: acquiring port connection information of a plurality of first-class devices; determining routing information between a plurality of first class devices based on the port connection information; and transmitting the routing information to the plurality of first class devices such that each of the plurality of first class devices configures its routing means based on the routing information.
In a route configuration method according to some embodiments of the present application, determining route information between a plurality of first type devices based on port connection information includes: determining a topology between a plurality of first class devices based on the port connection information; determining candidate routes between 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 class 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 devices of a first type and a second type, each device of the plurality of devices of the first type comprising a graphics processor, routing means for routing to a plurality of other devices of the first type and a port for communicating with the other devices, the system comprising: each first type device of the plurality of first type devices acquires port connection information of the first type device and other first type devices; each of the plurality of first class devices transmitting port connection information to the second class device; the second type equipment acquires port connection information of a plurality of first type 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 sending routing information to the plurality of first class devices such that each of the plurality of first class devices configures its routing means based on the routing information; each first type device of the plurality of first type devices obtains routing information of itself communicating with other first type devices from the second type 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 one first class of devices, each of the first class of devices comprising a graphics processor, routing means for routing to a plurality of other first class devices and ports for communicating with the other devices, the apparatus comprising: the first acquisition module is configured to acquire port connection information of one first type device and other first type devices; a first transmission module configured to transmit port connection information to the second class of devices, such that the second class of devices determine routing information between the respective first class of devices based on the port connection information; a second obtaining module configured to obtain, from a second type device, route information for one first type device to communicate with 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 routing configuration implemented at a second class of devices, the apparatus comprising: a third acquisition module configured to acquire port connection information of a plurality of first-class devices; a determination module configured to determine routing information between a plurality of first type devices based on the port connection information; and a second transmission module configured to transmit the routing information to the plurality of first-type devices, such 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 steps of a routing configuration method according to some embodiments of the present 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 steps of a route configuration method according to some embodiments of the present application.
According to another aspect of the present application, there is provided a computer program product comprising a computer program which, when executed by a processor, implements the steps of a route configuration method according to some embodiments of the application.
In the route configuration method and device claimed in the application, first, port connection information of one first type device and other first type devices is obtained. The port connection information is then transmitted to the second class of devices such that the second class of devices determine routing information between the respective first class of devices based on the port connection information. Routing information for one first type device to communicate with other first type devices is then obtained from the second type device. Finally, the routing means of the first class of devices are configured 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 among the first-class devices, so that the routing information can fully meet the subsequent data transmission requirements among the first-class devices. And completing configuration of the routing means of the first type of devices based on the routing information, so that the first type of devices 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 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 application;
fig. 2 illustrates an exemplary flow chart of a route configuration method implemented at a first type of device according to some embodiments of the application;
FIG. 3 illustrates an exemplary flow chart of a route configuration method implemented at a second class of devices according to some embodiments of the application;
FIG. 4 illustrates a schematic diagram of port connection information for a plurality of first type devices according to some embodiments of the application;
FIG. 5 illustrates a schematic diagram of a topology among a plurality of first type devices according to some embodiments of the application;
FIG. 6 illustrates a schematic diagram of address mapping according to some embodiments of the 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 including 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. However, the exemplary embodiments can be embodied in many 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 the example embodiments to those skilled in the art. The same reference numerals in the drawings denote the same or similar parts, and thus 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 application can be practiced without one or more of the specific details, or with other methods, components, devices, steps, etc. In other instances, well-known methods, devices, implementations, or operations are not shown or described in detail to avoid obscuring aspects of the application.
The block diagrams shown in the figures are merely functional entities and do not necessarily correspond to physically separate entities. That is, the functional entities may be implemented in software, or in one or more hardware modules or integrated circuits, or in different networks and/or processor devices and/or microcontroller devices.
The flow diagrams depicted in the figures are exemplary only, and do not necessarily include all information and operations/steps, nor must they 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 order of actual execution may be changed according to actual situations.
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 element. Accordingly, a first component discussed below could be termed a second component without departing from the teachings of the present inventive concept. As used herein, the term "and/or" and similar terms include all combinations of any, many, and all of the associated listed items.
Those skilled in the art will appreciate that the drawings are schematic representations of example embodiments and that the modules or flows in the drawings are not necessarily required to practice the application and therefore should not be taken to limit the scope of the application.
Before describing embodiments of the present application in detail, concepts of routing and related techniques are explained first.
Route (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 an IP subnet or point-to-point protocol, having at least 1 physical port. The router decides the output port and the next hop address according to the network layer address in the received data packet and the routing table maintained in the router, and rewrites the link layer data packet header to realize the forwarding of the data packet. The router reflects the current network topology by dynamically maintaining a routing table and maintains the routing table by exchanging routing and link information with other routers on the network.
GPU (graphics processing unit): namely, a graphic processor, also called a display core, a visual processor, a display chip, is a microprocessor which is specially used for performing image and graphic related operation on a personal computer, a workstation, a game machine and some mobile devices (such as a tablet computer, a smart phone and the like).
And (3) video memory: the video memory, also called frame buffer, is used to store rendering data that has been processed or is to be extracted by the graphics card chip. As with the memory of a computer, a video memory is a means for storing graphic information to be processed.
Communication protocol: a communication protocol refers to rules and conventions that must be followed by two parties to an entity to complete a communication or service.
Interlaken: also known as ILKN, is a protocol for high-speed data transmission between chips.
Serdes: SERDES, also known as SERializer/DESerializer, is also known. It is a mainstream Time Division Multiplexing (TDM), point-to-point (P2P) serial communication technology. The multi-path low-speed parallel signals are converted into high-speed serial signals at the transmitting end, and finally the high-speed serial signals are converted into low-speed parallel signals at the receiving end 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 piece of program running on the SMC.
InitDone register: one register used in the ILKN protocol, into which the value written is automatically synchronized into the InitDoneShadow register of the docking port. The InitDone register is used to prepare for port handshakes. Typically, there is one InitDone register per port.
The InitDoneShadow register: one register used in the ILKN protocol, the value of which will follow the change in the value of the InitDone register of the docking port. Typically, there is one InitDoneShadow register per port.
TopoInfo register: a register used in ILKN protocol may be written with a 64bits of data that is automatically synchronized by hardware to the TopoInfoShadow register of the docking port. Typically, there is one TopoInfo register per port.
TopoInfoShadow register: a register used in the ILKN protocol whose value varies with the value of the docking port TopoInfo register. Typically, there is one TopoInfoShadow register per port.
Host device: also referred to as a host computer, may be a host computer or the like. When communication of a plurality of terminals is performed, processing by a host is required.
Topology structure: topology refers to the physical layout of various devices such as computers interconnected by a transmission medium, and refers to the geometry formed during the interconnection process, which represents the network configuration of the network servers, workstations, and interconnections.
Fig. 1 illustrates an exemplary application scenario of a route configuration method according to some embodiments of the application. As shown in fig. 1, the application scenario may include at least one second type device and a plurality of first type devices. Devices of the first type may be interconnected and communicate via ports. And the first type of device may communicate with the second type of device by way of wired or wireless communication, such as by way of a bus. The first type of device may be a computing device such as a GPU card. 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 includes a graphics processor, routing means for routing to a plurality of other first type devices, and ports for communicating with the other devices. The method for routing configuration implemented at a first class of devices includes: acquiring port connection information of one first type of equipment and other first type of equipment; transmitting the port connection information to the second class of devices, so that the second class of devices determine routing information among the first class of devices based on the port connection information; obtaining route information of communication between a first type device and other first type devices from a second type device; and configuring the routing means of the first class of devices based on the routing information.
It should be noted that fig. 1 shows only an exemplary embodiment of an application scenario. The number of the first type devices, the number of the second type devices, the number of ports of the first type devices, the connection relationship between the first type devices, and the like can be changed according to different application scenarios, and the method is not limited herein. And the second type device and the first type device may be connected by a common connection manner, including but not limited to a wired connection, a wireless connection, etc., for example, through a bus, 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 device capable of persistent storage of information, and/or a tangible storage means. Thus, 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 methods or techniques 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 chart of a route configuration method 200 implemented at a first type of device according to some embodiments of the 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 includes a graphics processor, routing means for routing to a plurality of other first type devices, and a port for communicating with the 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 of 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 GPU chips, where the GPU cards are interconnected by ports, and the port connection information may be information of the GPU card where the ports are located and port numbers of the ports in the GPU card.
In step S220, port connection information is transmitted to the second class of devices, so that the second class of devices determine routing information between the respective first class of devices based on the port connection information. In some embodiments, the first type of device may send the port connection information to the second type of device by way of wired or wireless communication, e.g., the port connection information may be sent to the second type of device via a bus. As an example, the second type of device may be a HOST device, or may be another computing device. After receiving the port connection information, the second type devices determine routing information between the first type devices based on the port connection information.
In step S230, route information for one first type device to communicate with other first type devices is acquired from the second type device. In some embodiments, the second type device splits the determined routing information into a plurality of parts according to the requirements of each first type device, and then sends each part to the corresponding first type device. For example, in the application scenario shown in fig. 1, the second type device may send routing information required by the first type device 0 to the first type device 0, and send routing information required by the first type device N to the first type device N. Thus, one first type device may obtain from a second type device routing information that itself communicates with other first type devices.
In step S240, the routing device is configured based on the routing information. In some embodiments, after the first type of device receives the routing information required by itself from the second type of device, the routing device of itself will be configured based thereon.
The method 200 firstly obtains port connection information between the first-class devices and sends the port connection information to the second-class devices, so that the second-class devices can determine routing information based on the port connection information between the first-class devices, and the routing information can fully meet subsequent data transmission requirements between the first-class devices. And, the method 200 configures the routing means of the first class devices based on the routing information, so that the first class devices may 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 interfacing with an interfacing port of another first type device, and obtaining port connection information of one first type device with the other 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 butt joint port which is in butt joint with a connection port in other first-class equipment; 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 mutually connected GPU cards. For example, port 3 of GPU card 1 is used as a connection port, port 1 of GPU card 2 is used as a docking port for docking with port 3 of GPU card 1, and 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 a connection port in other first class devices includes: indicating that a first type of device is ready to obtain information; and acquiring port information of a butt joint port of other first-class equipment and the connection port.
As an example, when a first type device indicates itself to be ready to acquire information, other first type devices connected thereto may send information of a docking port to which the connection port of the first type device is docked to the first type device. At this time, one first type device may acquire port information of a docking port where the other first type device docks with the connection port.
In some embodiments, the first type of device further comprises a first status register for storing status information of the connection port, a first information register for storing port information of the connection port, and a second status register for storing information stored in the first status register of the other first type of device acquired from the docking port through the connection port, and a second information register for storing information stored in the first information register of the other first type of device acquired from the docking port through the connection port.
In some embodiments, the communication between the first type of devices may be based on ILKN protocol, where 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 InitDoneShadow register, and the second information register may be a Topoinfo shadow register. For example, the first type of device may be a GPU card, in which case, based on the ILKN protocol, the GPU card has for each connected port an InitDone register, a Topoinfo register, an InitDoneShadow register, a Topoinfo shadow register, respectively: recording whether the connection port is ready, recording port information of the connection port, recording whether the 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 in content synchronization 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 includes: storing the ready signal in a first status register for the connection port of a first type of device such that: the other first type device obtains a readiness signal stored by the first status register from the connection port via the docking port and stores the readiness signal into 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 readiness signal, the other first type device stores port information of the docking port into a first information register of the other first type device 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.GPU card 1 and GPU card 2 may handshake and communicate based on the ILKN protocol. When GPU card 1 is to indicate that it is ready to acquire information, it may store a character, e.g., 1 or 2, into the InitDone register corresponding to port 3, at which point the InitDoneShadow register of port 1 of GPU card 2 will be automatically synchronized to 1 or 2.GPU card 2 may thus learn that GPU card 1 is ready to acquire information.
In some embodiments, obtaining port information of a docking port for docking other first class devices with a connection port includes: obtaining port information of the docking port stored in a first information register of other first type equipment from the docking port docked with the connection port through the connection port; storing port information of the docking port in a second information register of the first type of equipment; and obtaining port information of the docking port from a second information register of the first type of equipment.
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.GPU card 1 and GPU card 2 may handshake and communicate based on the ILKN protocol. When GPU card 2 learns that GPU card 1 is ready to acquire information, port information for port 1 of GPU card 2 is stored in its Topoinfo register. The port information is then automatically synchronized by the hardware to the topoinfo shadow register of port 3 of GPU card 1. At this point, GPU card 1 will obtain port information for the docking port from its TopoinfoShadow register for port 3.
In some embodiments, the port information includes a device number of a first type of device in which the port is located and a port number of the port in the first type of device. For example, if the device number of a first type device is 3 and the port number of the connection port at this first type device is 5, the port information of the connection port is "35".
In some embodiments, the first type of device may be a GPU card and the connections and communications between the first type of devices may be based on ILKN and Serdes. The second type of device may be a HOST device. At this time, the routing configuration for the first type of device may include: training Serdes, ILKN initialization, handshaking and enumeration, reporting port connection information to HOST devices, and the like.
By way of example, the process of port 3 of GPU card 1 handshaking with port 1 of GPU card 2 will be described below. Firstly, the GPU chip in the GPU card 1 will automatically guide FW to run after being powered on, the FW will initialize Serdes, and the Serdes will train 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 InitDoneShadow register of port 1 of GPU card 2 will also be synchronized 1.GPU card 2 thus knows that GPU card 1 is ready to write port information of the docking port itself docked with GPU card 1 into the TopoInfo register. Alternatively, the written data may be selected in the format shown in table I.
Table I data format
bits Meaning of
0-16 Device numbering
16-24 Port numbering
24-63 Reservation of
At this time, the device number may be the number of the GPU card, the port number may be the number of the port in the GPU card, and the reserved bits may be used for other functions. For example, FW of the nth first class device (n is a natural number) may write values as shown in table II to the TopoInfo registers of different ports, respectively, to characterize the port information.
Table II characterizes the values of the port information
Port numbering Values characterizing port information
0 0x00<<16|n
1 0x01<<16|n
2 0x02<<16|n
3 0x03<<16|n
4 0x04<<16|n
5 0x05<<16|n
The GPU card will then report port connection information to the HOST device. As an example, port connection information may be characterized by the data shown in tables III and IV.
Table III Port connection information for device 0 of the first class
Port numbering The value of the topoinfo shadow register Meaning of
0 0x2<<16|7 Port 0 of device 0 of the first type is connected to port 2 of device 7 of the first type
1 0x1<<16|7 Port 1 of device 0 of the first type is connected to port 1 of device 7 of the first type
2 0x0<<16|7 Port 2 of device 0 of the first type is connected to port 0 of device 7 of the first type
3 0x0<<16|1 Port 3 of device 0 of the first type is connected to port 0 of device 1 of the first type
4 0x1<<16|1 Port 4 of the first type device 0 is connected to port 1 of the first type device 1
5 0x3<<16|7 Port 5 of device 0 of the first type is connected to port 3 of device 7 of the first type
Table IV port connection information for first class device 1
Port numbering The value of the topoinfo shadow register Meaning of
0 0x3<<16|0 Port 0 of the first class device 1 is connected to port 3 of the first class device 0
1 0x4<<16|0 Port 1 of device 1 of the first type is connected to port 4 of device 0 of the first type
2 0x0<<16|6 Port 2 of the first type device 1 is connected to port 0 of the first type device 6
3 0x0<<16|2 Port 3 of the first type device 1 is connected to port 0 of the first type device 2
4 0x1<<16|2 Port 4 of the first type device 1 is connected to port 1 of the first type device 2
5 0x3<<16|6 Port 5 of the first type device 1 is connected to port 3 of the first type device 6
In some embodiments, configuring a routing device based on routing information includes: determining a routing port of one first type device and other first type devices based on the routing information; determining address ranges of other first-class devices; mapping at least part of addresses within the address range of the other first type devices to the routing ports; and configuring the mapped information to the routing device.
As an example, the routing ports of one first type device and the other first type devices may be connection ports between them. And, when one first type device is not directly connected to other first type devices, it may also be relayed through another one or more other first type devices.
In some embodiments, mapping at least a portion of addresses within an address range of the other first type device to the routing port includes: determining an address set comprising all addresses within the address range of the other first class devices; determining the number of routing ports between one first type device and other first type devices; dividing the address set into a plurality of sub-address sets on average; respectively corresponding the number of sub-address sets with the routing ports; and establishing a mapping between the addresses in the sub-address set and the routing ports corresponding to the sub-address set.
By way of example, one first type device may have an address range of 0-4G and the other first type device may have an address range of 4G-8G, with one first type device being connected to the other first type device via 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 chart of a route configuration method 300 implemented at a second class of devices according to some embodiments of the application. As shown in fig. 3, the route configuration method 300 includes step S310, step S320, and step 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 way of wired communication or wireless communication. For example, the second type device may obtain port connection information from a plurality of first type devices via a bus.
In step S320, routing information between a plurality of first type devices is determined based on the port connection information. In some embodiments, the second type device may determine a topology 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 based on the topology.
In step S330, the routing information is sent to the plurality of first-type devices, such that each of the plurality of first-type devices configures its routing means 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 requirements of the respective first type device itself, each portion being adapted for one first type device, and send the respective portion to the corresponding first type device to configure its routing means. For example, for the scenario shown in FIG. 1, a second type device may send routing information needed by a first type device N to the first type device N based on the requirements of the first type device N (0N N).
In method 300, the second type devices determine routing information between the first type devices based on the port connection information between the first type devices, which enables the routing information to fully satisfy subsequent data transmission requirements between the first type devices. And the second type device sends the routing information to the plurality of first type devices after determining the routing information among the first type devices, so that the plurality of first type devices can configure own routing devices based on the routing information so as to communicate with each other based on the routing information.
In some embodiments, determining routing information between a plurality of first type devices based on port connection information includes: determining a topology between a plurality of first class devices based on the port connection information; determining candidate routes between 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 class devices based on the shortest route. This will be described in detail 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 application. As shown in fig. 4, 8 first type devices are connected through ports. It should be noted that the first type of device is still in communication with the second type of device in the figures, but is not shown.
First, each first-type device of the plurality of first-type devices acquires port connection information of the first-type device and other first-type devices. Alternatively, the port connection information may be represented using the data formats shown in tables III and IV. For example, the first type device 0 acquires port connection information between itself and the first type device 1: 03-10, 04-11.
Each of the plurality of first type devices then transmits port connection information to the second type device. Alternatively, each of the plurality of first type devices may send a table, such as table III and table IV data formats, to the second type device.
Then, the second type device acquires port connection information of the plurality of first type devices and determines routing information between the plurality of first type 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. As an example, fig. 5 shows a schematic diagram of a topology structure determined by a second type device based on port connection information among 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 of devices, and the links between the circles represent candidate routes, which may be indicated by letter-to-number. 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 type device will then determine candidate routes between the plurality of first type devices based on the topology and determine a shortest route between the plurality of first type devices based on the candidate routes. As can be seen from fig. 5, communication between the first class device 0 and the first class device 4 may be via a variety of candidate routes. To this end, the second type device may determine candidate routes between the plurality of first type devices and determine a shortest route between the plurality of first type devices based on the candidate routes. For example, a classical data structure algorithm may be used to calculate the shortest path between every two first class 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 load balancing. Specifically, based on the topology shown in fig. 5, the shortest path between the first type of devices is determined as shown in table V.
Table V shortest route between devices of the first class
Numbering device 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
1 mn op op-qr op-qr-ijkl op-gh ef mn-abcd
2 op-mn op qr qr-ijkl gh gh-uv gh-uv-wx
3 qr-op-mn rq-op qr ijkl ijkl-st ijkl-st-uv ijkl-st-uv-wx
4 ijkl-qr-op-mn ijkl-qr-op ijkl-qr ijkl st st-uv st-uv-wx
5 Gh-op-mn gh-op gh st-ijkl st uv uv-wx
6 Ef-mn ef uv-gh uv-st-ijkl uv-st 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" indicates the number of the first type of device, and the letters in the table indicate the shortest route between the first type of devices. The second type device will then determine routing information between the plurality of first type devices based on the shortest route.
The second type device then transmits the routing information to the plurality of first type devices such that each of the plurality of first type devices configures its routing means based on the routing information. As an example, when routing information is sent, complete routing information is sent, e.g. mn in the table is supplemented with m (03-10) n (04-11) for sending.
Finally, each of the plurality of first-type devices obtains from the second-type device its own routing information for communication with the other first-type devices, and configures its routing means 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 according to the routing data. As an example, table 6 shows routing data sent by HOST device to GPU card 0.
Table VI GPU card 0 routing data
Numbering device 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 represent the numbers of the first type of devices and the letters represent the 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 means that port 4 of the first class device 0 and port 1 of the first class device 1 are interconnected; o means O (13-20) indicating that port 3 of the first type device 1 and port 0 of the first type device 2 are interconnected; p denotes 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 denotes 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 denotes 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) indicating that port 0 of device 0 of the first type and port 2 of device 7 of the first type are interconnected; b denotes b (01-71) indicating that port 1 of the first type device 0 and port 1 of the first type device 7 are interconnected; c denotes c (02-70) indicating that port 2 of the first type device 0 and port 0 of the first type device 7 are interconnected; d denotes d (05-73) indicating 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 class device 0 configures its routing means based on the route data shown in table VI. Specifically, the method comprises the following steps: determining an address set comprising all addresses within the address range of the other first type devices, e.g. in the embodiment shown in fig. 4, the address set comprises the addresses of eight first type devices; determining a number of routing ports between one first type device and the other first type device, e.g. in the embodiment shown in fig. 4, the number of routing ports between the first type device and the other first type device is 6; dividing the address set into a plurality of sub-address sets on average; respectively corresponding the number of sub-address sets with the routing ports; and mapping is established between the addresses in the sub-address set and the routing ports corresponding to the sub-address set, specifically, as shown in fig. 6.
FIG. 6 illustrates a schematic diagram of address mapping according to some embodiments of the application. As shown in fig. 6, the first class of devices 0 map addresses to memory or ports. Specifically, for different ranges of addresses, mapping to memory or one of the ports will occur. The specific mapping information of the address mapping shown in fig. 6 is applicable to the first type device 0 among the connected first type devices shown in fig. 4. And, the address mapping method shown in fig. 6 is applicable to any first type of device. In the first type of device shown in fig. 6, the memory of the first type of device is 64G, so that when the address is 0-64G, the first type of device 0 maps the address to its own memory, and when the address exceeds 64G, the port is complained.
In addition, a system for routing configuration is disclosed, including a plurality of first-type devices and a second-type device, each of the plurality of first-type devices including a graphics processor, routing means for routing to a plurality of other first-type devices, and ports for communication with the other devices, the system comprising: each first type device of the plurality of first type devices acquires port connection information of the first type device and other first type devices; each of the plurality of first class devices transmitting port connection information to the second class device; the second type equipment acquires port connection information of a plurality of first type 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 sending routing information to the plurality of first class devices such that each of the plurality of first class devices configures its routing means based on the routing information; each first type device of the plurality of first type devices obtains routing information of itself communicating with other first type devices from the second type 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 configurations may be arranged as shown in fig. 1, e.g. the devices of the first type may be connected by ports, the devices of the second type may be connected by wires or wirelessly, e.g. by bus connections, etc.
In the system for route configuration disclosed by the application, firstly, the plurality of first-class devices acquire port connection information of the first-class devices and other first-class devices and upload the port connection information to the second-class devices, and the second-class devices determine the route information among the first-class devices based on the port connection information among the first-class devices by the second-class devices, so that the route information can fully meet subsequent data transmission requirements among the first-class devices. The second type device then transmits the routing information to the plurality of first type devices. And finally, configuring a routing device of each first type of equipment based on the routing information, so that each first type of equipment can communicate with each other based on the routing information.
Fig. 7 illustrates an exemplary block diagram of a route configuration device 700 according to some embodiments of the application. As shown in fig. 7, the apparatus 700 includes a first acquisition module 710, a first transmission module 720, a second acquisition module 730, and a configuration module 740.
The first acquisition module 710 is configured to acquire port connection information of one 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 of device, such that the second type of device determines routing information between the respective first type of devices based on the port connection information.
The second obtaining module 730 is configured to obtain, from the second type of device, route information for one first type of device to communicate with other first type of 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 routing configuration, the first obtaining module 710 will obtain the port connection information between the devices of the first type, and then the first sending module 720 sends the port connection information to the devices of the second type, so that the devices of the second type can determine the routing information based on the port connection information between the devices of the first type, which enables the routing information to fully meet the subsequent data transmission requirements between the devices of the first type. And, the second obtaining module 730 will obtain the routing information, and then the configuring module 740 will configure 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.
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 acquisition module 810, a determination module 820, and a second transmission module 830.
The third acquisition module 810 is configured to acquire port connection information of a plurality of first class devices.
The determination module 820 is configured to determine routing information between a 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, such 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 route 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 route information between the first type devices based on the port connection information between the first type devices, which enables the route information to fully meet subsequent data transmission requirements between the first type devices. Finally, the second sending module 830 sends the routing information to the plurality of first devices, so that the plurality of first devices can configure their own routing device based on the routing information, so as to perform mutual communication based on the routing information subsequently.
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. 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 route configuration apparatus 700 described above with reference to fig. 7 or the route configuration apparatus 800 described in fig. 8 may take the form of a computing device 910. Alternatively, the route configuration device 700 or the route configuration device 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. The system bus may 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 is representative of functionality that performs one or more operations using hardware. Thus, the processing system 911 is illustrated as including hardware elements 914 that can be configured as processors, functional blocks, and the like. This may include implementation in hardware as application specific integrated circuits or other logic devices formed using one or more semiconductors. The hardware component 914 is not limited by the material from which it is formed or the processing mechanism employed therein. For example, the processor may be comprised of semiconductor(s) and/or transistors (e.g., electronic Integrated Circuits (ICs)). In such a context, the processor-executable instructions may be electronically-executable instructions.
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. 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.) and 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 a variety of other ways as described further below.
One or more I/O interfaces 913 represent functionality that allows a user to input 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 keyboards, cursor control devices (e.g., mice), microphones (e.g., for voice input), scanners, touch functions (e.g., capacitive or other sensors configured to detect physical touches), cameras (e.g., motion that does not involve touches may be detected as gestures using visible or invisible wavelengths such as infrared frequencies), and so forth. Examples of output devices include a display device, speakers, printer, network card, haptic response device, and the like. Accordingly, the computing device 910 may be configured in a variety of ways as described further below to support user interaction.
Computing device 910 also includes 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 implements the techniques described herein in combination with other elements in the computing device 910.
The present application provides a computer program product or computer program comprising 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 methods 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 a medium and/or device that can permanently store information and/or a tangible storage device, as opposed to a mere signal transmission, carrier wave, or signal itself. Thus, 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 methods or techniques suitable for storage of information such as computer-readable instructions, data structures, program modules, logic elements/circuits or other data. Examples of a computer-readable storage medium 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 disk, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other storage devices, tangible media, or articles of manufacture adapted to store the desired information and which may be accessed by a computer.
"computer-readable signal medium" refers to a signal bearing medium configured to transmit instructions to hardware of a computing device 910, such as via a network. Signal media may typically be embodied in 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 include 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, the hardware elements 914 and computer-readable media 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 components of a system on a chip, application Specific Integrated Circuits (ASICs), field Programmable Gate Arrays (FPGAs), complex Programmable Logic Devices (CPLDs), and other implementations in silicon or other hardware devices. In this context, the hardware elements may be implemented as processing devices that perform program tasks defined by instructions, modules, and/or logic embodied by the hardware elements, as well as hardware devices that store instructions for execution, such as the previously described computer-readable storage media.
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. Computing device 910 may be configured to implement particular instructions and/or functions corresponding to software and/or hardware modules. Thus, for example, the modules may be implemented at least in part in hardware as modules executable by the computing device 910 as software using the computer-readable storage medium of the processing system and/or the 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 take on a variety of different configurations. For example, the computing device 910 may be implemented as a computer-like device including a personal computer, desktop computer, multi-screen computer, laptop computer, netbook, and the like. Computing device 910 may also be implemented as a mobile apparatus-like device including a mobile device such as a mobile phone, portable music player, portable gaming device, tablet computer, multi-screen computer, or the like. Computing device 910 may also be implemented as a television-like device that includes devices having or connected to generally larger screens in casual viewing environments. Such devices include televisions, set-top boxes, gaming machines, and the like.
The techniques described herein may be supported by these various configurations of computing device 910 and are not limited to the specific examples of 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 departing from the application. For example, functionality illustrated to be performed by a single unit may be performed by multiple 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 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 application is limited only by the appended claims. Additionally, although individual features may be included in different claims, these may possibly be advantageously 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 term "a" or "an" does 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 will be appreciated that in particular embodiments of the present application, data relating to user information and the like is referred to. When the above embodiments of the present application are applied to specific products or technologies, user approval or consent is required, and the collection, use and processing of relevant data is required to comply with relevant laws and regulations and standards of relevant countries and regions.

Claims (16)

1. A method implemented at a first type of device for graphics processor co-ordinated routing configuration of a plurality of first type devices, each of the first type of devices comprising a graphics processor, routing means for routing to a plurality of other first type devices and a port for communicating with the other devices, the port for inputting computation data required by the graphics processor or outputting computation results of the graphics processor, characterized in that a connection port of one first type device interfaces with a docking port in the other first type device, the connection port being at least part of a port of the one first type device, the docking port being at least part of a port of the other first type device, the method comprising:
acquiring port connection information of the first type of equipment and other first type of equipment;
Transmitting the port connection information to a second class of devices, so that the second class of devices determine routing information among the first class of devices based on the port connection information;
obtaining the route information of the first type device for communication with other first type devices from the second type device, wherein the route information comprises the mapping information of a route port and an address, and the route port is a port which is set by the second type device for the first type device and is communicated with other first type devices according to the address; and
and configuring the routing device based on the routing information, so that the first type equipment routes to other first type equipment through the corresponding routing port according to the address.
2. The method of claim 1, wherein each of the first type devices includes a connection port that interfaces with a docking port of another first type device, and wherein obtaining port connection information of the one first type device with the other first type device includes:
determining port information of connection ports connected to the other first-class devices in the first-class device;
acquiring port information of a butt joint port which is in butt joint with the connection port in the other first type of equipment; 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 of claim 2, wherein obtaining port information of a docking port of the other first type of device that docks with the connection port comprises:
indicating that the one first type of device is ready to obtain information; and
and acquiring port information of a butt joint port of the other first type equipment and the connection port.
4. A method according to claim 3, wherein the first type of device further comprises a first status register for storing status information of the connection port and a first information register for storing port information of the connection port, and a second status register for storing information stored by the first status register of the other first type of device acquired from the docking port through the connection port and a second information register for storing information stored by the first information register of the other first type of device acquired from the docking port through the connection port.
5. The method of claim 4, wherein indicating that the one first type of device is ready to obtain information comprises:
storing a ready signal into a first status register of the one first type of device for the connection port such that:
the other first type device obtains the readiness signal stored in the first status register from the connection port via the docking port and stores the readiness signal into 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 port information of the docking port into a first information register of the other first type device for the docking port.
6. The method of claim 4, wherein obtaining port information for a docking port at which the other first type of device docks with the connection port comprises:
acquiring port information of a butt joint port stored in a first information register of other first type equipment from the butt joint port butt joint with the connecting port through the connecting port;
Storing port information of the docking port in a second information register of the first type of equipment; and
and acquiring port information of the docking port from a second information register of the first type of equipment.
7. The method of claim 2, wherein the port information includes a device number of a first type of device in which a port is located and a port number of the port in the first type of device.
8. The method of claim 1, wherein configuring the routing device based on the routing information comprises:
determining the routing ports of the first-type equipment and other first-type equipment based on the routing information;
determining address ranges of the other first type devices;
mapping at least part of addresses within the address range of the other first type devices to the routing port; and
and configuring the mapped information to the routing device.
9. The method of claim 8, wherein mapping at least a portion of addresses within the address range of the other first type of device to the routing port comprises:
determining an address set, the address set comprising all addresses within an address range of the other first type device;
Determining a number of routing ports between the one first type device and the other first type device;
dividing the address set into the number of sub-address sets on average;
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 second type of device for graphics processor coordinated routing configuration of a plurality of first type devices, each of the first type devices comprising a graphics processor, routing means for routing to a plurality of other first type devices, and a port in communication with the other devices, the port for inputting computation data required by the graphics processor or outputting computation results of the graphics processor, characterized in that a connection port of one first type device interfaces with a docking port in the other first type device, the connection port being at least part of a port of the one first type device, the docking port being at least part of a port of the other first type device, the method comprising:
acquiring port connection information of a plurality of first-class devices, wherein the port connection information comprises information of a connection port of the first-class devices and information of a butt joint port which is in butt joint with the first-class devices;
Determining routing information among the plurality of first-class devices based on the port connection information, wherein the routing information comprises mapping information of routing ports and addresses, and the routing ports are ports which are set by the second-class devices for the first-class devices and are communicated with other first-class devices according to the addresses; 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, and then routes the routing device to other first-class devices through corresponding routing ports according to the address.
11. The method of claim 10, wherein determining routing information between the plurality of first type devices based on the port connection information comprises:
determining a topology between 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 routes; and
routing information between the plurality of first class devices is determined based on the shortest route.
12. A system for graphics processor coordinated routing configuration of a plurality of first class devices, comprising a plurality of first class devices and a second class device, each of the plurality of first class devices comprising a graphics processor, routing means for routing to a plurality of other first class devices and ports for communication with the other devices, the ports for inputting computation data required by the graphics processor or outputting computation results of the graphics processor, characterized in that a connection port of one first class device interfaces with a docking port in the other first class device, the connection port being at least part of a port of the one first class device, the docking port being at least part of a port of the other first class device, the system comprising:
Each first type device of the plurality of first type devices acquires port connection information of the first type device and other first type devices;
each first type device of the plurality of first type devices transmits the port connection information to the second type device;
the second type device acquires port connection information of the plurality of first type devices;
the second type device determines routing information among the plurality of first type devices based on the port connection information, wherein the routing information comprises mapping information of a routing port and an address, and the routing port is a port which is set by the second type device for the first type device and is communicated with other first type devices according to the address;
the second type device sends the routing information to the plurality of first type devices, so that each first type device of the plurality of first type devices configures a routing device thereof based on the routing information;
each first type device of the plurality of first type devices obtains routing information of itself for communication with other first type devices from the second type device; and
and each first type device of the plurality of first type devices configures a routing device thereof based on the routing information, so that each first type device routes to other first type devices according to the address through a corresponding routing port of the device.
13. An apparatus implemented at a first type of device for a graphics processor-coordinated routing configuration of a plurality of first type devices, each of the first type devices including a graphics processor, routing means for routing to a plurality of other first type devices, and a port in communication with the other devices for inputting computation data required by the graphics processor or outputting computation results of the graphics processor, characterized in that a connection port of one first type device interfaces with a docking port in the other first type device, the connection port being at least a portion of a port of the one first type device, the docking port being at least a portion of a port of the other first type device, the apparatus comprising:
the first acquisition module is configured to acquire port connection information of the first type device and other first type devices;
a first transmitting module configured to transmit the port connection information to a second class of devices, such that the second class of devices determine routing information between respective first class of devices based on the port connection information;
a second obtaining module, configured to obtain, from the second type device, routing information for the one first type device to communicate with other first type devices, where the routing information includes mapping information of a routing port and an address, and the routing port is a port set by the second type device for the first type device to communicate with other first type devices according to the address; and
A configuration module configured to configure the routing means based on the routing information such that the one first type device routes to other first type devices via the corresponding routing ports according to the address.
14. An apparatus implemented at a second type of device for a graphics processor-coordinated routing configuration of a plurality of first type devices, each of the first type devices including a graphics processor, routing means for routing to a plurality of other first type devices, and a port in communication with the other devices for inputting computation data required by the graphics processor or outputting computation results of the graphics processor, characterized in that a connection port of one first type device interfaces with a docking port in the other first type device, the connection port being at least a portion of a port of the one first type device, the docking port being at least a portion of a port of the other first type device, the apparatus comprising:
a third acquisition module configured to acquire port connection information of a plurality of first-type devices, the port connection information including information of connection ports of the first-type devices and information of docking ports to dock with the first-type devices;
A determining module configured to determine routing information among the plurality of first-type devices based on the port connection information, the routing information including mapping information of routing ports and addresses, the routing ports being ports set for the first-type devices by the second-type devices to communicate with other first-type devices according to the addresses; and
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, and thereby routes the routing information to other first-type devices via corresponding routing ports according to addresses.
15. A computing device, comprising:
a memory configured to store computer-executable instructions; and
a processor configured to perform the method according to any of claims 1-11 when the computer executable instructions are executed by the processor.
16. A computer readable storage medium, characterized in that the computer readable storage medium has stored therein computer executable instructions which, when executed, implement the method according to any of claims 1-11.
CN202211662848.1A 2022-12-23 2022-12-23 Route configuration method, device, system, computing equipment and storage medium Active CN115776463B (en)

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 CN115776463A (en) 2023-03-10
CN115776463B true 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 (5)

* Cited by examiner, † Cited by third party
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
CN112953774A (en) * 2021-02-25 2021-06-11 山东英信计算机技术有限公司 Network topology generation method, system, equipment and computer storage medium

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158747B (en) * 2013-05-14 2019-09-24 中兴通讯股份有限公司 Method for discovering network topology and system

Patent Citations (5)

* Cited by examiner, † Cited by third party
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
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
CN115776463A (en) 2023-03-10

Similar Documents

Publication Publication Date Title
US10263891B2 (en) Switching device, computer system, method, and program
US10333845B2 (en) Forwarding data packets
US20050210177A1 (en) Switch configurable for a plurality of communication protocols
CN105721357A (en) Exchange device, and peripheral component interconnection express (PCIe) system and initialization method thereof
CN106664261A (en) Method, device, and system for configuring flow entries
CN108566445A (en) A kind of message transmitting method and device
CN103023824A (en) Peripheral component interconnect-express (PCIe) based data transmission system and method
RU2004139118A (en) DETERMINATION AND CONFIGURATION OF THE DATA TRANSFER WAY IN THE NETWORK
US20170126815A1 (en) System and method for chaining virtualized network functions
EP3327993A1 (en) Route management
CN106790444A (en) Network data exchange method and device
CN115776463B (en) Route configuration method, device, system, computing equipment and storage medium
CN101383766A (en) Packet forwarding method, device and equipment
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
CN106649186A (en) Communication method and device for application program and serial port peripheral
US10614026B2 (en) Switch with data and control path systolic array
US8144606B1 (en) Interfacing messages between a host and a network
CN105610717B (en) A kind of route issuing method and device across SDN network
US20060112211A1 (en) Method of transporting a PCI express packet over a VMEbus network
CN106027423A (en) Shared network of PCIe (Peripheral Component Interconnect-Express) device and data transmission method thereof
US20230188377A1 (en) Communication relay device, communication control method, and non-transitory computer readable storage medium
CN115793983B (en) Addressing method, apparatus, system, computing device and storage medium
US20220360529A1 (en) Packet Transmission Method and Apparatus, and Device
CN112468353B (en) Network reachability detection method and device
WO2021196904A1 (en) Device management method, apparatus, and computer system

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