Information processing system, information processing device, server device, program, and reconfigurable device or method
The information processing system addresses inefficiencies in reconfigurable device utilization by combining resource information from multiple computing nodes, optimizing resource management and reducing communication overhead.
Patent Information
- Application Number
- CN202280096336.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-03-25
- Publication Date
- 2024-12-31
AI Technical Summary
Existing technologies do not effectively utilize reconfigurable devices, leading to inefficiencies in resource management and communication overhead between multiple reconfigurable devices.
An information processing system that acquires and generates synthetic resource information by combining resource information from multiple computing nodes, allowing for soft and hard resource merging to optimize the utilization of reconfigurable devices.
Enhances the appropriate utilization of reconfigurable devices by reducing communication overhead and improving resource management, enabling more efficient utilization of hardware resources.
Smart Images

Figure CN119234223A_ABST
Abstract
Description
Technical Field
[0001] The technology disclosed in the present application relates to a system, an information processing device, a server device, a reconfigurable device, a program, a cloud, and / or a method. Background Art
[0002] In recent years, reconfigurable devices capable of modifying circuits have begun to be introduced into various fields.
[0003] Prior art literature
[0004] Patent Literature
[0005] Patent Document 1: Japanese Patent Application Publication No. 2020-135318
[0006] Patent Document 2: Japanese Patent Application Publication No. 2010-251925
[0007] Patent Document 3: Japanese Patent Application Laid-Open No. H7-6080 Summary of the invention
[0008] Problem that the invention aims to solve
[0009] However, there is a situation where the technology for more appropriately utilizing the reconfigurable device is not effectively utilized. Therefore, in order to solve the above-mentioned problems, various embodiments of the present invention provide an information processing system, an information processing device, a server device, a program, a reconfigurable device or a method.
[0010] Solutions for solving problems
[0011] One embodiment of the present application is a system comprising:
[0012] an acquisition unit configured to acquire first resource information and second resource information, wherein the first resource information is information about hardware resources that can be used when one or more bitstreams associated with the first computing node are written to the reconfigurable device, and the second resource information is information about hardware resources that can be used when one or more bitstreams associated with the second computing node are written to the reconfigurable device; and
[0013] A generation unit generates synthetic resource information using the first resource information and the second resource information, wherein the synthetic resource information is information about hardware resources that can be used when one or more bit streams based on the first computing node and the second computing node are written to a reconfigurable device.
[0014] Another embodiment of the present application is a method for performing the following steps by one or more information processing devices:
[0015] an acquisition step of acquiring first resource information and second resource information, wherein the first resource information is information about hardware resources that can be used when one or more bitstreams associated with the first computing node are written to the reconfigurable device, and the second resource information is information about hardware resources that can be used when one or more bitstreams associated with the second computing node are written to the reconfigurable device; and
[0016] A generating step, using the first resource information and the second resource information to generate synthetic resource information, wherein the synthetic resource information is information about hardware resources that can be used when one or more bit streams based on the first computing node and the second computing node are written to a reconfigurable device.
[0017] Another embodiment of the present application is a program for causing one or more information processing devices to act as an acquisition unit and a generation unit.
[0018] The acquisition unit acquires first resource information and second resource information, wherein the first resource information is information about hardware resources that can be used when one or more bit streams related to the first computing node are written to the reconfigurable device, and the second resource information is information about hardware resources that can be used when one or more bit streams related to the second computing node are written to the reconfigurable device.
[0019] The generation unit generates synthetic resource information using the first resource information and the second resource information, the synthetic resource information being information about hardware resources that can be utilized when one or more bitstreams based on the first computing node and the second computing node are written to a reconfigurable device.
[0020] Effects of the Invention
[0021] According to one embodiment of the present invention, a reconfigurable device can be more appropriately and effectively utilized. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] Figure 1 This is a block diagram showing an example of the relationship between a system and a reconfigurable device according to one embodiment.
[0023] Figure 2 This is a block diagram showing an example of the relationship between a system and a reconfigurable device according to one embodiment.
[0024] Figure 3 This is a diagram showing an example of data used by a system according to one embodiment.
[0025] Figure 4This is a diagram showing an example of data used by a system according to one embodiment.
[0026] Figure 5 This is a diagram showing an example of processing performed by a system according to one embodiment.
[0027] Figure 6 This is a diagram showing an example of the flow of data associated with a system according to one embodiment.
[0028] Figure 7 This is a diagram showing an example of processing performed by a system according to one embodiment.
[0029] Figure 8 This is a diagram showing an example of processing performed by a system according to one embodiment.
[0030] Fig. 9 This is a diagram showing an example of the flow of data associated with a system according to one embodiment.
[0031] Fig.10 This is a diagram showing an example of processing performed by a system according to one embodiment.
[0032] Fig.11 This is a diagram showing an example of data used by a system according to one embodiment.
[0033] Fig.12 A configuration related to a system according to one embodiment is shown.
[0034] Fig.13 This is a diagram showing an example of processing performed by a system according to one embodiment.
[0035] Fig.14 This is a diagram showing an example of data used by a system according to one embodiment.
[0036] Fig.15 This is a diagram showing an example of the flow of data associated with a system according to one embodiment.
[0037] Fig.16 A configuration related to a system according to one embodiment is shown.
[0038] Fig.17 This is a block diagram showing an example of the configuration of a system according to one embodiment. DETAILED DESCRIPTION
[0039] 1. Introduction
[0040] An example of the technology disclosed in the present application relates to a rewritable circuit. For example, the technology disclosed in the present application is a technology related to the rewritable circuit itself, a technology for using a non-rewritable circuit for a rewritable circuit, a program used for these circuits, etc. With regard to an example of the present technology, an information processing device including a non-rewritable circuit can also be used. A rewritable circuit is also called a programmable logic device, etc., but in this application document, these names are included and referred to as a reconfigurable device (Reconfigurable Logic Device). On the other hand, a non-rewritable circuit is sometimes also referred to as a command decoding method, a Neumann-type device, etc., but in this application document, these names are included and referred to as a program variable device (ProgramVariable Device).
[0041] Regarding reconfigurable devices, for example, there are PAL (Programmable Array Logic), PLA (Programmable Logic Array), GAL (Generic Array Logic), CPLD (Complex Programmable Logic Device), FPGA (Field Programmable Gate Array), CGRA (Coarse-Grained Reconfigurable Array), etc.
[0042] In the following parts of this application document, FPGA is sometimes used as a reconfigurable device for explanation, but it is self-evident that it can also be used in other reconfigurable devices instead of the FPGA. In particular, as a reconfigurable device, as long as it has partial reconfiguration (Partial Reconfiguration: PR), that is, a device that can write to multiple areas (for example, PR areas) within a programmable logic device independently of each other, it can be a device that can perform processing in each area described later. Here, being able to write independently of each other can include the following functions: while processing is being performed in an area within a programmable logic device, being able to write to other areas within the programmable logic device that are different from the one area.
[0043] In this application document, when referred to as "a" reconfigurable device, it may be a physically independent device. In addition, a reconfigurable device may include one or more PR regions in structure. The PR region may be a partition that can independently change the circuit structure. For each PR region, the reconfigurable device may be capable of performing one or more independent operations using partial reconfiguration, or may be capable of performing one or more independent operations without using partial reconfiguration. Because they are independent, for example, when a reconfigurable device includes PR region A and PR region B, PR region A and PR region B can act independently with respect to rewriting of the circuit and execution of the circuit. Therefore, it may be possible to rewrite PR region B during the execution of PR region A. In addition, reconfigurable devices are sometimes referred to as physical devices, and PR regions are sometimes referred to as virtual devices.
[0044] In addition, the data written to the reconfigurable device may be a bitstream or a partial bitstream, but the following description includes both of them and assumes that the data is a bitstream.
[0045] The bitstream in the present application document can be obtained by describing and compiling a program (sometimes also referred to as an HDL program in the present application document) using a hardware description language (Hardware Descriptive Language, sometimes also referred to as "HDL" in the present application document) such as VHDL and Verilog.
[0046] The HDL program in this application document may be obtained by human programming (coding), or may be obtained by converting a program described in a high-level programming language such as C language using a high-level synthesis tool. In addition, in this application document, the general concept of a program described in a high-level programming language (any language such as C language, Python language, etc.) that can be converted into an HDL program by such a high-level synthesis tool and an HDL program is sometimes referred to as an "object HDL program".
[0047] Furthermore, in this specification, the term "information processing apparatus" is used as a general term for a reconfigurable device and a program-variable device.
[0048] As an example, the system may be composed of one or more information processing devices. The one or more information processing devices may be composed of one or more reconfigurable devices and / or one or more program-variable devices.
[0049] In addition, the system as an example may be connected to one or more reconfigurable devices. In this case, the system as an example has the advantage of being able to manage one or more reconfigurable devices.
[0050] Figure 1 An example of a system as an example connected to one or more FPGAs is shown. An example of a system (001) connected to FPGA1 (0021) to FPGA4 (0024) is shown. The connection can be made via Ethernet or via a bus such as PCI Express. In addition, the system as an example can be connected only to one or more FPGAs as a computing function for executing a user's application. In this case, a program-variable device can be connected as a hardware resource for executing functions other than the computing function for executing a user's application.
[0051] In addition, the system as an example can also be connected to one or more reconfigurable devices and one or more program-variable devices. In this case, the system as an example has the following advantages: in addition to being able to manage the reconfigurable devices, it is also possible to manage distributed processing, etc., including the program-variable devices.
[0052] In the case where the system as an example is connected to one or more reconfigurable devices, and / or one or more program-variable devices, the connection may be directly or indirectly connected via a network. One or more reconfigurable devices may be arranged in the same facility as the system as an example, or in a facility different from the system as an example. In addition, the specific place where one or more reconfigurable devices are arranged may be any place. For example, one or more reconfigurable devices may be arranged inside a building (indoors) or outside a building (outdoors). IoT devices such as sensors may operate inside and / or outside a building, and IoT devices such as sensors may also be implemented through reconfigurable devices. The network may be wired, wireless, or a mixture of wired and wireless.
[0053] Figure 2The system as an example is shown to be connected to a reconfigurable device and a program-variable device via a network (000). In this figure, a structural example is shown in which a plurality of FPGAs and program-variable devices are included in an FPGA group (002). Here, the parts representing the program-variable devices are recorded as CPU1 and CPU2, and for convenience, they are also represented as part of the FPGA group. In addition, an information processing device is included in the FPGA group (003), and the information processing device includes the functions of a plurality of FPGAs and an FPGA writer. The FPGA writer can be capable of both writing a bitstream for the FPGA group (003) and writing a bitstream for the FPGA group (002). The networks in these FPGA groups (002) and (003) can be a bus, or an Ethernet, etc.
[0054] In addition, as an example, the system, the one or more reconfigurable devices, and / or the one or more program-variable devices may also be information processing devices on the cloud.
[0055] In this application document, a calculation (or a calculation concept) executed in one or more target HDL programs, one or more bitstreams, PR regions, and / or reconfigurable devices is referred to as a calculation node, and a unit of a calculation node executed in a PR region or a reconfigurable device is referred to as a calculation node. A calculation node can correspond to one or more target HDL programs. A calculation node can correspond to one or more bitstreams. In addition, a calculation node can correspond to a unit of resource information specified by a programmer and described later.
[0056] Additionally, in this document, a hardware resource may represent a reconfigurable device, a PR region within a reconfigurable device, and / or a program-variable device.
[0057] 2. Implementation Method 1
[0058] The HDL program can be converted into a bitstream by compiling, written into a reconfigurable device, and then executed for calculation. Generally, a programmer writes an HDL program with the intention of writing into a specific reconfigurable device (or a part of its PR region).
[0059] However, for a certain process, it is assumed that a plurality of bit streams (e.g., BS1, BS2, BS3) are obtained by compiling a plurality of HDL programs (e.g., HDL1, HDL2, HDL3) respectively to realize it. Moreover, when these bit streams are written to each reconfigurable device R (e.g., RD1, RD2, RD3), the reconfigurable devices to be written become multiple, and sometimes communication overhead between these multiple reconfigurable devices is generated. Therefore, the inventors and others have thought of a technology related to reducing the communication overhead between reconfigurable devices by setting these multiple reconfigurable devices to be written to one reconfigurable device (e.g., RDX).
[0060] In the present application document, information processing for converting resource information about hardware resources utilized by an object HDL program corresponding to N (N is a natural number) computing nodes into resource information about hardware resources utilized by an object HDL program corresponding to M (M is a natural number less than N) computing nodes is sometimes referred to as soft resource merging. In addition, in the present application document, information processing for converting (compiling) an object HDL program corresponding to a computing node involved in a soft resource merging into a bitstream is sometimes referred to as soft merging. In addition, a plurality of computing nodes that are soft merged can sometimes be regarded as one computing node. The reason is that, for a plurality of computing nodes that are soft merged, when synthetic information can be generated based on the resource information corresponding to the plurality of computing nodes through soft resource merging, the computing nodes corresponding to the synthetic information can consider the resource information corresponding to the computing nodes, and therefore can be regarded as one computing node. In addition, the process of writing the bitstream obtained by soft merging to hardware resources is sometimes referred to as hard merging.
[0061] In addition, the object HDL program is converted into a bitstream (in the case of a high-level programming language using a high-end synthesis tool, the HDL program is generated by applying a behavioral synthesis tool to the program described by the high-level programming language, and then converted into a bitstream), and the bitstream can be written to the reconfigurable device. Here, the object HDL program is sometimes written based on information about the reconfigurable device to be written. For example, with respect to a certain object HDL program, as for the computing processing capability, the number of logic blocks is 500, the storage capacity is 300 megabytes, the frequency is 100 megahertz, etc. When such an object HDL program is written to a reconfigurable device, the capacity and functions that the reconfigurable device to be written needs to have are sometimes referred to as resource information in this application document.
[0062] Regarding resource information, for example, information such as the type of reconfigurable device, attributes related to the computing device, attributes related to the storage device, and / or attributes related to the communication device are cited. Attributes related to the computing device may include the type of computing device, the number of computing devices such as the number of cells, the capabilities of the computing device such as the number of clock frequencies, the number of logic blocks, the number of logic elements (LEs), the number of logic cells (LCs), the capacity of LUTs (lookup tables), the number of bits of registers, the type of DSPs, the capabilities of DSPs, the number of DSPs, and / or the power used by the computing device. Attributes related to the storage device may include the type of storage device, the capacity of the storage device, the read and write speed of the storage device, and / or the power used by the storage device. The storage device may be, for example, an on-chip storage device in the reconfigurable device, but may also be other storage devices arranged outside the reconfigurable device. Attributes related to the communication device may include attributes related to the internal communication device, and / or attributes related to the external communication device. In addition, the attributes related to the internal communication device may be information related to the communication within the FPGA. Attributes related to external communication devices may include network bandwidth, number of communication channels, and / or frequency band speed, etc., used for communicating with the outside. In addition, in the present application document, information from different perspectives in resource information (for example, attributes related to computing devices, attributes related to storage devices, and / or attributes related to communication devices, as well as information of their subordinate concepts) is sometimes referred to as "attributes". In addition, one or more resource information may be included for each attribute. For example, a resource information may include information such as multiple frequencies, types of multiple storage devices, and the number of multiple logic blocks. In addition, in the case where there are multiple attributes, the corresponding attributes may be included in the resource information in an associated manner. In addition, in addition to or instead of the case where each attribute is multiple, each attribute may be specified by a range. For example, in a resource information, a range may be specified, such as frequencies X1 to X2, the number of logic blocks Y1 to Y2, etc. In particular, in the case where the object HDL program is a program described in a high-level programming language, the type of reconfigurable devices such as frequency and number of logic blocks, properties related to the computing device, properties related to the storage device, and / or properties related to the communication device are sometimes automatically determined within a certain range by selecting options in the application of the behavioral synthesis tool. This has the advantage of more flexibly achieving soft resource merging to hard merging by making the resource information include information on their acceptable ranges.
[0063] Resource information about one or more object HDL programs and / or resource information about a hardware resource can also be specified by the programmer. In this case, the programmer can specify this information while writing the object HDL program, considering at least what degree of computing power and storage capacity are needed. Here, resource information can also be specified for an attribute based on multiple viewpoints (such as required, recommended, etc.). For example, the frequency of a certain object HDL program can be specified as required to be 1MHZ, recommended to be 2MHZ, etc. In addition, the resource information for a certain object HDL program can be automatically generated for the object HDL program. For example, the above-mentioned resource information can also be generated by parsing the object HDL program.
[0064] In addition, there may be multiple methods for setting a PR region for a reconfigurable device. For example, a reconfigurable device may be divided into two PR regions, PR regions A and B, or may be divided into four PR regions, PR regions A to D. As described above, when the division method is different, the resource information about each PR region is also different, so the resource information may be stored in association with a specific PR region in a certain division method.
[0065] In addition, in this application document, "one" resource information may be a unit that can be used by a user as a hardware resource. Therefore, in the case where the reconfigurable device is not managed in units of PR regions, one resource information may be a reconfigurable device. If the reconfigurable device is managed in units of PR regions and the hardware resource can be used for each PR region, one resource information may be a PR region in a reconfigurable device. In addition, one reconfigurable device may be purchased independently as a device capable of rewriting a circuit.
[0066] In this application document, a database storing resource information associated with an object HDL program is sometimes referred to as an HDL resource database (or HDL-RDB). In addition, in this application, resource information does not necessarily have to be stored in the form of a database, as long as the resource information is stored corresponding to the object HDL program. In addition, one resource information can be stored corresponding to one or more object HDL programs. In addition, one resource information can be stored corresponding to one computing node.
[0067] An example of HDL-RDB is Figure 3. In this figure, one resource information can be associated with one or more HDL programs. For example, with respect to ID 001, one resource information (a set of information about each attribute for resource information) is stored in association with one object HDL program. In the case where one resource information is associated with multiple object HDL programs, consider the following situation: Assume that a programmer compiles multiple object HDL programs into an object HDL program that implements a function, and writes them to one hardware resource. For example, with respect to ID 002, one resource information is stored in association with multiple object HDL programs 002, 003, and 004. In addition, one resource information can be associated with one computing node.
[0068] On the other hand, resource information can also be considered in a reconfigurable device or a PR region therein. That is, when a certain reconfigurable device or a PR region therein is provided, since the capacity and function of the reconfigurable device or the PR region therein can be considered, resource information for the reconfigurable device or the PR region therein can also be considered. In this application document, a database that stores resource information in association with a certain reconfigurable device or a PR region therein is sometimes referred to as an RFD resource database (or RFD-RDB).
[0069] An example of an HDL resource database is Figure 4 . In this figure, each row in the table can represent a hardware resource that can write one or more bitstreams. For example, ID 001 and ID 002 represent the case where the hardware resource 001 is divided into PR region 01 and PR region 02 (division method 1). In addition, unlike ID 001 and 002, ID 003 to ID 005 represent the case where the same hardware resource 001 is divided into PR regions 01 to 03 (division method 2). Like this, the same hardware resource 001 can also be physically divided into hardware resources with different resource amounts by different division methods (division methods 1 and 2), as described later, to achieve more suitable (less wasteful) allocation of hardware resources for the computing nodes to be executed. In addition, ID 006 is an example in which the PR region is not set, and is an example in which the hardware resource 101 without the PR region set is directly used as a resource information. In addition, for ID 001 to ID 005, etc., the division of the PR region can be saved in the HDL-RDB as information that the hardware resource that becomes the object has been divided, and the division of the PR region can also be saved in the HDL-RDB as information in the case where the PR region is not actually set in the hardware resource that becomes the object but is saved in the HDL-RDB as information in the case where the PR region has been divided.
[0070] RFD-RDB and / or HDL-RDB may or may not utilize a database management system. In the case of a data model based on which the database exists, the data model may be a hierarchical, network, relational data model, an object data model, or other types of data models, and the types are not limited. In addition, the hardware resources for implementing the database may be a server, a cloud, a dedicated information processing device, and / or a general information processing device.
[0071] When the system as an example uses RFD-RDB and / or HDL-RDB, the system as an example only needs to be able to access RFD-RDB and / or HDL-RDB. The system as an example may have RFD-RDB and / or HDL-RDB, or the system as an example may not have RFD-RDB and / or HDL-RDB. In the latter case, the system as an example only needs to be directly or indirectly connected to RFD-RDB and / or HDL-RDB via a network or the like.
[0072] Step 1
[0073] The resource information acquisition unit may acquire a plurality of resource information.
[0074] The resource information acquisition unit can acquire resource information directly or indirectly. For example, the resource information acquisition unit can acquire multiple computing nodes, and based on the multiple computing nodes, acquire resource information corresponding to the multiple computing nodes respectively. Alternatively, the resource information acquisition unit can acquire multiple object HDL programs, and based on the multiple HDL programs, acquire corresponding resource information. In these examples, the resource information acquisition unit can acquire resource information using HDL-RDB instead. For example, the resource information acquisition unit can acquire IDs and / or object HDL programs corresponding to computing nodes, and use their keywords to acquire corresponding resource information.
[0075] In addition, the acquisition method can be various. For example, the resource information can be acquired from a storage device in an information processing device equipped with a resource information acquisition unit, or the resource information can be acquired from an information processing device different from the information processing device via a network. In addition, the resource information can also be acquired based on the input of the user.
[0076] Step 2
[0077] The synthesis information generation unit may generate the synthesis information using the plurality of resource information acquired by the acquisition unit. In addition, the synthesis information generation unit may be a function for realizing soft resource merging.
[0078] The synthesized information may include synthesized resource information, or may be synthesized resource information.
[0079] (Judgment function)
[0080] The synthesis information generation unit may have a determination function for determining whether synthesis is possible before generating the synthesis information, or may not have a determination function for determining whether synthesis is possible. In addition, the synthesis information generation unit may determine whether the synthesized resource information performs an action when it is determined that synthesis is possible. For example, the synthesis information generation unit may have a simulation function and a function for determining whether the synthesized resource information actually performs an action. In this case, whether the above-mentioned action is actually performed can be determined by the simulation function. That is, the simulation may be a determination of whether writing to the reconfigurable device is possible. The simulation function may be included in the system of this example or may be outside the system of this example. The synthesis information generation unit may generate the above-mentioned synthesis information only when the determination function and / or the simulation function can be executed, and it is determined that the synthesis of resource information can be performed and / or the synthesized resource information performs an action. It may be that the synthesis information generation unit does not generate the above-mentioned synthesis information when it is able to execute the determination function and / or the simulation function, but it is not determined that synthesis is possible and / or the synthesized resource information performs an action.
[0081] For example, as described later, in soft resource merging, when the pipeline cycle, DSP type and / or computing device type in the resource information are different (for example, when the first resource information and the second resource information are soft-resource merged, the DSP type and / or computing device type in the first resource information are different from the DSP type and / or computing device type in the second resource information), the synthesis information generation unit may determine that synthesis is impossible.
[0082] As an example, an example in which the synthesis information generation unit generates one resource information based on two resource information acquired is described below. That is, an example in which the synthesis information generation unit uses the first resource information and the second resource information to generate the twelfth resource information required to write to the reconfigurable device is described below. The synthesis information generation unit may have the function of generating one resource information based on the two resource information described below, and in addition, may have the function of generating M resource information (M is less than N) based on N resource information.
[0083] In addition, the synthetic information generating unit may also have the function of presenting the information generated in the soft resource merging to the user. For example, it may have the function of displaying the two acquired resource information and / or the synthesized resource information to the user. In this case, there is an advantage that the user can understand the resource information before being synthesized and / or the resource information after being synthesized. In particular, there is the following advantage: in the case where the function of the computing node after synthesis is changed compared with each computing node before synthesis in the soft resource merging, and the information containing the said change is displayed, the user can use the change. For example, in the soft resource merging of different types of storage devices described later, there is an advantage that the user can understand the said change in the case of generating synthetic resource information of a type with a fast memory access speed. In addition, for example, in the soft resource merging of computing nodes with different frequencies described later, there is an advantage that the user can understand the said change when the frequency is reduced.
[0084] Soft resource integration of computing information
[0085] The synthetic information generating unit may generate the attributes related to the computing device in the resource information by summing up the attributes related to the computing device involved in the first resource and the attributes related to the computing device involved in the second resource corresponding to the attributes related to the computing device involved in the first resource.
[0086] For example, when the number of logical blocks in the attributes related to the computing device involved in the first resource is X1, and the number of logical blocks in the attributes related to the computing device involved in the second resource is X2, the number of logical blocks in the attributes related to the computing device in the generated synthetic resource information can be X1+X2.
[0087] As another example, when the number of DSPs (digital signal processors (DSP)) in the attributes related to the computing device involved in the first resource is X1, and the number of DSPs in the attributes related to the computing device involved in the second resource is X2, the number of DSPs in the attributes related to the computing device in the generated synthetic resource information can be X1+X2.
[0088] As described above, regarding the attributes related to the computing devices within the resource information, such as the number of computing devices such as the number of units, the number of logic blocks and / or the number of DSPs, which are independent capabilities related to the computing devices during hard merging, the corresponding attributes in the composite resource information can also be generated by summing up the corresponding attributes in the first resource information and the second resource information.
[0089] On the other hand, regarding the capabilities related to the computing device, such as the type of DSP and / or the type of computing device, which are attributes related to the computing device within the resource information and are required to be identical during hard merging, the corresponding attributes within the first resource information and the second resource information can be soft merged only when they are the same, and the same attributes can be generated as the corresponding attributes in the synthetic resource information.
[0090] In addition, regarding the attributes related to the computing device within the resource information, such as the number of bits of the register and / or the number of bits representing the number of bits of the DSP, the capability related to the computing device of one party can be overwritten by the higher capability of the other party during hard merging. The higher value of the corresponding attributes within the first resource information and the second resource information can also be used to generate the corresponding attributes in the composite resource information.
[0091] On the other hand, as for the capabilities related to the computing device in the resource information, such as the clock frequency number, which should be low capabilities and focus on stability during hard merging, the corresponding attributes in the synthetic resource information can also be generated using the lower numerical value of the corresponding attributes in the first resource information and the second resource information. This is because, especially in the case of computing nodes with different frequencies, it is sometimes impossible to adjust a low-frequency computing node to a high-frequency computing node, but it is possible to adjust a high-frequency computing node to a low-frequency computing node. In addition, when there are multiple frequencies in a computing node, the smallest frequency among the multiple frequencies can be used.
[0092] Alternatively, instead of the above method, a method such as using FIFO to connect modules operating at different frequencies may be used to make the soft-merged and / or hard-merged computing nodes operate at multiple different frequencies. In this case, the synthetic resource information may include multiple frequencies. In addition, the synthetic resource information may include each of the multiple frequencies in association with information indicating the computing process operating at each frequency.
[0093] Soft resource consolidation for storage information
[0094] The synthetic information generating unit may generate the storage device related attributes in the resource information by summing up the storage device related attributes involved in the first resource and the storage device related attributes involved in the second resource corresponding to the storage device related attributes involved in the first resource.
[0095] For example, the synthetic information generation unit may generate the storage device related attributes in the resource information by summing up the storage device related attributes of the first resource and the storage device related attributes of the second resource corresponding to the storage device related attributes of the first resource. For example, when the number of internal memories in the storage device related attributes of the first resource is X1 and the number of internal memories in the storage device related attributes of the second resource is X2, the number of internal memories in the storage device related attributes in the generated synthetic resource information may be X1+X2.
[0096] As another example, for example, when the number of shared channels shared with the external memory in the attributes related to the storage device involved in the first resource is EC1 and the number of dedicated channels dedicated to the external memory is ED1, and the number of shared channels shared with the external memory in the attributes related to the storage device involved in the second resource is EC2 and the number of dedicated channels dedicated to the external memory is ED2, the number of shared channels related to the external memory in the attributes related to the storage device in the generated synthetic resource information can be the larger one of EC1 and EC2 (or 1), and the number of dedicated channels dedicated to the external memory can be ED1+ED2. This is because, in the external memory, the shared channel is a channel that can be used even in the case where access to the memory may also cause a delay (the delay may also be large), and if there is a number of channels of the larger number of EC1 and EC2, it can be handled. In addition, the number of shared channels shared with the external memory may also be greater than the larger one of EC1 and EC2. For example, a specified number of buffers may also be additionally provided. In this case, there is an advantage that the number of channels can be provided with a margin corresponding to the specified number of buffers. On the other hand, since dedicated channels are used when they are sensitive to time delay and do not want to be delayed, it is preferable to prepare each channel separately even after soft combining and set the number of channels to ED1+ED2.
[0097] In addition, regarding the type of storage device as an attribute related to the storage device in the resource information, when the type of storage device in the first resource information is type A and the type of storage device in the second resource information is type B and a soft merge process is attempted, any one of the following three processes can be performed. In addition, which of the following three processes is performed can be determined based on the user's information or can be determined automatically. In addition, in either the decision based on the user's information or the automatic decision, the decision can be based on pre-set information or can be determined to be a dynamically applied process. Here, in the case of different types of storage devices, the speed of memory access can be different or the same. In the case of different memory access speeds, it can be treated as if the types of storage devices are different.
[0098] 1) Soft merging is performed only when type A and type B are the same, and soft merging is not performed when type A and type B are different. When type A and type B are the same and soft merging is performed, the types of corresponding storage devices in the composite resource information can be both A(B).
[0099] 2) Soft merging is performed regardless of whether type A and type B are the same or different. When type A and type B are the same, the type of the corresponding storage device in the composite resource information can be both A(B). When type A and type B are different, the type of the corresponding storage device in the composite resource information can be both type A and type B.
[0100] 3) Soft merging is performed regardless of whether type A and type B are the same or different. When type A and type B are the same, the type of the corresponding storage device in the synthetic resource information can be A(B). When type A and type B are different, the type of the corresponding storage device in the synthetic resource information can be the type with a faster memory access speed among type A and type B. For example, when the types of storage devices include DDR4, DDR5, HBM2, etc., the type of storage device in the synthetic resource information can be HBM2.
[0101] Soft resource integration of communication information
[0102] The synthetic information generating unit can generate the attributes related to the communication device in the synthetic resource information based on the relationship between the first resource and the second resource, when soft-merging the attributes related to the communication device involved in the first resource and the attributes related to the communication device involved in the second resource corresponding to the attributes related to the communication device involved in the first resource.
[0103] Here, in this application document, when the relationship between a first computing node and a second computing node is that all outputs of the first computing node become inputs of the second computing node, it is sometimes referred to as an "output series relationship". In this case, among the inputs of the second computing node, there may be inputs that are not outputs of the first computing node, or there may be no inputs that are not outputs of the first computing node.
[0104] In addition, in this application document, when the relationship between the first computing node and the second computing node is that the output of the first computing node becomes all the inputs of the second computing node, it is sometimes referred to as an "input series relationship". In this case, the output of the first computing node may not become the input of the second computing node, but may become the input of the second computing node.
[0105] In addition, in this application document, when the relationship between a first computing node and a second computing node is such that all outputs of the first computing node become all inputs of the second computing node, it is sometimes referred to as an "input-output serial relationship".
[0106] In addition, in this application document, as a superordinate concept of output series relationship, input series relationship and input-output series relationship, it is sometimes referred to as "series relationship". In the case where the first computing node and the second computing node are in a series relationship, if the first computing node and the second computing node can be hard merged, the input and output information between the first computing node and the second computing node have a connection relationship, so there is an advantage of being able to reduce the overhead related to the input and output.
[0107] Here, the connection relationship between the first computing node and the second computing node may be a relationship in which the output of the first computing node directly becomes the input of the second computing node without being subjected to other calculation processing.
[0108] In addition, in the present application document, the situation where at least a portion of the output of a first computing node is not an input to a second computing node, and / or the situation where at least a portion of the input of a second computing node is not an output of a first computing node is sometimes also referred to as a "parallel relationship."
[0109] In addition, the presence or absence and / or manner of connection relationships such as series relationships and parallel relationships between computing nodes may be prepared in the same manner as resource information. For example, regarding the presence or absence and / or manner of connection relationships, connection relationships prepared and created by a programmer during coding may be stored so that the connection relationships can be utilized. Even if the programmer does not create them during coding, connection relationships may be generated based on a technique such as data flow analysis between target HDL programs so that the connection relationships can be utilized.
[0110] When the first computing node and the second computing node are in an input series relationship or an input-output series relationship, the synthetic information generating unit may set the output information of the second resource information as the output information of the synthetic resource information.
[0111] For example, suppose that the input of computing node 1 is 10 GBPS and the output is 20 GBPS, and the input of computing node 2 is 20 GBPS and the output is 30 GBPS. In this case, the output information of the composite resource information may include 30 GBPS.
[0112] When the first computing node and the second computing node are not in an input series relationship and are not in an input-output series relationship, the synthetic information generating unit may set the output information of the first resource information that is not the input information of the second resource information and the sum of the output information of the second resource information as the output information of the synthetic resource information.
[0113] For example, assuming that the input of computing node 1 is 10 GBPS and the output is 20 GBPS, and the input of computing node 2 is 20 GBPS and the output is 30 GBPS. The output information of the composite resource information may include the output information (10 GBPS) of the first resource information that is not the input information of the second resource information and the output information (30 GBPS) of the second resource information, that is, 40 GBPS.
[0114] When the first computing node and the second computing node are in an output series relationship or an input-output series relationship, the synthetic information generation unit may set the input information of the first resource information as the input information of the synthetic resource information.
[0115] For example, assume that the input of computing node 1 is 10 GBPS and the output is 20 GBPS, and the input of computing node 2 is 20 GBPS and the output is 30 GBPS. In this case, the input information of the composite resource information may include 10 BPS.
[0116] When the first computing node and the second computing node are not in an output series relationship and are not in an input-output series relationship, the synthetic information generating unit may set the sum of the input information of the first resource information and the input information of the second resource information that is not connected to the output information of the first resource information as the input information of the synthetic resource information.
[0117] For example, assuming that the input of computing node 1 is 10 GBPS and the output is 20 GBPS, and the input of computing node 2 is 20 GBPS and the output is 30 GBPS. The input information of the composite resource information may include the input information of the first resource information (10 BPS) and the input information (20 GBPS) of the second resource information that is not connected to the output information of the first resource information (10 GBPS), that is, 20 GBPS.
[0118] In the above example, GBPS is used as an example, but other units may also be used. For example, calculations may be performed in other speed units such as BPS, or in the number of bits corresponding to the frequency in each operation. In particular, when the communication speed required or desired in each computing node as described above (for example, the communication speed in GBPS) is specified by the programmer and provided as information, the number of communication bits can be calculated based on the frequency in each computing node. Therefore, as described above, when the frequency is changed in soft merging, the number of communication bits corresponding to the changed frequency can also be used accordingly (for example, because the number of communication bits can be calculated by dividing the communication speed by the frequency).
[0119] The input information and the output information may each include information on the number of communication bits and / or the communication speed in the input and output.
[0120] Generation of information that can be used for soft merging
[0121] The synthetic information generation unit may have a function of generating information that can be used for soft merging. For example, as information that can be used for soft merging, the synthetic information generation unit may generate an external memory mapping table and / or an external storage device mapping table as information associated with the storage function. In addition, as information that can be used for soft merging, the synthetic information generation unit may generate, for example, information for specifying the number of communication bits and the communication speed as information associated with the communication function. In addition, as information that can be used for soft merging, the synthetic information generation unit may generate, for example, a module having functions such as a FIFO for moving data between modules of different frequencies (sometimes also referred to as a communication module between different frequencies) as information associated with the calculation function.
[0122] Soft merging is performed by compiling multiple target HDL programs. For example, consider here an example of compiling HDL program 1 of computing node 1 and HDL program 2 of computing node 2.
[0123] The programmer can create external memory mapping table 1, external storage device mapping table 1, and external communication information 1 used by HDL program 1 for HDL program 1 of computing node 1. In addition, the programmer can create external memory mapping table 2, external storage device mapping table 2, and external communication information 2 used by HDL program 2 for HDL program 2 of computing node 2.
[0124] In the above example, the synthesis information generating unit may create a synthesized external memory mapping table based on the external memory mapping table 1 and the external memory mapping table 2 .
[0125] For example, when external memory mapping table 1 uses 1 to 100 as the address space and external memory mapping table 2 uses 1 to 100 as the address space, a composite external memory mapping table may be generated that uses 1 to 200. The table example is just an example, and other composite techniques of mapping tables may also be used.
[0126] Similarly, in the above example, the synthetic information generating unit may create a synthetic external storage mapping table based on the external storage mapping table 1 and the external storage mapping table 2.
[0127] Similarly, in the above example, the synthetic information generation unit may generate a synthetic communication information module based on the external communication information 1 and the external communication information 2. The external communication information 1 may include the communication bit width and frequency information when the HDL program 1 communicates with the outside.
[0128] In addition, when the first computing node and the second computing node are in an output series relationship, the synthesis information generation unit may generate an external communication module of output information based on resource information related to the second computing node.
[0129] In addition, when the first computing node and the second computing node are not in an output series relationship, the synthesis information generation unit can generate an external communication module that synthesizes first output information of first resource information related to the first computing node and second output information of second resource information related to the second computing node.
[0130] The external communication module that performs synthesis may be a module that performs output without reducing the delay when the first computing node and the second computing node communicate with the outside independently.
[0131] For example, the external communication module may include a buffer 1 having a bit number that is the sum of the bit number of the external output of HDL program 1 and the bit number of the output of HDL program 2, and capable of storing at least one unit amount of data packets of the external output of HDL program 1, and a buffer 2 capable of storing at least one unit amount of data packets of the external output of HDL program 2, wherein the external communication module is capable of alternately confirming buffer 1 and buffer 2, and is capable of performing an action of outputting to the outside with respect to the buffer that stores at least one unit amount of data packets.
[0132] Here, one unit of a data packet may be, for example, one unit of a data packet in Ethernet communication when a reconfigurable device communicates with another reconfigurable device or an information processing apparatus via Ethernet.
[0133] The above synthesized communication information module, synthesized external memory mapping table, synthesized external storage device mapping table, and / or different frequency communication module can be utilized by a compile function other than the system as an example. For example, the compile function can utilize the HDL program 1 associated with the first computing node, the HDL program 2 associated with the second computing node, the synthesized communication information module, the synthesized external memory mapping table, the synthesized external storage device mapping table, and / or the different frequency communication module to generate a bitstream that implements them.
[0134] Step 3
[0135] The determination unit may determine hardware resources capable of executing a combined computing node when a plurality of computing nodes are combined.
[0136] The determination unit may include a determination unit and a selection unit. The process of determining may include a process of determining and / or a process of selecting. The determination unit may not include a selection unit. For example, the hardware resources set to be executable as described later may also be initially utilized.
[0137] The determination unit may compare the synthetic resource information obtained by soft merging with the resource information in the RFD-RDB to determine whether the hardware resources corresponding to the resource information in the RFD-RDB can execute the computing nodes obtained by hard merging corresponding to the synthetic resource information obtained by soft merging.
[0138] The determination unit may compare at least one attribute in the soft-merged resource information with a corresponding attribute in the soft-merged resource information in a specific hardware resource in the RFD-RDB to determine whether the latter is capable of executing the former.
[0139] Here, if an attribute is information related to a computing device (or information of a subordinate concept thereof), the corresponding attribute may be information related to the computing device (or information of a corresponding subordinate concept thereof). In addition, if an attribute is information related to a storage device (or information of a subordinate concept thereof), the corresponding attribute may be information related to the storage device (or information of a corresponding subordinate concept thereof). If an attribute is information related to a communication device (or information of a subordinate concept thereof), the corresponding attribute may be information related to the communication device (or information of a corresponding subordinate concept thereof).
[0140] Furthermore, the determination unit may compare with one attribute in the soft-merged resource information and determine that the operation is executable if the capability of the attribute corresponding to the one attribute in the hardware resource is high, and determine that the operation is not executable if the capability is low.
[0141] More specifically, for example, if one attribute is the number of logical blocks, the determination unit may determine that the corresponding attribute, the number of logical blocks, is effective when the latter value is higher than the former value.
[0142] Similarly, for example, if an attribute is the number of DSPs, the number of bits of registers, or the number of bits of DSPs, the determination unit may determine that the corresponding attributes, namely the number of DSPs, the number of bits of registers, or the number of bits of DSPs, are valid when the latter values are higher than the former values.
[0143] On the other hand, if one attribute is a clock frequency, the determination unit may determine that the operation is executable when the value of the clock frequency as the corresponding attribute is lower than the value of the former.
[0144] In addition, for example, if an attribute is the number of internal memories, the number of shared channels shared with the external memory, or the number of dedicated channels dedicated to the external memory, the determination unit can determine that the operation is executable if the value of the latter is higher than the value of the former, respectively, for the corresponding attributes: the number of internal memories, the number of shared channels shared with the external memory, or the number of dedicated channels dedicated to the external memory.
[0145] Furthermore, for example, if one attribute and the corresponding attribute are the type of storage device, the determination unit may make the determination based on predetermined information or a dynamically applied process.
[0146] Furthermore, for example, if one attribute is the communication speed or the communication bit number, the determination unit may determine that the communication speed or the communication bit number as the corresponding attribute is effective when the latter value is higher than the former value.
[0147] In addition, the determination unit may compare all attributes within the resource information that has been soft-merged with the corresponding attributes within the resource information that has been soft-merged in a specific hardware resource within the RFD-RDB to determine whether the latter can execute the former for all attributes. If all attributes can be executed, it may be determined that the computing node that has been soft-merged can be executed in a specific hardware resource within the RFD-RDB.
[0148] In addition, the determination unit may compare at least one attribute in the resource information that has been soft-resource-merged with an attribute corresponding to the attribute in a specific hardware resource in the RFD-RDB, and if the latter cannot execute the former, it is determined that the computing node corresponding to the resource information that has been soft-resource-merged cannot be executed by the specific hardware resource. In this case, the determination unit may not compare one or more attributes other than the attribute in the resource information that has been soft-resource-merged.
[0149] <Judgment Section>
[0150] In addition, as an example of a specific process, determination can be performed by, for example, the following process.
[0151] Step 311
[0152] As an example, the system acquires at least one attribute in the resource information that has been soft-merged. Here, as an example, the system can acquire the one attribute by accessing the HDL-RDB.
[0153] Step 312
[0154] As an example, the system obtains corresponding attributes in the soft-merged resource information of a specific hardware resource in the RFD-RDB.
[0155] Step 313
[0156] As an example, the system compares the one resource information with the corresponding attribute to determine whether the latter can execute the former.
[0157] As an example, the system may also make a determination by comparing other attributes in the resource information soft-merged in step 311 with the attributes in the corresponding one hardware resource.
[0158] As an example, the system may also make a judgment by comparing all attributes in the resource information that has been soft-merged in the above-mentioned step 311 with the attributes in the above-mentioned corresponding hardware resource. Only when all attributes in the resource information that has been soft-merged are judged to be executable, it is judged that the corresponding hardware resource is able to execute the synthesized computing node based on the resource information that has been soft-merged.
[0159] As an example, the system may make a determination by comparing resource information about a computing node whose soft resources are merged, which is generated by another information processing device, with resource information about one hardware resource.
[0160] <Selected Department>
[0161] The selection unit may have a function of selecting a hardware resource with high efficiency from executable hardware resources.
[0162] Step 321
[0163] As an example, the system acquires at least one attribute in the resource information that has been soft-merged. Here, as an example, the system can acquire the one attribute by accessing the HDL-RDB.
[0164] Step 322
[0165] As an example, the system obtains corresponding attributes in the soft-merged resource information of a specific hardware resource in the RFD-RDB.
[0166] Step 323
[0167] As an example, the system generates utilization information based on the one resource information and the corresponding attribute.
[0168] In addition, in the above description, a method of distinguishing the processing of the determination unit and the processing of the selection unit and performing them independently is described, but they can also be processed together. For example, as an example, the system can also execute step 323 in step 313 to store the utilization information for the resource information and the corresponding attribute that are compared in association with them.
[0169] The utilization information may be information indicating the relationship between at least one attribute in the soft resource merged resource information and a corresponding attribute in the soft resource merged resource information in a specific hardware resource in the RFD-RDB, or may include information indicating the relationship.
[0170] For example, if one attribute is the number of logical blocks, the utilization information may be information indicating the relationship between the number of logical blocks associated with the one attribute and the number of corresponding logical blocks, or may include information indicating the relationship. For example, if the number of logical blocks associated with the one attribute is 75 and the number of corresponding logical blocks is 100, the utilization information may be 3 / 4 of the ratio obtained by dividing the one attribute by the corresponding attribute as the ratio of the utilization of the hardware resource. Alternatively, the utilization information may be a ratio obtained by subtracting the ratio obtained by dividing the one attribute by the corresponding attribute from 1, in which case it may be 1-3 / 4=1 / 4.
[0171] Similarly, if an attribute is the number of DSPs, the number of register bits, the number of DSP bits, or the clock frequency, the utilization information may be information indicating the relationship between their values and the values of the corresponding attributes, or may include information indicating the relationship.
[0172] Similarly, if an attribute is the number of internal memories, the number of shared channels shared with external memories, or the number of dedicated channels dedicated to external memories, the utilization information may be information representing the relationship between their values and the values of the corresponding attributes, or may include information representing the relationship.
[0173] In addition, the utilization information may be information indicating the relationship between the resource information subjected to the soft resource integration and the resource information in a specific hardware resource in the RFD-RDB, or may include information indicating the relationship.
[0174] In addition, as an example, the system can generate utilization information using information representing each relationship based on each attribute in the resource information that has been soft-merged and the corresponding attributes in the resource information that has been soft-merged in a specific hardware resource in the RFD-RDB. For example, when the number of logic blocks, the number of DSPs, the number of internal memories, and the number of external memory channels exist in the resource information that has been soft-merged, based on the corresponding resource information in the determined hardware resource, when the value of each attribute, i.e., the number of logic blocks is α, the number of DSPs is β, the number of internal memories is γ, and the number of external memory channels is Δ, the utilization information can be a number generated by a calculation formula using a function f(α, β, γ, Δ) (i.e., applying parameters α, β, γ, Δ to function f), or can include the said number. The said calculation formula can also be an operation formula with weight coefficients.
[0175] Step 324
[0176] The selection unit may select a hardware resource with high efficiency from the executable hardware resources based on the utilization information.
[0177] For example, the selection unit may select a specific hardware resource corresponding to a utilization information with a higher efficiency than other utilization information among a plurality of utilization information for a specific hardware resource in each RFD-RDB for which soft resource merging has been performed. The utilization information with high efficiency may also be the utilization information with the highest efficiency. The utilization information with high efficiency may refer to the utilization information with a higher utilization efficiency of the hardware resource than other utilization information, for example, the utilization information may have a higher utilization ratio of the hardware resource than other utilization information, or the utilization information may have a value obtained by subtracting the utilization ratio of the hardware resource from 1 than other utilization information. In addition, in the case where the utilization efficiency of the hardware resource is extremely high (for example, 95% or more), there is also a case where the execution time of the compilation becomes longer or the compilation fails, so the utilization efficiency may not be extremely high. For example, the utilization efficiency may be 30% to 95%, 45% to 90%, 60% to 85%, or 70% to 80%, etc. In addition, the utilization efficiency may be less than 95%, to less than 90%, to less than 85%, or to less than 80%, etc.
[0178] In addition, for example, with respect to specific resource information that has been soft-merged, the utilization information for a certain hardware resource α within the RFD-RDB is αα, the utilization information for a certain hardware resource β within the RFD-RDB is ββ, and the utilization information for a certain hardware resource γ within the RFD-RDB is γγ. When αα among αα, ββ, and γγ is the utilization information representing the highest utilization efficiency, the selection unit can select the hardware resource α.
[0179] As an example, the system may select a hardware resource using utilization information generated by another information processing device based on a relationship between resource information related to a computing node whose soft resources are being merged and resource information related to a hardware resource.
[0180] In addition, the selection unit may make a selection based only on the above-mentioned utilization information, or may make a selection in combination with other element information other than the utilization information. For example, information related to the user and / or information related to the hardware resources used by the user may be used to automatically execute other element information or after receiving a selection instruction from the user. In the case of automatic execution, the selection may be made according to a pre-set priority. In the case of receiving a selection instruction from the user, one or more candidates that the user can select may be displayed to the user, and a candidate may be selected according to the candidate corresponding to the selection instruction from the user.
[0181] In addition, the information related to the user may include information related to the user's membership and / or information related to the user's membership period.
[0182] As an example of using information related to the user's membership period, for example, a system as an example can use the length of the user's membership period to determine hardware resources. For example, when the length of the remaining period of the user's membership period is longer than the prescribed period, the system as an example can allocate a hardware resource for scheduled long-term use. In this case, there is an advantage that the manager of the system as an example can efficiently perform maintenance of hardware resources. In addition, for example, the system as an example can also use the length of the remaining period of the user's membership period and the scheduled schedule for hardware replacement to determine hardware resources. For example, when the length of the remaining period of the user's membership period is longer than the prescribed period, the system as an example may not allocate hardware resources that are less than the prescribed period until the replacement period of the hardware resources. In addition, when the length of the remaining period of the user's membership period is a first prescribed period, the system as an example can determine the hardware resources as objects with a period longer than the first prescribed period until the next replacement period of the hardware resources. In this case, when the user's membership period is not extended, there is an advantage that the maintenance of the hardware resources can be efficiently performed. Furthermore, the information related to the membership period may include the remaining period during which the hardware resources can be used and / or the total period or the duration from the time when the user joins the system as a member, for example.
[0183] In addition, the information related to the user's membership may include information related to the member's course or level. For example, when the user's membership course is a prescribed course, and / or the membership level is a prescribed level, the system as an example may also perform a process of allocating a prescribed hardware resource. The prescribed hardware resource may also be a hardware resource with high stability and firmness compared to other hardware resources. In this case, there is an advantage that the user can use higher quality hardware resources when becoming a specific member or taking a prescribed course. In addition, the information related to the member's course or level may be selected by the user when using the system as an example. For example, it may also be obtained through a contract with the purpose of using a certain degree of resource information.
[0184] In addition, information related to the hardware resources used by the user may include one or more hardware resources used when the user makes the above selection. For example, in a system as an example, among the actual hardware resources consistent with the resource information selected by the user, the system may include 1) hardware resources in the same FPGA as the FPGA including the one or more hardware resources currently used by the user, 2) hardware resources in the same local area network or bus as the one or more hardware resources currently used by the user, and / or 3) hardware resources that are close to the one or more hardware resources currently used by the user.
[0185] In the above-mentioned case 1), since they are within the same FPGA, the user can use the hardware resources within the same FPGA as hardware resources utilized in the same or related applications, thereby having the advantage of being able to assist in providing hardware resources for more efficient communications.
[0186] In the case of 2) above, in the same LAN or bus of the former, there is also the advantage of being able to assist in providing hardware resources for more efficient communication because they are within the same network or bus. In addition, the identity of the LAN or bus can be at any level as long as it can reduce the processing for cross-network communication.
[0187] In addition, the above 2) may also be a virtual local area network. In this case, although the physical distance is not necessarily closer than the prescribed distance, and the distance related to information communication is not necessarily shorter than the prescribed distance, it has the advantage of high security.
[0188] In addition, in the case of 3) above, the distance may be the above-mentioned physical distance or the distance related to the communication of information. By selecting a hardware resource that is short in distance from one or more hardware resources currently used by the user among the actual hardware resources that are consistent with the resource information selected by the user, there is an advantage of being able to assist in providing a hardware resource that achieves more efficient communication than other hardware resources.
[0189] In addition, the selection unit can use the utilization information used as the above-mentioned selection conditions, information related to the user and / or information related to the hardware resources used by the user, etc., to perform the selection automatically or after receiving the user's selection instruction. In the case of automatic selection, a pre-set selection benchmark can be used for selection. In the case of receiving the user's selection instruction, one or more candidates that the user can select can be displayed to the user, and the candidate can be selected according to the candidate corresponding to the user's selection instruction. In the case of receiving the user's selection instruction, the system as an example can present information about the hardware resources that become the selected object to the user. For example, information about hardware resources can be displayed on a display device outside the system as an example that is part of the system as an example or connected to the system as an example. Here, the information about hardware resources can include resource information about hardware resources, utilization information, information related to the user and / or information related to hardware resources used by the user. It has the following advantages: by displaying this information, the user can understand the information about the hardware resources to be selected and make a selection.
[0190] Step 4
[0191] As an example, the system may compile or cause the plurality of computing nodes to be synthesized to generate a bitstream in such a manner that the bitstream can be written to the selected hardware resource together with the information used in the soft merge.
[0192] Step 5
[0193] As an example, the system may write a compiled bitstream to the identified hardware resources.
[0194] Step 6
[0195] When writing is successful, the system may, for example, register the successfully written resource information in the database.
[0196] In addition, as an example, the system can feed back information about the successfully written resource information to the user. The feedback to the user can be in various ways. For example, the information about the successfully written resource information can be displayed on a display device, sent to the user by email, or stored in a user's specified location that the user can access.
[0197] The synthetic resource information obtained by combining the soft resources can be used to determine a reconfigurable device as an example. The reconfigurable device has the advantage that it is possible to perform processing with reduced overhead between computing nodes.
[0198] As an example, a reconfigurable device can be written into a computing node using synthetic resource information obtained by merging soft resources. The reconfigurable device has the advantage that it is possible to perform processing with reduced overhead between computing nodes.
[0199] As an example, a reconfigurable device can be determined using synthetic resource information obtained by merging soft resources, and written into a computing node using the synthetic resource information obtained by merging soft resources. The reconfigurable device has the advantage that it is possible to perform processing with reduced overhead between computing nodes.
[0200] 3. Implementation Method 2
[0201] The system of this example involved in the second embodiment is a technology for determining objects to be soft-merged corresponding to M (M is a natural number less than N) computing nodes based on N (N is a natural number) computing nodes greater than 2 or the object HDL programs corresponding to these computing nodes. Some or all of the computing nodes to be soft-merged can be automatically determined.
[0202] When there are a large number of computing nodes, users may not know which computing node to synthesize. In particular, if multiple (a large number of) computing nodes can be synthesized and written into one hardware resource, the overhead between these large number of computing nodes may be reduced. On the other hand, if there is no input-output relationship or little input-output relationship between the multiple (a large number of) computing nodes written into one hardware resource, the overhead may not be effectively reduced. In addition, even if multiple (a large number of) computing nodes are to be soft-merged, there may be a situation where there are actually no hardware resources that are sufficient to compile and write the object HDL program to be soft-merged (for example, the hardware resources used to write the synthesized computing nodes exceed the resource amount of a reconfigurable device, etc.). Therefore, the inventors of the present application focus on the issue of how to select the computing nodes to be soft-merged.
[0203] Next, an example of a technique for selecting a compute node to be soft-merged with a compute node group including a plurality of compute nodes (a set of compute nodes including one or more compute nodes may be referred to as a compute node group) as a target will be described.
[0204] Next, use Figure 7 An example of processing operation in a system is described below.
[0205] Step 211
[0206] For computing node group A, the input and output data flows between some or all computing nodes included in computing node group A are parsed, and the length of each data flow column between some or all computing nodes included in computing node group A is calculated (step 701). The length of the data flow column can be calculated for some or all of the set of data flow columns of computing node group A. The length of the data flow column can be the number of computing nodes included in the data flow column. The length of the data flow column can be the number of computing nodes of the longest non-cyclic data flow column included in the data flow column.
[0207] Figure 6The data flow column of computing nodes and the input-output paths between computing nodes is shown. There are computing nodes 601 to 607, and the direction of the arrows between the computing nodes represents the input-output relationship from one computing node to other computing nodes. For example, the arrow from computing node 601 to computing node 603 represents that the output of computing node 601 enters computing node 603. Computing node 603 receives the arrows from computing nodes 601 and 602, so the output of computing node 601 and the output of computing node 602 become the input of computing node 603. In addition, since the arrow from computing node 604 is toward computing nodes 605 and 607, the output of computing node 604 becomes the input of computing node 605 and the input of computing node 607. In this figure, the number of computing nodes included in the data flow column 610A composed of computing nodes 601, 603 to 606 is 5, and the number of input-output paths between computing nodes is 4. In addition, the number of computing nodes included in the data stream sequence 610B composed of computing nodes 602, 603, 604 and 607 is 4, and the number of input-output paths between the computing nodes is 3. The length of the data stream sequence can be the number of computing nodes included in the above data stream sequence, or the number of input-output paths included in the data stream sequence. Like this, for example, in the case where a data stream sequence is composed of computing nodes N1, N2, N3, N4, N5 in this order, the length of the calculated data stream sequence can be the length of data stream sequences such as N1-N2-N3-N4-N5, N1-N2-N3-N4, N2-N3-N4-N5, N1-N2-N3, N3-N4-N5, N2-N3-N4, etc. However, the arrangement order of the data stream sequence may not be skipped (for example, the case where there is no intermediate computing node such as N1-N2-N4-N5 may not be set as an object. The reason is that in the computing process, computing node N3 is required between N2 and N4).
[0208] Step 212
[0209] In computing node group A, a second data stream sequence having a length longer than that of the first data stream sequence is determined (step 701).
[0210] For example, in this figure, data stream sequence 610A is longer than data stream sequence 610B, so data stream sequence 610A is determined. Here, as an example, the system can also find the data stream with the longest length in the computing node group A.
[0211] Step 213
[0212] As an example, the system may determine the computing nodes included in the second data flow sequence as objects to be merged (step 701).
[0213] As such, in the case where a system performs soft merging of a group of compute nodes with a long data stream sequence as an example, there is the following technical advantage: the overhead (overhead of communication between reconfigurable devices or PR regions) generated by input and output between multiple compute nodes (compute nodes that write to different reconfigurable devices or become sub-PR regions) can be reduced.
[0214] The above processing is an example. As an example, the system can automatically determine part or all of the computing node groups that are the objects of soft merging in the computing node group through various different technologies. As an example, the system can automatically determine part or all of the computing node groups that are the objects of soft merging by using the length of the data flow sequence in the computing node group through various technologies. As an example, the system can automatically determine part or all of the computing node groups that are the objects of soft merging by using the fact that the length of the data flow sequence A in the computing node group is longer than the length of the data flow sequence B in the computing node group through various technologies.
[0215] As an example, a system may include the following components: a determination unit, which determines, for a computing node group A consisting of a plurality of computing nodes, a first length of an input-output path of a first computing node group within the computing node group A and a second length of an input-output path of a second computing node group within the computing node group A; and a decision unit, which determines the first computing node group or the second computing node group as an object to be merged based on the first length and the second length.
[0216] In addition, in the present application document, determining multiple computing nodes as objects for merging may include: determining the multiple computing nodes as objects for soft resource merging; determining the multiple computing nodes as objects for soft merging; and / or determining the multiple computing nodes as objects for hard merging.
[0217] In addition, a computation node can be a higher-level concept of one or more target HDL programs.
[0218] The length of the input-output path of the computing node group may be the length of the input-output path of the maximum number of computing nodes on the input-output path without a cycle between the computing nodes in the computing node group.
[0219] The length of the input / output path of the computing node group may be the longest input / output path without loops among the input / output paths based on input / output analysis (data flow analysis) between the computing nodes of the computing node group.
[0220] In addition, regarding the length of the input and output path of the computing node group, if graph theory is used, it can correspond to the maximum number of vertices in the path of the directed graph (passing through each vertex at most once) when each computing node in the computing node group corresponds to a vertex of the directed graph and the input and output relationship between the computing nodes corresponds to the edge of the directed graph.
[0221] In the following example, a description is given of a compute node group that becomes a target of hard merge after the system calculates resource information on a part or all of the data flow sequences in the compute node group as an example.
[0222] In addition, as an example, the system may use information on the bandwidth between the computing nodes in addition to the length of the data stream sequence to determine the computing node group that is the target of the soft merge.
[0223] This is based on the following point: for example, when computing nodes 1 and 2 are soft-merged when the bandwidth of computing nodes 1 and 2 is 1 GBPS, and when computing nodes 1 and 2 are soft-merged when the bandwidth of computing nodes 1 and 2 is 100 GBPS, the latter has the advantage of being able to further reduce the communication overhead between computing nodes compared to the former. In this case, from a different point of view from the length of the above-mentioned data stream sequence, there is an advantage of being able to reduce the communication overhead.
[0224] Next, use Figure 8 An example of processing operations in the system will be described as an example.
[0225] Step 221
[0226] For computing node group A, the input and output data flows between some or all computing nodes included in computing node group A are analyzed, and the frequency band between computing nodes in each data flow column is used as a weight to calculate the total of the data flow column (step 801). The data flow column can be the same as the data flow column described in step 211 above.
[0227] Fig. 9 The diagram shows the computing nodes, the data flow sequence based on the input and output paths between the computing nodes, and the frequency bands between the computing nodes. The difference between this diagram and the previous diagram is that the frequency band information is added to the arrows between the computing nodes. They can be represented as a weighted directed graph in the case of a graph showing the data flow sequence.
[0228] Step 222
[0229] Within computing node group A, a second data stream column having a weighted sum greater than the weighted sum of first data stream column A is determined (step 802).
[0230] For example, in this figure, the weighted sum of data stream column 610A, 31, is greater than the weighted sum of data stream column 610B, 29, so data stream column 610A is determined. Here, as an example, the system can find the data stream with the largest weighted sum of data stream columns in computing node group A.
[0231] Step 223
[0232] As an example, the system may determine the computing nodes included in the second data flow sequence as objects to be merged (step 803).
[0233] As such, in the case where a system soft-merges a weighted and large group of compute nodes of a data stream column as an example, it has the following technical advantage: it is able to reduce the overhead (the overhead of communication between reconfigurable devices or PR regions) generated by input and output between multiple compute nodes (compute nodes that write to different reconfigurable devices or become sub-PR regions).
[0234] As an example, a system may include a selection unit that selects a computing node group that includes the first computing node and the second computing node as a subset of the first computing node group from a first computing node group consisting of a plurality of computing nodes including the first computing node and the second computing node, using information related to input and output paths between computing nodes in the computing node group.
[0235] The information related to the input-output paths between the computing nodes in the computing node group may include the length of the input-output paths between the computing nodes in the computing node group, the weight of the input-output paths between the computing nodes in the computing node group, and / or the weighted sum of the input-output paths between the computing nodes in the computing node group.
[0236] In addition, the following example relates to a technique for selecting a computing node to be soft-merged based on a hardware resource perspective. That is, in order to write a computing node to be soft-merged to a hardware resource, it is necessary to be able to execute the computing node to be soft-merged in the hardware resource. Here, from a hardware resource perspective, it is preferred to determine the computing node to be soft-merged in a manner that is located within resource information corresponding to a hardware resource unit.
[0237] Next, use Fig.10 An example of processing operations in the system will be described as an example.
[0238] Step 231
[0239] As an example, the system analyzes the input and output data flows of the computing nodes in computing node group A (step 1001).
[0240] Step 232
[0241] As an example, the system stores resource information after soft merging of computing nodes used in each data stream in a manner associated with the length of each data stream in computing node group A (step 1002). For example, the following example: when a data stream column is composed of computing nodes N1, N2, N3, N4, and N5 in this order, information for determining each data stream column such as N1-N2-N3-N4-N5, N1-N2-N3-N4, N2-N3-N4-N5, N1-N2-N3, N3-N4-N5, N2-N3-N4, etc., the length of the corresponding data stream column, and synthetic resource information about the corresponding data stream column when soft resource merging is performed are stored in association. In addition, the length of the corresponding data stream column may not be present. This is because if there is synthetic resource information, information for determining the required hardware resources corresponding to each data stream column will be known. In addition, a database that is associated with a part or all of the set of data flow columns and stores the synthetic resource information corresponding to them is sometimes called a data flow column resource database (DFL-RDB).
[0242] Fig.11 yes Figure 6 604, 607. The data stream columns 610A and 610B can also consider other sets of computing nodes in the computing node group (based on the structure of the data stream columns). For example, ID 2 is a data stream column composed of computing nodes 601, 603 to 605, and ID 3 is a data stream column composed of computing nodes 603 to 606. The synthetic resource information can be stored in the DFL-RDB in association with these data stream columns.
[0243] Step 233
[0244] As an example, the system may use each synthetic resource information in the DFL-RDB and each resource information in the RFD-RDB to determine a computing node as a target for merging (step 1003).
[0245] For example, as an example, the system can determine the computing nodes involved in the data flow column about one of the synthetic resource information in the DFL-RDB that can be executed using the resource information about a hardware resource in the RFD-RDB. In this case, there is the following advantage: the computing nodes of the data flow column that can be executed by a hardware resource in the RFD-RDB can be determined, thereby reducing the overhead between the input and output data in the computing nodes in the data flow column. In this case, the above-mentioned executable computing nodes can be determined by a computing process that compares the resource information about a hardware resource in the RFD-RDB with each combination of one of the synthetic resource information in the DFL-RDB.
[0246] In particular, as an example, the system can determine the computing nodes involved in the data flow column of one of the synthetic resource information in the DFL-RDB that can be executed by one of the reconfigurable devices in the hardware resources in the RFD-RDB. In this case, since the reconfigurable device can be used as a hardware resource, there is an advantage that the hardware resources in the reconfigurable device can be used more efficiently.
[0247] In addition, as an example, the system can determine the computation nodes involved in the data flow column of one of the synthetic resource information in the DFL-RDB that can be executed by a unique PR region in one of the reconfigurable devices in the hardware resources in the RFD-RDB. In this case, since multiple PR regions are not set in the reconfigurable device, there is an advantage that the processing overhead for multiple PR regions can be reduced and the hardware resources can be used more efficiently.
[0248] As an example, a reconfigurable device can be written with a bitstream associated with a computing node determined using information associated with an input / output path between computing nodes. The reconfigurable device has the advantage that it is possible to perform processing with reduced overhead between computing nodes.
[0249] As an example, a reconfigurable device can be written with a bitstream related to the determined computing node using resource information of the reconfigurable device or resource information of a PR region in the reconfigurable device. The reconfigurable device has the advantage of being able to perform processing with reduced overhead between computing nodes.
[0250] As an example, a reconfigurable device can write bitstreams of multiple computing nodes corresponding to synthetic resource information obtained by merging soft resources into a unique PR region in the reconfigurable device. The reconfigurable device has the advantage of being able to perform processing with reduced overhead between computing nodes.
[0251] As an example, a reconfigurable device can be written with a bitstream based on a plurality of computing nodes determined using a DFL-RDB. The reconfigurable device has the advantage that it is possible to perform processing with reduced overhead between computing nodes.
[0252] 4. Implementation Method 3
[0253] The system of this example according to Embodiment 3 is a technique for assisting in changing N computing nodes (two or more) to M computing nodes (N and M are natural numbers, M is smaller than N). Some or all of the computing nodes to be soft-merged can be automatically determined.
[0254] The system involved in this example provides a method different from the implementation method 2 of selecting computing nodes to be soft-merged. In the case where multiple computing nodes can be soft-merged and written to one hardware resource, although there is a conceptual possibility that the overhead between the multiple computing nodes can be reduced, it is unclear to what extent the overhead can be reduced in practice. Therefore, the inventors of the present application propose the following technology for selecting computing nodes to be synthesized by focusing on information on the degree of communication volume actually generated between the multiple computing nodes.
[0255] As an example, the system may include a monitoring unit.
[0256] As an example, the monitoring unit of the system may monitor each reconfigurable device based on information from the task manager written to each reconfigurable device.
[0257] The task manager written into each reconfigurable device can collect information related to communication with the reconfigurable device written into the task manager, and notify the monitoring unit.
[0258] As an example, the monitoring unit of the system can obtain information related to the communication of the reconfigurable devices written into each task manager from the task manager written into one or more reconfigurable devices. The information related to communication can be an operation unit in the reconfigurable device, and the information related to communication can be associated with information (such as ID) representing the operation unit. For example, in the case where there is no PR area in a reconfigurable device, a reconfigurable device can be set as an operation unit, and the information used to determine the reconfigurable device can be associated with the information related to communication, and the monitoring unit can obtain the information from the task manager and store it. In addition, for example, in the case where one or more PR areas are included in a reconfigurable device, each PR area in the one or more PR areas can be set as an operation unit, and the information used to determine the one or more PR areas can be associated with the corresponding information related to communication, and the monitoring unit can obtain the information from the task manager and store it.
[0259] For example, the task manager may correspond to an EM (Element Manager) in NFV (Network Functions Virtualization).
[0260] The task manager may continuously or periodically obtain information related to communications within each reconfigurable device.
[0261] The information related to communication may include the number of communication bits, the number of communications, the amount of communication, the frequency of communication, the ratio of communication, the cost of communication, the number of communication bits per prescribed unit, the number of communications per prescribed unit, the amount of communication per prescribed unit, the frequency of communication per prescribed unit, the ratio of communication per prescribed unit, the cost of communication per prescribed unit, and / or statistical information based on part or all of them (sometimes referred to as "communication information"). In addition, the information related to communication may also include the communication in the communication information by dividing it into communication source information and communication destination information. The information related to communication may include the communication information, the communication source information of the communication in the communication information, and the communication destination information of the communication in the communication information in association with each other. The prescribed unit may be a prescribed time unit and / or a prescribed event unit, etc. The statistical information may include information obtained by using the total value, maximum value, minimum value, median value, most frequent value, midpoint value, representative value, various average values, and appropriately applying one or more weighted calculations and / or threshold calculations of each information.
[0262] The task manager may send communication-related information to the monitoring unit at a specified timing. The sending timing may be periodic or a timing that satisfies a specified condition. The specified condition may include a situation where the communication-related information exceeds a specified threshold. For example, it may be a situation where the number of communication bits, the number of communications, the communication volume, the communication frequency, the communication ratio, the communication cost, the number of communication bits per specified unit, the number of communications per specified unit, the communication volume per specified unit, the communication frequency per specified unit, the communication ratio per specified unit, the communication cost per specified unit, and / or statistical information based on part or all of them exceeds a specified threshold.
[0263] Fig.12 This is an example of a public monitoring unit and a task manager stored in one or more reconfigurable devices. In this figure, as an example, the monitoring unit 010 in the system 001 can obtain information related to communication from the task manager 011A in the reconfigurable device 002, and obtain information related to communication from the task manager 011B in the reconfigurable device 003. The task manager 011A can obtain information related to communication about PR regions 1 to 6. The task manager 011B can obtain information related to communication about PR regions 1 to 4.
[0264] Next, use Fig.13 An example of a monitoring unit using a system as an example is described below. First, it is assumed that each computing node in computing node group A is written into a reconfigurable device and is set to a state in which computing can be performed. Here, a part or all of each computing node may not be soft-merged. In addition, a part of each computing node may be soft-merged. The latter considers the case where a computing node that becomes the object of soft-merging again is selected after a part of the computing nodes are soft-merged.
[0265] Step 311
[0266] Each task manager in one or more reconfigurable devices directly or indirectly transmits information related to communication of one or more computing units in the reconfigurable device in which each task manager is installed to a monitoring unit of a system as an example (step 1301).
[0267] Step 312
[0268] As an example, the monitoring unit of the system can obtain information related to communication and perform statistical processing. The monitoring unit can use the information related to communication obtained from the task manager to generate statistical information (step 1302). The statistical information can include information obtained by using the total value, maximum value, minimum value, median value, most frequent value, midpoint value, representative value, various average values, and appropriately applying one or more weighted calculations and / or threshold calculations of each information.
[0269] Step 313
[0270] As an example, the system may use information related to communication between computing nodes to determine computing nodes as targets for merging (step 1303).
[0271] For example, when information related to communication between a first computing node and a second computing node is higher than a specified threshold, the system may, as an example, process the first computing node and the second computing node as computing nodes that are objects of soft resource merging, as computing nodes that are objects of soft merging, and / or as computing nodes that are objects of hard merging.
[0272] In addition, as an example, the system may also include a database (in this application document, the database is sometimes referred to as a measured information database (MI-DB)) that stores information for determining each data flow column such as N1-N2-N3-N4-N5, N1-N2-N3-N4, N2-N3-N4-N5, N1-N2-N3, N3-N4-N5, N2-N3-N4, etc., and information based on information related to communication between computing nodes along the corresponding data flow column in association with each other when a data flow column is composed of computing nodes N1, N2, N3, N4, and N5 in this order. In addition, here, the information related to communication between computing nodes along a data flow column may be information related to communication corresponding to a data flow column that is calculated using information related to communication between each two computing nodes along a data flow column. For example, when a data stream sequence is a data stream sequence in the order of N1, N2, and N3, the total information of the information related to the communication of the data stream sequence may be obtained by summing up the information related to the communication of N1 and N2 and the information related to the communication of N2 and N3. In addition, the information is not limited to the above sum, and the information related to the communication of N1 and N2 and the information related to the communication of N2 and N3 may be replaced by the above sum and obtained by statistically processing the information related to the communication of N1 and N2 and the information related to the communication of N2 and N3.
[0273] As an example, a system may include the following components: a monitoring unit that obtains communication-related information from one or more reconfigurable devices; and a processing unit that uses the communication-related information to perform soft resource merging, soft merging and / or hard merging of multiple computing nodes regarding the communication-related information.
[0274] The communication-related information may be, for example, information related to communication between a first PR region in a first reconfigurable device and a second PR region in the first reconfigurable device that is different from the first PR region. In this case, there is an advantage that information between different PR regions in the same reconfigurable device can be used.
[0275] The information related to communication may be, for example, information related to communication between a first PR region in a first reconfigurable device and a second PR region in a second reconfigurable device different from the first reconfigurable device. In this case, there is an advantage of being able to utilize information between different PR regions in different reconfigurable devices.
[0276] The information related to communication may be information sent by a task manager written into the one or more reconfigurable devices. The task manager may be written into the reconfigurable device and has a function of sending and / or receiving communications with an information processing device outside the reconfigurable device. In addition, the task manager may have a function of acquiring information related to communication between one or more PR regions written into the reconfigurable device into which the task manager is written and an information processing device outside the reconfigurable device.
[0277] As described above, the system as an example uses information related to communication to determine the object to be soft merged, so there is an advantage that it is possible to reduce the overhead in accordance with the actual situation of communication. In particular, when information actually written to the reconfigurable device and executed as the target HDL program is used as information related to communication, there is an advantage that the object to be hard merged can be determined based on the actual information. In addition, the information related to communication can be obtained by simulation, and in this case, there is an advantage that it is possible to reduce the overhead within the range of the information obtained by simulation.
[0278] As an example, a reconfigurable device can be written with a bitstream based on a plurality of computing nodes determined based on information related to communication obtained by a monitoring unit. The reconfigurable device has the advantage that it is possible to perform processing with reduced overhead between computing nodes.
[0279] As an example, a reconfigurable device may be written with a bitstream based on a plurality of computing nodes determined using MI-RDB. The reconfigurable device has the advantage that it is possible to perform processing with reduced overhead between computing nodes.
[0280] 5. Implementation Method 4
[0281] The system of this example according to Embodiment 4 is a technique for assisting in changing N computing nodes (two or more) to M computing nodes (N and M are natural numbers, M is smaller than N). Some or all of the computing nodes to be soft-merged can be automatically determined.
[0282] As an example, the system may include a part or all of the functions of the system involved in the second embodiment and a part or all of the functions of the system involved in the third embodiment.
[0283] For example, part or all of the DFL-RDB in the system involved in Implementation Example 2 and part or all of the MI-DB in the system involved in Implementation Example 3 may be stored in a manner that corresponds to corresponding data flow columns (in this application document, the database is sometimes referred to as a measured information database (Measured Information Resource Database, MI-RDB). Using synthetic resource information about a data flow column in the case of soft merging of computing nodes constituting the data flow column and information related to communication between the computing nodes, part or all of the computing nodes constituting the data flow column are determined as objects of merging.
[0284] As a specific example of MI-RDB, when a data stream column is composed of computing nodes N1, N2, N3, N4, and N5 in this order, it may be a database that stores information for determining each data stream column such as N1-N2-N3-N4-N5, N1-N2-N3-N4, N2-N3-N4-N5, N1-N2-N3, N3-N4-N5, N2-N3-N4, etc., synthetic resource information when soft merging is performed on the computing nodes constituting the corresponding data stream column, and information based on information related to communication between computing nodes along the corresponding data stream column in association. For example, Fig.14 This is an example of the MI-RDB described above.
[0285] As an example of using the MI-RDB, the system in this example can determine one or more data flow columns that can be written to a hardware resource based on a comparison between the one hardware resource and the synthetic resource information in the MI-RDB, and use information related to communication about the one or more data flow columns to determine the computing node as the object of merging.
[0286] As an example, a reconfigurable device may be written with a bitstream based on a plurality of computing nodes determined using MI-RDB. The reconfigurable device has the advantage that it is possible to perform processing with reduced overhead between computing nodes.
[0287] 6. Implementation Method 5
[0288] The system of this example according to Embodiment 5 is a technique for assisting in changing N computing nodes (two or more) to M computing nodes (N and M are natural numbers, M is smaller than N). The system as an example includes a partially manual part.
[0289] As an example, the system may be a technology that provides information related to the selection of soft merge to the user.
[0290] use Fig.11 To explain the background related to the system as an example. In this figure, a data stream column 100A composed of computing nodes 112A, 113A, and 114A and a data stream column 100B composed of computing nodes 112B, 113B, 114B, and 115B are disclosed. Here, consider the case where the data stream column 100A is hard-merged and the data stream column 100B is not hard-merged. If there is an output from the data stream column 100A but no output from the data stream column 100B, the computing node 116 cannot perform the calculation processing, so that the computing node 116 waits for the output of the data stream column 100B, then there is the following situation: even if only the data stream column 100A is hard-merged, the possibility of reducing the overhead will also be reduced. In this case, when the data stream column 100A is hard-merged but the data stream column 100B is not hard-merged, the significance of hard-merging the data stream column 100A is sometimes low.
[0291] For example, as an example, the system may perform data flow analysis on the computing node group, display the data flow list on the display device, and graphically illustrate the computing node candidates to be soft-merged. Fig.15This is an example of a portion of a display screen displayed to a user by an example system. In this case, there is an advantage that a user browsing the display device can understand the position of the computation nodes to be soft-merged in the entire data stream sequence, for example, can understand that only the computation nodes of one data stream sequence in the data stream sequence to be parallel calculated are soft-merged, and whether there is a data stream sequence that is not soft-merged in the parallel calculation.
[0292] In addition, or alternatively, the system as an example may also display information generated in the soft resource merging on the display device in a manner that the user can understand. For example, the system as an example may display resource information related to the computing nodes to be soft resource merged and / or the synthesized resource information when the soft resource merging is performed on the display device. In this case, the user can understand the resource information before and after the soft resource merging is performed.
[0293] In addition, as an example, the system can also display the resource information related to the computing nodes to be merged with soft resources and the synthetic resource information when the soft resources are merged in a comparative manner on the display device. The information to be compared can be resource information or corresponding information about an attribute of the resource information. In this case, it is easy for the user to understand the resource information about the corresponding attributes before and after the soft resource merger. For example, when the number of logical blocks of the resource information related to the two computing nodes to be merged with soft resources is A1 and A2 respectively, and the number of blocks of the synthetic resource information when the soft resources are merged is A3, A3 can be displayed on the display device in a comparative manner with A1 and A2. In addition, for example, when the frequencies of the resource information related to the two computing nodes to be merged with soft resources are B1 and B2 respectively, and the frequency of the synthetic resource information when the soft resources are merged is B3, B3 can be displayed on the display device in a comparative manner with B1 and B2. In this case, when frequency B2 is greater than frequency B1, when information with a smaller frequency is used as synthetic resource information, B3 can be the same as B1, and frequency B3, which is smaller than frequency B2, can be highlighted on the display device. In this way, when the function of the hardware after soft resource merging is reduced compared to before soft resource merging, the reduced portion can be highlighted. In this case, there is an advantage that the user can easily understand that the function is reduced due to soft merging.
[0294] Furthermore, the above description describes a case where the application is to a low frequency, but the present invention is not limited to the above case, and the synthesized resource information when soft resource merging is performed may include a plurality of different frequencies.
[0295] In addition, as an example, the system can also display the resource information related to the computing node to be soft-merged or hard-merged and the resource information of the corresponding hardware resources scheduled to be written in a comparative manner on the display device. The compared information can be the resource information or the corresponding information about an attribute of the resource information. For example, when the number of internal memories of the resource information related to the computing node to be soft-merged or hard-merged is A1 and the resource information of the corresponding hardware resources scheduled to be written is A2, A1 and A2 can be displayed on the display device in a comparative manner.
[0296] In addition, as an example, the system may also display the resource information related to the computing node to be soft-merged or hard-merged and the resource information of one or more hardware resources as candidates to be written in a comparative manner on the display device. The compared information may be the resource information or the corresponding information about an attribute of the resource information. In addition, in the case described, as an example, the system may also display the information indicating the relationship between the resource information related to the computing node to be soft-merged or hard-merged and the resource information of one or more hardware resources as candidates to be written, such as the utilization information, on the display device. For example, when the number of bits of the register of the resource information related to the computing node to be soft-merged or hard-merged is A1, the number of bits of the register in the resource information of a candidate hardware resource to be written is A2, the number of bits of the register in the resource information of another candidate hardware resource to be written is A3, and the number of bits of the register in the resource information of another candidate hardware resource to be written is A4, the utilization information based on A1 and A2, the utilization information based on A1 and A3, and / or the utilization information based on A1 and A4 may be displayed on the display device. In this case, there is an advantage that the user can understand the relationship between the candidates for a plurality of hardware resources when they are written.
[0297] As an example, the system may display, on a display device, information on a part or all of the processes determined as targets for merging.
[0298] As an example, the system may display information generated during soft resource merging on a display device.
[0299] 7. Implementation Method 6
[0300] The system of this example specifies the timing of soft resource merging, soft merging and / or hard merging.
[0301] The system as an example may be installed together with any one of the above-mentioned Embodiments 1 to 5, or may be installed independently without installing the above-mentioned Embodiments 1 to 5.
[0302] In addition, the system as an example may include the monitoring unit described in Embodiment 3. In this case, the monitoring unit may acquire information related to communication involving one or more reconfigurable devices.
[0303] Step 611
[0304] As an example, the system determines whether a predetermined condition is satisfied.
[0305] Step 612
[0306] As an example, the system merges soft resources of a plurality of computing nodes that satisfy predetermined conditions.
[0307] Step 621
[0308] As an example, the system determines whether a predetermined condition is satisfied.
[0309] Step 622
[0310] As an example, the system performs soft merging on a plurality of computing nodes that satisfy a predetermined condition.
[0311] Step 631
[0312] As an example, the system determines whether a predetermined condition is satisfied.
[0313] Step 632
[0314] As an example, the system performs hard merging on a plurality of computing nodes that satisfy a predetermined condition.
[0315] The predetermined condition may be a condition using the above-mentioned information related to communication. For example, the predetermined condition may be a case where the information related to communication exceeds a predetermined corresponding threshold.
[0316] In addition, the prescribed condition may also use the usage fee of the reconfigurable device based on the information related to communication. For example, in the case where the system as an example has a function of estimating the usage fee based on the information related to communication of the reconfigurable device, the prescribed condition may be satisfied when the usage fee exceeds a prescribed threshold.
[0317] As an example, a system may be a system comprising the following components: a monitoring unit, which acquires communication-related information from one or more reconfigurable devices; a determination unit, which determines whether the communication-related information satisfies or does not satisfy a prescribed condition; and a processing unit, which performs soft resource merging, soft merging and / or hard merging on a plurality of computing nodes regarding the communication-related information in accordance with a result of the determination.
[0318] The communication-related information used to determine whether the specified condition is satisfied may be, for example, information related to communication between a first PR region in a first reconfigurable device and a second PR region different from the first PR region in the first reconfigurable device. In this case, there is an advantage of being able to use information between different PR regions in the same reconfigurable device.
[0319] The communication-related information used to determine whether the specified condition is satisfied may be, for example, information related to communication between a first PR region in a first reconfigurable device and a second PR region in a second reconfigurable device different from the first reconfigurable device. In this case, there is an advantage of being able to use information between different PR regions in different reconfigurable devices.
[0320] The information related to communication may be sent by a task manager written into the one or more reconfigurable devices. The task manager may be written into the reconfigurable device and has a function of sending and / or receiving communications with an information processing device outside the reconfigurable device. In addition, the task manager may have a function of acquiring information related to communication between one or more PR regions written into the reconfigurable device into which the task manager is written and an information processing device outside the reconfigurable device.
[0321] For example, when information related to communication between a first computing node and a second computing node is higher than a specified threshold, the system may, as an example, process the first computing node and the second computing node as computing nodes that are objects of soft resource merging, as computing nodes that are objects of soft merging, and / or as computing nodes that are objects of hard merging.
[0322] 8. Implementation Method 7
[0323] The system according to the seventh embodiment is different from the first to sixth embodiments in that it is a system that efficiently performs processing by a reconfigurable device.
[0324] The system in this example may be a system including one or more reconfigurable devices and one or more program-variable devices, and a part or all of the one or more reconfigurable devices may communicate information with the one or more program-variable devices.
[0325] Several specific examples of the system are described below.
[0326] Implementation method 7-1
[0327] As an example, the system includes one or more reconfigurable devices and one or more program-variable devices, and a part or all of the one or more reconfigurable devices can communicate information with the one or more program-variable devices.
[0328] The one or more reconfigurable devices perform the following processing:
[0329] In processing a data packet acquired from outside the one or more reconfigurable devices, determining whether a source of the data packet is a specified source and / or a destination of the data packet is a specified destination; and
[0330] Corresponding to the processing of the determination, when the sending source of the data packet is a specified sending source and / or the sending destination of the data packet is a specified sending destination, the data packet is sent to the one or more program-variable devices, and when the sending source of the data packet is not the specified sending source and / or the sending destination of the data packet is not the specified sending destination, the data packet is not sent to the one or more program-variable devices,
[0331] The one or more program-variable devices perform pattern matching processing within the data packet.
[0332] The ability to communicate information may refer to communication via a network. In addition, the data packet may be sent to a third destination without being sent to the one or more program-variable devices, or the data packet may be discarded. An example of a function that can be implemented by the structure may be a firewall.
[0333] For example, you can Fig.16 In this way, the reconfigurable device 1601 obtains a data packet from outside the reconfigurable device through the communication circuit 1600, and the reconfigurable device 1601 performs a determination process, and when the transmission source of the data packet is a specified transmission source and / or the transmission destination of the data packet is a specified transmission destination, the data packet is sent to the one or more program-variable devices 1602 via the communication line 1603, and the program-variable device 1602 performs a pattern matching process. The communication line 1603 can be a general line or a dedicated line, and can be wireless or wired.
[0334] Since the processing related to the sending and receiving of data packets, such as the source and destination of the data packet, and the pattern matching processing are not performed by the reconfigurable device, there is no need for complicated installation, the benefit of high-speed processing performed by the reconfiguration is obtained, and installation becomes easy. Moreover, by utilizing the previous data packet processing implemented by the program-variable device, it is possible to appropriately share the processing required as the system as a whole (determination of the source and destination and pattern matching processing).
[0335] Implementation method 7-2
[0336] As an example, the system includes one or more reconfigurable devices and one or more program-variable devices, and a part or all of the one or more reconfigurable devices can communicate information with the one or more program-variable devices.
[0337] The one or more reconfigurable devices process a first data packet acquired from outside the one or more reconfigurable devices without using a second data packet preceding the first data packet.
[0338] The one or more program-variable devices perform processing using a second data packet preceding the first data packet when processing a first data packet acquired from outside the one or more program-variable devices.
[0339] The one or more reconfigurable devices may acquire the first data packet and the second data packet before the one or more program-variable devices in time.
[0340] Additionally, the one or more reconfigurable devices may transfer the first data packet and the second data packet to the one or more program-variable devices.
[0341] The one or more reconfigurable devices may acquire the second data packet before the first data packet in time.
[0342] For example, when using Fig.16 For explanation, it can be that the reconfigurable device 1601 obtains the first data packet and the second data packet from the outside of the reconfigurable device through the communication circuit 1600, the reconfigurable device 1601 processes the first data packet without utilizing the second data packet that precedes the first data packet, and sends the first data packet and the second data packet to the one or more program-variable devices 1602, and the program-variable device 1602 processes the first data packet utilizing the second data packet that precedes the first data packet.
[0343] Since the processing of not utilizing the previous data packet is not performed by a reconfigurable device, there is no need for complicated installation (such as installation of processing such as storage and restoration of the previous data packet), the benefit of high-speed processing performed by the reconfiguration is obtained, and installation becomes easy. Furthermore, by implementing the processing of utilizing the previous data packet by a program-variable device, there is an advantage of being able to appropriately share the processing required as a whole for the system (processing utilizing the previous data packet and processing not utilizing the previous data packet).
[0344] Implementation method 7-3
[0345] As an example, the system includes one or more reconfigurable devices and one or more program-variable devices, and a part or all of the one or more reconfigurable devices can communicate information with the one or more program-variable devices.
[0346] The one or more reconfigurable devices perform a process of determining a position and / or range to be referenced in the data packet in the determination process of the data packet acquired from outside the one or more reconfigurable devices.
[0347] The one or more program-variable devices perform processing of the data packet acquired from outside the one or more program-variable devices, in which the determination of the position and / or range to be referred to in the data packet is not completed.
[0348] For example, when using Fig.16 For explanation, it can be that the reconfigurable device 1601 obtains a data packet from outside the reconfigurable device through the communication circuit 1600, the reconfigurable device 1601 completes the processing of determining the position and / or range to be referenced within the data packet, and sends the first data packet and the second data packet to the one or more program-variable devices 1602, and the program-variable device 1602 performs the unfinished processing of determining the position and / or range to be referenced within the data packet.
[0349] Since the incomplete processing of determining the position and / or range to be referenced within the data packet is not performed by the reconfigurable device, there is no need for complicated installation (for example, installation of processing corresponding to the change in the case where the position to be referenced within the data packet changes dynamically), the benefit of high-speed processing performed by the reconfiguration is obtained and installation becomes easy, and by utilizing the processing of the previous data packet by the program-variable device, there is an advantage of being able to appropriately share the processing required as the system as a whole.
[0350] Implementation method 7-4
[0351] As an example, the system includes one or more reconfigurable devices and one or more program-variable devices, and a part or all of the one or more reconfigurable devices can communicate information with the one or more program-variable devices.
[0352] The processing of the data packet acquired from outside the one or more reconfigurable devices by the one or more reconfigurable devices is processing based on a number of combinations within a specified number of specified operations,
[0353] The processing of the data packets acquired from outside the one or more program-variable devices by the one or more program-variable devices is processing based on an operation outside of regulations or a combination of regulations exceeding a prescribed number.
[0354] For example, when using Fig.16 For explanation, it can be that the reconfigurable device 1601 obtains a data packet from outside the reconfigurable device through the communication circuit 1600, the reconfigurable device 1601 processes the data packet based on a combination of a quantity within a specified quantity of specified operations, and sends the first data packet and the second data packet to the one or more program-variable devices 1602, and the program-variable device 1602 processes the data packet based on an operation outside the regulations or a combination of a quantity exceeding the specified quantity of specified operations.
[0355] Since the processing based on unspecified operations or the combination of specified operations exceeding the specified number is not performed by the reconfigurable device, there is an advantage that complicated installation (for example, the installation of regular expression matching) is not required, the benefit of high-speed processing performed by the reconfiguration is obtained, and installation becomes easy. Moreover, by implementing the processing based on the unspecified operations or the combination of specified operations exceeding the specified number by the program-variable device, there is an advantage that the processing required as a whole for the system can be appropriately shared.
[0356] 9. Regarding various implementation methods
[0357] The system of the first aspect is “a system comprising:
[0358] an acquisition unit configured to acquire first resource information and second resource information, wherein the first resource information is information about hardware resources that can be used when one or more bitstreams associated with the first computing node are written to the reconfigurable device, and the second resource information is information about hardware resources that can be used when one or more bitstreams associated with the second computing node are written to the reconfigurable device; and
[0359] A generating unit that uses the first resource information and the second resource information to generate synthetic resource information, wherein the synthetic resource information is information about hardware resources that can be used when one or more bit streams based on the first computing node and the second computing node are written to the reconfigurable device.
[0360] The system of the second aspect is the system of the first aspect described above,
[0361] "The first resource information includes a first logical block number,
[0362] The second resource information includes a second logical block number,
[0363] The generating unit calculates a number of logical blocks obtained by adding the first number of logical blocks and the second number of logical blocks, and generates the synthetic resource information including the added number of logical blocks.
[0364] The system of the third aspect is the system of the first aspect or the second aspect,
[0365] "The first resource information includes first frequency information,
[0366] The second resource information includes second frequency information,
[0367] The generating unit generates the synthesized resource information including a smaller frequency of the first frequency information and the second frequency information, or frequencies of both the first frequency information and the second frequency information.
[0368] A system according to a fourth aspect is a system according to any one of the first aspect to the third aspect,
[0369] "The generation unit generates the synthetic resource information based on the input-output relationship between the first computing node and the second computing node."
[0370] The system of the fifth aspect is any one of the above-mentioned first aspect to the above-mentioned fourth aspect,
[0371] "It also includes a determination unit that determines a hardware resource that can execute the computing node corresponding to the synthetic resource information."
[0372] The system of the sixth aspect is a system in any one of the first aspect to the fifth aspect,
[0373] "The determination unit includes a determination unit that compares at least one attribute in the synthetic resource information with an attribute corresponding to the at least one attribute in the resource information related to the one hardware resource to determine whether the latter can execute the former."
[0374] The system of the seventh aspect is any one of the above-mentioned first aspect to the above-mentioned sixth aspect,
[0375] “The determination unit determines the one hardware resource using utilization information based on at least one attribute in the synthetic resource information and an attribute corresponding to the at least one attribute in the resource information related to the one hardware resource.”
[0376] The system of the eighth aspect is any one of the first aspect to the seventh aspect,
[0377] "Having a selection unit that uses information related to input-output paths between at least a portion of computing nodes in a first computing node group composed of a plurality of computing nodes including the first computing node and the second computing node to select a computing node group including the first computing node and the second computing node as a subset of the first computing node group from the first computing node group."
[0378] The system of the ninth aspect is a system in any one of the first aspect to the eighth aspect,
[0379] "Having a selection unit that uses resource information of a reconfigurable device or resource information of a PR region within the reconfigurable device to select a computing node group that includes the first computing node and the second computing node as a subset of the first computing node group from a first computing node group consisting of a plurality of computing nodes including the first computing node and the second computing node."
[0380] The program of the tenth aspect is “a program for causing one or more information processing devices to operate as an acquisition unit and a generation unit,
[0381] The acquisition unit acquires first resource information and second resource information, wherein the first resource information is information about hardware resources that can be used when one or more bit streams related to the first computing node are written to the reconfigurable device, and the second resource information is information about hardware resources that can be used when one or more bit streams related to the second computing node are written to the reconfigurable device.
[0382] The generation unit generates synthetic resource information using the first resource information and the second resource information, the synthetic resource information being information about hardware resources that can be utilized when one or more bit streams based on the first computing node and the second computing node are written to a reconfigurable device. ".
[0383] The procedure of the 11th method is as follows:
[0384] "The information processing device includes a memory that stores the first resource information and / or the second resource information."
[0385] The procedure of the twelfth aspect is that in the above-mentioned tenth aspect or eleventh aspect,
[0386] "The information processing device includes a computing device that performs the generation processing."
[0387] The method of the thirteenth embodiment is “a method for performing the following steps by one or more information processing devices:
[0388] an acquisition step of acquiring first resource information and second resource information, wherein the first resource information is information about hardware resources that can be used when one or more bitstreams associated with the first computing node are written to the reconfigurable device, and the second resource information is information about hardware resources that can be used when one or more bitstreams associated with the second computing node are written to the reconfigurable device; and
[0389] The step of generating synthetic resource information using the first resource information and the second resource information is information about hardware resources that can be used when one or more bit streams based on the first computing node and the second computing node are written to the reconfigurable device.
[0390] The method of the 14th aspect is that in the above-mentioned 13th aspect,
[0391] "The information processing device includes a memory that stores the first resource information and / or the second resource information."
[0392] The method of the 15th aspect is the method according to the above-mentioned 14th aspect or 15th aspect,
[0393] "The information processing device includes a computing device that performs the generation processing."
[0394] 10. Example of the structure of a program-variable device
[0395] like Fig.17 Thus, the program-variable device 10 may include a computing device 12, a storage device 13, a communication IF 16, and a bus 11 connecting them. In addition, the program-variable device 10 may also include an input device 14, a display device 15, and a bus 11 connecting them. In addition, the program-variable device 10 may be directly or indirectly connected to other information processing devices via a network 19.
[0396] The program-variable device 10 may be an information processing device such as a server or a cloud. It may be a dedicated device or a general-purpose device. In addition, the program-variable device 10 itself may be obtained by writing a circuit in a reconfigurable device. In this case, there is an advantage that the programs of the various embodiments described above can be executed more quickly.
[0397] In the above, the structures implemented by the system as an example are described, but they can also be structures implemented by one or more information processing devices in the system. In addition, the system involved in this application document can present information in various ways. For example, the presentation of information can include the display of information. For example, in the system as an example, the information can be displayed by a display device included in the system as an example, or the information can be displayed on a display device in another information processing device directly or indirectly connected to the system as an example.
[0398] It goes without saying that the invention examples described in the embodiments of the present application document are not limited to the examples described in the present application document, and can be applied to various examples within the scope of the technical idea thereof.
[0399] In addition, the processing and processes described in this application document can be implemented not only by the structure clearly described in the embodiment, but also by software, hardware or a combination thereof. In addition, it can also be that the processing and processes described in this application document can be executed by various computers by installing these processing and processes as computer programs. In addition, these computer programs can be stored in a storage medium. In addition, these programs can be stored in a non-transient or transient storage medium.
Claims
1. A system comprising: an acquisition unit configured to acquire first resource information and second resource information, wherein the first resource information is information about hardware resources that can be used when one or more bitstreams associated with the first computing node are written to the reconfigurable device, and the second resource information is information about hardware resources that can be used when one or more bitstreams associated with the second computing node are written to the reconfigurable device; and A generation unit generates synthetic resource information using the first resource information and the second resource information, wherein the synthetic resource information is information about hardware resources that can be used when one or more bit streams based on the first computing node and the second computing node are written to a reconfigurable device.
2. The system according to claim 1, wherein: The first resource information includes a first logical block number, The second resource information includes a second logical block number, The generating unit calculates a number of logical blocks obtained by adding the first number of logical blocks and the second number of logical blocks, and generates the synthesized resource information including the added number of logical blocks.
3. The system according to claim 1 or 2, wherein: The first resource information includes first frequency information, The second resource information includes second frequency information, The generating unit generates the synthesized resource information including a smaller frequency of the first frequency information and the second frequency information, or frequencies of both the first frequency information and the second frequency information.
4. The system according to any one of claims 1 to 3, wherein: The generation unit generates the synthetic resource information based on an input-output relationship between the first computing node and the second computing node.
5. The system according to any one of claims 1 to 4, wherein: The system further includes a determining unit that determines a hardware resource capable of executing a computing node corresponding to the synthetic resource information.
6. The system according to claim 5, wherein: The determination unit includes a determination unit that compares at least one attribute in the synthetic resource information with an attribute corresponding to the at least one attribute in the resource information related to the one hardware resource to determine whether the latter can execute the former.
7. The system according to claim 5, wherein: The determination unit determines the one hardware resource using utilization information based on at least one attribute in the synthetic resource information and an attribute corresponding to the at least one attribute in the resource information related to the one hardware resource.
8. The system according to any one of claims 1 to 7, wherein: A selection unit is provided, which uses information related to input and output paths between at least a part of the computing nodes in a first computing node group composed of a plurality of computing nodes including the first computing node and the second computing node to select a computing node group including the first computing node and the second computing node as a subset of the first computing node group from the first computing node group.
9. The system according to any one of claims 1 to 8, wherein: A selection unit is provided, which uses resource information of a reconfigurable device or resource information of a partially reconfigurable area within the reconfigurable device to select a computing node group including the first computing node and the second computing node as a subset of the first computing node group from a first computing node group consisting of a plurality of computing nodes including the first computing node and the second computing node.
10. A program for causing one or more information processing devices to act as an acquisition unit and a generation unit, The acquisition unit acquires first resource information and second resource information, wherein the first resource information is information about hardware resources that can be used when one or more bit streams related to the first computing node are written to the reconfigurable device, and the second resource information is information about hardware resources that can be used when one or more bit streams related to the second computing node are written to the reconfigurable device. The generation unit generates synthetic resource information using the first resource information and the second resource information, the synthetic resource information being information about hardware resources that can be utilized when one or more bitstreams based on the first computing node and the second computing node are written to a reconfigurable device.
11. The program according to claim 10, wherein: The information processing device includes a memory for storing the first resource information and / or the second resource information.
12. The program according to claim 10 or 11, wherein: The information processing device includes a computing device that performs the generation process.
13. A method, comprising: performing the following steps by one or more information processing devices: an acquisition step of acquiring first resource information and second resource information, wherein the first resource information is information about hardware resources that can be used when one or more bitstreams associated with the first computing node are written to the reconfigurable device, and the second resource information is information about hardware resources that can be used when one or more bitstreams associated with the second computing node are written to the reconfigurable device; and A generating step, using the first resource information and the second resource information to generate synthetic resource information, wherein the synthetic resource information is information about hardware resources that can be used when one or more bit streams based on the first computing node and the second computing node are written to a reconfigurable device.
14. The method according to claim 13, wherein: The information processing device includes a memory for storing the first resource information and / or the second resource information.
15. The method according to claim 13 or 14, wherein: The information processing device includes a computing device that performs the generation process.
