Information processing system, information processing device, server device, program, reconfigurable device, or method
By merging resource information from multiple computing nodes, the system optimizes reconfigurable device utilization and reduces communication overhead, addressing inefficiencies in existing reconfigurable device management.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- CHIPTIP TECH KK
- Filing Date
- 2026-02-13
- Publication Date
- 2026-05-11
AI Technical Summary
Existing technologies for utilizing reconfigurable devices are not being utilized appropriately, leading to inefficiencies in resource management and communication overhead between multiple reconfigurable devices.
The system acquires and generates composite resource information by merging resource information from multiple computing nodes, reducing communication overhead by combining reconfigurable devices into a single device through soft and hard resource merging processes.
This approach enables more efficient use of reconfigurable devices by optimizing resource allocation and reducing communication overhead, thereby enhancing the utilization of hardware resources.
Smart Images

Figure 2026076314000001_ABST
Abstract
Description
Technical Field
[0004] , , , , , , , , , ,
[0005] ,
[0001] The technology disclosed in this application relates to a system, an information processing apparatus, a server apparatus, a reconfigurable device, a program, a cloud, and / or a method.
Background Art
[0002] In recent years, reconfigurable devices capable of circuit modification have begun to be introduced in various fields.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Patent Document 2
Patent Document 3
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, there are situations where technologies for more appropriately using reconfigurable devices are not being utilized. Therefore, various embodiments of the present invention provide an information processing system, an information processing apparatus, a server apparatus, a program, a reconfigurable device, or a method to solve the above problems.
Means for Solving the Problems
[0005] One embodiment according to the present application is first resource information, which is information about hardware resources that can be utilized when one or more bitstreams related to a first computing node are written into a reconfigurable device, and Second resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the second computing node are written to a reconfigurable device, The acquisition unit acquires the following: A generation unit generates synthetic resource information, which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written to a reconfigurable device, using the first resource information and the second resource information. A system equipped with these features.
[0006] Other embodiments relating to this application are, One or more information processing devices First resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the first computing node are written to a reconfigurable device, Second resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the second computing node are written to a reconfigurable device, Acquisition step to obtain, A generation step of generating composite resource information, which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written to a reconfigurable device, using the first resource information and the second resource information. How to do it.
[0007] Other embodiments relating to this application are, One or more information processing devices, First resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the first computing node are written to a reconfigurable device, Second resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the second computing node are written to a reconfigurable device, means of obtaining, A generation means that generates composite resource information, which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written to a reconfigurable device, using the first resource information and the second resource information. A program to make it work as such. [Effects of the Invention]
[0008] One embodiment of the present invention enables more appropriate use of reconfigurable devices. [Brief explanation of the drawing]
[0009] [Figure 1] Figure 1 is a block diagram illustrating an example of the relationship between a system according to one embodiment and a reconfigurable device. [Figure 2] Figure 2 is an example block diagram showing the relationship between a system according to one embodiment and a reconfigurable device. [Figure 3] Figure 3 shows an example of data used by a system according to one embodiment. [Figure 4] Figure 4 shows an example of data used by a system according to one embodiment. [Figure 5] Figure 5 shows an example of processing performed by a system according to one embodiment. [Figure 6] Figure 6 shows an example data flow related to a system according to one embodiment. [Figure 7] Figure 7 shows an example of processing performed by a system according to one embodiment. [Figure 8] Figure 8 shows an example of processing performed by a system according to one embodiment. [Figure 9]FIG. 9 is a diagram showing an example of data flow related to a system according to an embodiment. [Figure 10] FIG. 10 is a diagram showing an example of processing by a system according to an embodiment. [Figure 11] FIG. 11 is a diagram showing an example of data used by a system according to an embodiment. [Figure 12] FIG. 12 shows a configuration related to a system according to an embodiment. [Figure 13] FIG. 13 is a diagram showing an example of processing by a system according to an embodiment. [Figure 14] FIG. 14 is a diagram showing an example of data used by a system according to an embodiment. [Figure 15] FIG. 15 is a diagram showing an example of data flow related to a system according to an embodiment. [Figure 16] FIG. 16 shows a configuration related to a system according to an embodiment. [Figure 17] FIG. 17 is a block diagram showing an example of the configuration of a system according to an embodiment.
[0010] 1. Introduction An example of the technology disclosed in the present application relates to a rewritable circuit. For example, the technology disclosed in the present application includes technologies related to the rewritable circuit itself, technologies using non-rewritable circuits for rewritable circuits, programs used in these circuits, and the like. An example of this technology may use an information processing device including a non-rewritable circuit. A rewritable circuit is also referred to as a programmable logic device or the like, but in this document, including these, it is referred to as a reconfigurable logic device. On the other hand, a non-rewritable circuit may be referred to as an instruction decoding method, a Neumann type device, or the like, but in this document, including these, it is referred to as a program variable device.
[0011] Examples of reconfigurable devices include PAL (Programmable Array Logic), PLA (Programmable Logic Array), GAL (Generic Array Logic), CPLD (Complex Programmable Logic Device), FPGA (Field Programmable Gate Array), and CGRA (Coarse-Grained Reconfigurable Array).
[0012] In the following sections of this application, FPGAs may be used as an example of a reconfigurable device, but it goes without saying that the same principles can be applied to other reconfigurable devices as well. In particular, any reconfigurable device that has the capability for partial reconfiguration, that is, the ability to independently write to multiple regions (e.g., PR regions) within a single programmable logic device, may be capable of the region-specific processing described later. Here, "independently writable" may include the ability to write to other regions within the same programmable logic device while processing is being performed in one region within the same programmable logic device.
[0013] In this application, when we refer to "one" reconfigurable device, it may be a physically independent device. Furthermore, one reconfigurable device may structurally include one or more PR regions. A PR region may be a section whose circuit configuration can be changed independently. For each PR region, the reconfigurable device may be able to perform one or more independent operations using partial reconfiguration, or it may be able to perform one or more independent operations without using partial reconfiguration. Because they are independent, for example, if one reconfigurable device includes PR region A and PR region B, PR region A and PR region B may operate independently in terms of circuit rewriting and circuit execution. Therefore, it may be possible to rewrite PR region B while PR region A is executing. Note that a reconfigurable device may also be referred to as a physical device, and a PR region may also be referred to as a virtual device.
[0014] Furthermore, the data written to a reconfigurable device can be either a bitstream or a partial bitstream, but in the following explanation, both will be referred to as a bitstream.
[0015] The bitstream in this application may be obtained by compiling a program (sometimes referred to as an HDL program in this application) that is written in a Hardware Descriptive Language (HDL) such as VHDL or Verilog.
[0016] In this application, the HDL program may be one programmed (coded) by a human, or it may be one obtained by converting a program written in a high-level programming language such as C language using a high-level synthesis tool. In this application, the higher-level concept of a program written in a high-level programming language that can be converted into an HDL program by such a high-level synthesis tool (any language to which an action synthesis tool can be applied, such as C language or Python language) and the HDL program itself may be referred to as the "target HDL program."
[0017] In this application, the term "information processing device" is used as a broader concept encompassing both reconfigurable devices and programmable devices.
[0018] An example system may consist of one or more information processing devices. Such one or more information processing devices may consist of one or more reconfigurable devices and / or one or more programmable devices.
[0019] Furthermore, such an example system may be connected to one or more reconfigurable devices. In this case, the example system has the advantage of being able to manage one or more reconfigurable devices.
[0020] Figure 1 shows an example of a system connected to one or more FPGAs. It shows the example system (001) connected to FPGA1 (0021) through FPGA4 (0024). Such connections may be made via Ethernet or a bus such as PCI Express. Note that the example system may also be connected to only one or more FPGAs as the computing function for executing user applications. In this case, hardware resources that perform functions other than the computing function for executing user applications may be connected to programmable devices.
[0021] Furthermore, the example system may be connected to one or more reconfigurable devices, and also to one or more programmable devices. In this case, the example system has the advantage of being able to manage distributed processing and other functions, including programmable devices, in addition to managing reconfigurable devices.
[0022] In an example system, where one or more reconfigurable devices and / or one or more programmable devices are connected, the connection may be directly or indirectly via a network. One or more reconfigurable devices may be installed in the same facility as the example system or in different facilities. Furthermore, the specific location of one or more reconfigurable devices may be anything. For example, one or more reconfigurable devices may be installed inside a building (indoors) or outside a building (outdoors). IoT devices such as sensors may operate inside and / or outside a building, and these may be implemented by reconfigurable devices. The network may be wired, wireless, or a combination of both.
[0023] Figure 2 shows an example system connected to a reconfigurable device and a programmable device via a network (000). In this figure, the FPGA group (002) includes multiple FPGAs and a programmable device. Here, the programmable devices are referred to as CPU1 and CPU2, and for convenience, they are also shown as part of the FPGA group. The FPGA group (003) includes multiple FPGAs and an information processing device that includes the functionality of an FPGA writer. Such an FPGA writer may be capable of writing bitstreams to both the FPGA group (003) and the FPGA group (002). The network within these FPGA groups (002) and (003) may be a bus or Ethernet, etc.
[0024] The example system, the one or more reconfigurable devices described above, and / or the one or more programmable devices described above may be information processing devices on the cloud.
[0025] In this application, a computation (or computational concept) performed in one or more target HDL programs, one or more bitstreams, PR regions, and / or reconfigurable devices is referred to as a computation node, and a unit of computation nodes performed in one PR region or one reconfigurable device is referred to as a single computation node. A single computation node may correspond to one or more target HDL programs. A single computation node may correspond to one or more bitstreams. Furthermore, a single computation node may correspond to a unit in which a programmer specifies resource information as described below.
[0026] Furthermore, in this application, hardware resources may refer to a reconfigurable device, a PR region within a reconfigurable device, and / or a programmable device.
[0027] 2. Embodiment 1 HDL programs are compiled into bitstreams, written to reconfigurable devices, and then computations can be performed. Generally, programmers code HDL programs with the expectation of writing to a specific reconfigurable device (or a specific PR region within it).
[0028] However, suppose a certain process is implemented by multiple bitstreams (e.g., BS1, BS2, BS3) each compiled from multiple HDL programs (e.g., HDL1, HDL2, HDL3). When each of these bitstreams is written to a reconfigurable device R (e.g., RD1, RD2, RD3), multiple reconfigurable devices are written to, which can result in communication overhead between these multiple reconfigurable devices. Therefore, the inventors have devised a technique related to reducing the communication overhead between reconfigurable devices by combining these multiple written reconfigurable devices into a single reconfigurable device (e.g., RDX).
[0029] In this application, the information processing that converts resource information for hardware resources used by a target HDL program corresponding to N (N is a natural number) computing nodes into resource information for hardware resources used by a target HDL program corresponding to M (M is a natural number smaller than N) computing nodes may be referred to as soft resource merging. Also in this application, the information processing that converts (compiles) a target HDL program corresponding to a computing node involved in soft resource merging into a bitstream may be referred to as soft merging. In some cases, multiple computing nodes that are soft-merged may be considered as a single computing node. This is because, if soft resource merging enables the generation of composite information based on the corresponding resource information of the multiple computing nodes, then the computing node corresponding to this composite information can be considered as a single computing node, since resource information corresponding to such a computing node can be conceived. Furthermore, the process of writing the soft-merged bitstream to hardware resources may be referred to as hard merging.
[0030] Furthermore, the target HDL program is converted into a bitstream (in the case of a high-level programming language to which a high-level synthesis tool is applied, the program written in the high-level programming language is converted into an HDL program by applying an action synthesis tool, and then converted into a bitstream), and the bitstream becomes writable to the reconfigurable device. Here, the target HDL program may be programmed based on information about the reconfigurable device to which it is written. For example, a certain target HDL program may have a processing power of 500 logic blocks, a memory capacity of 300 megabytes, and a frequency of 100 megakilohertz. When such a target HDL program is written to a reconfigurable device, the capacity and functions that the reconfigurable device to which it is written must possess are referred to as resource information in this application.
[0031] Resource information may include, for example, the type of reconfigurable device, attributes related to the arithmetic unit, attributes related to the storage device, and / or attributes related to the communication device. Attributes related to the arithmetic unit may include the type of arithmetic unit, the number of arithmetic units such as the number of cells, the capabilities of the arithmetic unit such as the clock frequency, the number of logic blocks, the number of logic elements (LEs), the number of logic cells (LCs), the capacity of the LUT (look-up table), the number of bits in the registers, the type of DSP, the capabilities of the DSP, the number of DSPs, and / or the power consumed by the arithmetic unit. Attributes related to the storage device may include the type of storage device, the capacity of the storage device, the read / write speed of the storage device, and / or the power consumed by the storage device. The storage device may be, for example, an on-chip storage device within the reconfigurable device, but it may also be another storage device installed outside the reconfigurable device. Attributes related to the communication device may include attributes related to an internal communication device and / or attributes related to an external communication device. Furthermore, attributes related to an internal communication device may be information about communication within the FPGA. Attributes relating to external communication devices may include the network bandwidth for communication with the outside, the number of communication channels, and / or the bandwidth speed. In this application, information from different perspectives within resource information (for example, attributes relating to the arithmetic unit, attributes relating to the memory device, and / or attributes relating to the communication device, and information on their subordinate concepts) may be referred to as "attributes." Furthermore, resource information may include one or more instances for each attribute. For example, one resource information may include information such as multiple frequencies, multiple types of memory devices, and multiple numbers of logic blocks. If there are multiple instances of each attribute, the corresponding attributes may be associated and included in the resource information. In addition to or instead of having multiple instances of each attribute, each attribute may be defined as a range. For example, within one resource information, frequencies X1 to X2 and the number of logic blocks Y1 to Y2 may be defined as ranges.In particular, when the target HDL program is written in a high-level programming language, the application of action synthesis tools may automatically determine within a certain range the type of reconfigurable device, such as frequency and the number of logic blocks, attributes related to the arithmetic unit, attributes related to the memory device, and / or attributes related to the communication device, by selecting options. Therefore, the resource information includes information on the range of these possible values, which has the advantage of enabling more flexible soft resource merging or hard merging.
[0032] Resource information for one or more target HDL programs, and / or resource information for a single hardware resource, may be specified by the programmer. This allows the programmer to specify this information when programming the target HDL program while considering at least how much computing power and memory capacity are required. Here, resource information may be specified from multiple perspectives (e.g., required, recommended, etc.) for a single attribute. For example, the frequency for a target HDL program may be specified as 1 MHz required and 2 MHz recommended. Furthermore, resource information for a target HDL program may be automatically generated for the target HDL program. For example, the above resource information may be generated by analyzing the target HDL program.
[0033] Furthermore, there may be multiple ways to configure PR regions for a single reconfigurable device. For example, a single reconfigurable device may be divided into two PR regions, PR region A and PR region B, or into four PR regions, PR region A through PR region D. Since the resource information for each PR region will also differ depending on the division method, resource information may be associated with and stored for a specific PR region in a given division method.
[0034] In this application, "one" resource information may refer to a single unit that a user can use as a hardware resource. Therefore, if a reconfigurable device is not managed on a PR region basis, one resource information may refer to a single reconfigurable device. If a reconfigurable device is managed on a PR region basis and is a hardware resource available for each PR region, one resource information may refer to a single PR region within a single reconfigurable device. Furthermore, a single reconfigurable device may be a device whose circuitry can be rewritten and can be purchased independently.
[0035] In this application, a database that stores resource information associated with a target HDL program may be referred to as an HDL resource database (or HDL-RDB). In this application, resource information does not necessarily need to be stored in database format; it is sufficient that the resource information is stored in association with a target HDL program. Furthermore, a single resource information entry may be stored in association with one or more target HDL programs. Also, a single resource information entry may be stored in association with a single computing node.
[0036] An example of an HDL-RDB is shown in Figure 3. In this figure, one resource piece of information may be associated with one or more HDL programs. For example, for ID001, one resource piece of information (one set of information for each attribute of the resource piece of information) and one target HDL program are associated and stored. When one resource piece of information is associated with multiple target HDL programs, it is conceivable that a programmer compiles multiple target HDL programs as target HDL programs that realize one function, and writes them to a single hardware resource. For example, for ID002, one resource piece of information is associated and stored with multiple target HDL programs 002, 003, and 004. Also, one resource piece of information may be associated with one computing node.
[0037] On the other hand, resource information can also be conceived for a reconfigurable device or its PR region. That is, given a reconfigurable device or its PR region, the capacity and function of such reconfigurable device or its PR region can be conceived, and therefore, resource information for such reconfigurable device or its PR region can also be conceived. In this application, a database that stores resource information associated with a reconfigurable device or its PR region may be referred to as an RFD resource database (or RFD-RDB).
[0038] An example of an HDL resource database is shown in Figure 4. In this figure, each row in the table may represent a single hardware resource capable of writing one or more bitstreams. For example, ID001 and ID002 show the case where hardware resource 001 is divided into PR region 01 and PR region 02 (division method 1). ID003 to ID005, unlike ID001 and 002, show the case where the same hardware resource 001 is divided into PR regions 01 to 03 (division method 2). In this way, a physically identical hardware resource 001 may be divided into hardware resources of different amounts using different division methods (division methods 1 and 2), and as described later, a more suitable (less wasteful) allocation of hardware resources may be achieved for the computing node performing the task. ID006 is an example where no PR regions are set, and it is an example where hardware resource 101 without PR regions is used as a single resource information. Furthermore, PR region divisions such as ID001 to ID005 may be stored in the HDL-RDB as information that the target hardware resource has already been divided, or PR region divisions may be stored in the HDL-RDB as information that a PR region would be divided even if one has not actually been set for the target hardware resource.
[0039] RFD-RDB and / or HDL-RDB may or may not utilize a database management system. If the database is based on a data model, it may be of various types, including hierarchical, network, relational, and object data models, and is not limited to any particular type. Furthermore, the hardware resources that implement such a database may be servers, clouds, dedicated information processing devices, and / or general-purpose information processing devices.
[0040] In one example system, if it utilizes an RFD-RDB and / or HDL-RDB, it is sufficient that the system can access the RFD-RDB and / or HDL-RDB. The system may or may not have an RFD-RDB and / or HDL-RDB. In the latter case, the system only needs to be able to connect directly or indirectly to the RFD-RDB and / or HDL-RDB via a network or the like.
[0041] Step 1 The resource information acquisition unit may acquire information on multiple resources.
[0042] The resource information acquisition unit may acquire resource information directly or indirectly. For example, the resource information acquisition unit may acquire multiple computing nodes and acquire resource information corresponding to each of the multiple computing nodes based on those nodes. Alternatively, the resource information acquisition unit may acquire multiple target HDL programs and acquire corresponding resource information based on those HDL programs. In these cases, the resource information acquisition unit may, alternatively, acquire resource information using an HDL-RDB. For example, the resource information acquisition unit may acquire IDs and / or target HDL programs corresponding to computing nodes and acquire corresponding resource information using these keys.
[0043] Furthermore, the method of acquisition can vary. For example, resource information may be acquired from a storage device within an information processing device on which a resource information acquisition unit is implemented, or it may be acquired via a network from an information processing device different from such an information processing device. Resource information may also be acquired based on user input.
[0044] Step 2 The composite information generation unit may generate composite information using multiple resource information acquired by the acquisition unit. The composite information generation unit may also be a function that implements soft resource merging. The synthesized information may include, or be, synthesized resource information.
[0045] (Judgment function) The synthesis information generation unit may have a determination function to determine whether synthesis is possible before generating the synthesis information, or it may not have such a determination function. Furthermore, if the synthesis information generation unit determines that synthesis is possible, it may also determine whether the synthesized information will actually work. For example, the synthesis information generation unit may have a simulation function that determines whether the synthesized information will actually work. In this case, the determination of whether it will actually work may be made by the simulation function. That is, such a simulation may determine whether it is possible to write to a reconfigurable device. Such a simulation function may be included in the system of this example or may be outside the system of this example. If the synthesis information generation unit can execute the determination function and / or the simulation function, it may generate the above-mentioned synthesis information only if it determines that the synthesis of resource information is possible and / or the synthesized information will work. If the synthesis information generation unit can execute the determination function and / or the simulation function, and does not determine that synthesis is possible and / or the synthesized information will work, it does not have to generate the above-mentioned synthesis information.
[0046] For example, as described later, the synthesis information generation unit may determine that synthesis is not possible when performing soft resource merging if the pipeline cycle, DSP type, and / or type of computing device within the resource information are different (for example, when soft resource merging first resource information and second resource information, if the DSP type and / or type of computing device within the first resource information are different from the DSP type and / or type of computing device within the second resource information).
[0047] In the following example, we will describe how the composite information generation unit generates one resource information from two acquired resource information. Specifically, we will describe an example in which the composite information generation unit uses the first resource information and the second resource information to generate a twelfth resource information necessary for writing to a reconfigurable device. In addition to having the function of generating one resource information from the two resource information described below, the composite information generation unit may also have the function of generating M resource information (where M is less than N) from N resource information.
[0048] Furthermore, the composite information generation unit may have a function to present the information generated in the soft resource merge to the user. For example, it may have a function to display the two acquired resource information and / or the combined resource information to the user. In this case, there is an advantage that the user can understand the resource information before and / or the combined resource information. In particular, if the functionality of the compute node after the soft resource merge changes compared to each compute node before the merge, and information including such changes is displayed, the user has the advantage of being able to utilize those changes. For example, in the soft resource merge of different types of storage devices, as described later, if composite resource information of a type with a fast memory access speed is generated, the user has the advantage of being able to understand it. Also, for example, in the soft resource merge of compute nodes with different frequencies, as described later, if the frequency decreases, the user has the advantage of being able to understand such changes.
[0049] Soft resource merging of computation information The composite information generation unit may generate the attributes of the resource information's arithmetic unit by summing the attributes of the arithmetic unit related to the first resource and the attributes of the arithmetic unit related to the second resource that correspond to the attributes of the arithmetic unit related to the first resource.
[0050] For example, if the number of logic blocks in the attribute related to the arithmetic unit of the first resource is X1, and the number of logic blocks in the attribute related to the arithmetic unit of the second resource is X2, then the number of logic blocks in the attribute related to the arithmetic unit in the generated composite resource information may be X1 + X2.
[0051] As another example, if the number of DSPs (digital signal processors) in the attributes related to the computing device of the first resource is X1, and the number of DSPs in the attributes related to the computing device of the second resource is X2, then the number of DSPs in the attributes related to the computing device in the generated composite resource information may be X1 + X2.
[0052] As described above, regarding the capabilities of arithmetic units that are independent during hard merging, such as the number of arithmetic units (including the number of cells), the number of logic blocks, and / or the number of DSPs, the corresponding attributes in the first resource information and the second resource information may be combined to generate the corresponding attributes in the composite resource information.
[0053] On the other hand, with respect to the capabilities of 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 require identity during hard merging, soft merging is possible only if the corresponding attributes in the first resource information and the second resource information are identical, and identical corresponding attributes may be generated in the synthesized resource information.
[0054] Furthermore, regarding the capabilities of the arithmetic unit in the resource information, such as the number of bits in a register and / or the number of bits representing the number of digits in a DSP, the higher capability can cover the other during hard merging. In this regard, the corresponding attributes in the first resource information and the second resource information may generate higher values for the corresponding attributes in the composite resource information.
[0055] On the other hand, regarding attributes related to the computing device within the resource information, such as the clock frequency, which are capabilities of the computing device where stability should be prioritized at a lower capacity during hard merging, the corresponding attributes in the first and second resource information may generate lower values for the corresponding attributes in the composite resource information. This is because, in particular, in the case of computing nodes with different frequencies, it may not be possible 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. Furthermore, if a single computing node has multiple frequencies, the smallest frequency among these multiple frequencies may be used.
[0056] Alternatively, instead of the above-described configuration, the compute nodes after soft merge and / or hard merge may be operated at multiple different frequencies by methods such as connecting modules operating at different frequencies using a FIFO. In this case, the composite resource information may include multiple frequencies. Furthermore, the composite resource information may include information indicating the computation process to be performed at each of the multiple frequencies in association with each of them.
[0057] Soft resource merging of memory information The synthesized information generation unit may generate the attributes of the storage device for resource information by summing the attributes of the storage device for the first resource and the attributes of the storage device for the second resource that correspond to the attributes of the storage device for the first resource.
[0058] For example, the composite information generation unit may generate the storage device attribute of the resource information by summing the attribute of the storage device related to the first resource and the attribute of the storage device related to the second resource that corresponds to the attribute of the storage device related to the first resource. For example, if the number of internal memory units in the attribute of the storage device related to the first resource is X1 and the number of internal memory units in the attribute of the storage device related to the second resource is X2, the number of internal memory units in the storage device attribute of the generated composite resource information may be X1 + X2.
[0059] As another example, if the attribute of the storage device for the first resource specifies that the number of shared channels to external memory is EC1 and the number of dedicated channels to external memory is ED1, and the attribute of the storage device for the second resource specifies that the number of shared channels to external memory is EC2 and the number of dedicated channels to external memory is ED2, then the number of shared channels for external memory in the attribute of the storage device in the generated synthetic resource information may be the larger of EC1 or EC2 (it may be 1), and the number of dedicated channels to external memory may be ED1 + ED2. This is because shared channels in external memory can be used even if there is a delay in accessing the storage memory (it may be okay if the latency is slow), and this can be accommodated by having the larger of EC1 or EC2 for the number of channels. Note that the number of shared channels to external memory may be greater than the larger of EC1 or EC2. For example, a predetermined number of buffers may be added. In this case, there is an advantage in that the number of channels can be provided with a margin equal to the predetermined number of buffers. On the other hand, dedicated channels are used when latency is sensitive and delay is undesirable. Therefore, even after soft merging, it is preferable to provide each channel separately, resulting in a number of channels of ED1 + ED2.
[0060] Furthermore, regarding the storage device type, which is an attribute related to storage devices within resource information, when a soft merge process is attempted in a case where the storage device type in the first resource information is type A and the storage device type in the second resource information is type B, one of the following three processes may be performed. In addition, which of the following three processes is performed may be determined based on user information or may be determined automatically. In either case, the decision may be based on pre-configured information or a dynamically applied process may be determined. Here, if the storage device types are different, the memory access speeds may be different or the same. If the memory access speeds are different, they may be treated as different storage device types.
[0061] 1) Soft merging is performed only when type A and type B are the same; 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 corresponding storage device type in the composite resource information may be the same A(B).
[0062] 2) Soft merging is performed whether type A and type B are the same or different. If type A and type B are the same, the corresponding storage device type in the composite resource information may be the same A(B). If type A and type B are different, the corresponding storage device type in the composite resource information may be both type A and type B.
[0063] 3) Soft merging is performed whether type A and type B are the same or different. If type A and type B are the same, the corresponding storage device type in the composite resource information may be the same A(B). If type A and type B are different, the corresponding storage device type in the composite resource information may be the type of type A and type B with the faster memory access speed. For example, if there are storage device types such as DDR4, DDR5, and HBM2, the storage device type in the composite resource information may be HBM2.
[0064] Merge soft resources for communication information When the combined information generation unit soft-merges the attributes relating to the communication device of the first resource and the attributes relating to the communication device of the second resource corresponding to the attributes relating to the communication device of the first resource, it may generate the attributes relating to the communication device of the combined resource information according to the relationship between the first resource and the second resource.
[0065] In this application, the relationship between the first and second computing nodes, where all outputs of the first computing node become inputs to the second computing node, is sometimes referred to as an "output series relationship." In this case, there may or may not be inputs to the second computing node that are not outputs of the first computing node.
[0066] Furthermore, in this application, the relationship between the first computing node and the second computing node may be referred to as an "input series relationship" when the output of the first computing node becomes all the inputs of the second computing node. In this case, the output of the first computing node may or may not become an input to the second computing node.
[0067] Furthermore, in this application, the relationship between the first computing node and the second computing node, where all outputs of the first computing node become all inputs of the second computing node, may be referred to as an "input-output series relationship."
[0068] In this application, the term "series relationship" may also be used as a higher-level concept encompassing output series relationship, input series relationship, and input / output series relationship. When the first and second computing nodes are in a series relationship, if the first and second computing nodes can be hard merged, there is a connection relationship between the input / output information between the first and second computing nodes, which has the advantage of reducing the overhead related to such input / output.
[0069] Here, a connection between the first computing node and the second computing node means that the output of the first computing node becomes the input of the second computing node directly, without any further processing.
[0070] Furthermore, in this application, when at least a portion of the output of the first computing node is not an input to the second computing node, and / or when at least a portion of the input to the second computing node is not an output to the first computing node, this may be referred to as a "parallel relationship."
[0071] Furthermore, the existence and / or nature of connection relationships between computing nodes, such as serial and parallel relationships, may be prepared in the same way as resource information. For example, the existence and / or nature of connection relationships may be prepared and created by the programmer during coding and stored and used, or they may be generated and used based on techniques such as data flow analysis between target HDL programs, even if the programmer does not create them during coding.
[0072] The combined information generation unit may use the output information of the second resource information as the output information of the combined resource information if the first computing node and the second computing node are in an input-to-input series relationship or an input-to-output series relationship.
[0073] For example, suppose computing node 1 has an input of 10 GBPS and an output of 20 GBPS, and computing node 2 has an input of 20 GBPS and an output of 30 GBPS. In this case, the output information of the composite resource information may include 30 GBPS.
[0074] If the first computing node and the second computing node are not in a series input-output relationship and are not in a series input-output relationship, the combined information generation unit may use the sum of the output information of the first resource information that is not input information of the second resource information, and the output information of the second resource information, as the output information of the combined resource information.
[0075] For example, suppose computing node 1 has an input of 10 GBPS and an output of 20 GBPS, and computing node 2 has an input of 20 GBPS and an output of 30 GBPS. The output information of the composite resource information may include 40 GBPS, which is the sum of the output information of the first resource information (20 GBPS) that is not part of the input information of the second resource information (10 GBPS) and the output information of the second resource information (30 GBPS).
[0076] The synthesized information generation unit may use the input information of the first resource information as the input information of the synthesized resource information if the first computing node and the second computing node are in an output series relationship or an input / output series relationship.
[0077] For example, suppose computing node 1 has an input of 10 GBPS and an output of 20 GBPS, and computing node 2 has an input of 20 GBPS and an output of 30 GBPS. In this case, the input information for the synthetic resource information may include 10 GBPS.
[0078] If the first computing node and the second computing node are not in a series output relationship and are not in a series input / output relationship, the composite information generation unit may use 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 composite resource information.
[0079] For example, suppose computing node 1 has an input of 10 GBPS and an output of 20 GBPS, and computing node 2 has an input of 20 GBPS and an output of 30 GBPS. The input information for the composite resource information may include 20 GBPS, which is the sum of the input information for the first resource information (10 GBPS) and the input information for the second resource information (20 GBPS) that is not connected to the output information for the first resource information (10 GBPS).
[0080] In the above examples, GBPS was used as an example, but other units may be used. For example, calculations may be performed in other speed units such as BPS, or in terms of the number of bits corresponding to the frequency in each operation. In particular, if the communication speed required or desired at each computing node (for example, communication speed in GBPS units) is specified and provided as information by the programmer, the number of communication bits can be calculated from the frequency at each computing node. Therefore, as mentioned above, even if the frequency is changed in soft merging, the number of communication bits corresponding to the changed frequency may be used (for example, since the number of communication bits can be calculated by dividing the communication speed by the frequency).
[0081] The input information and output information may each include communication bit information and / or communication speed for the input and output, respectively.
[0082] Generating information that can be used for soft merging The composite information generation unit may have a function to generate information that can be used for soft merging. For example, as information that can be used for soft merging, the composite information generation unit may generate an external memory mapping table and / or an external storage mapping table as information related to memory functions. The composite information generation unit may also generate information that can be used for soft merging, such as information that specifies the number of communication bits and the communication speed as information related to communication functions. The composite information generation unit may also generate information that can be used for soft merging, such as information related to arithmetic functions, such as a module that has a function such as FIFO for data transfer between modules of different frequencies (sometimes called an inter-frequency communication module).
[0083] Soft merging is performed by compiling multiple target HDL programs. For example, consider an example where HDL program 1 on computing node 1 and HDL program 2 on computing node 2 are compiled.
[0084] The programmer may create an external memory mapping table 1, an external storage mapping table 1, and external communication information 1 for HDL program 1 on computing node 1. The programmer may also create an external memory mapping table 2, an external storage mapping table 2, and external communication information 2 for HDL program 2 on computing node 2.
[0085] In the above example, the composite information generation unit may create a composite external memory mapping table from external memory mapping table 1 and external memory mapping table 2.
[0086] For example, if external memory mapping table 1 uses address spaces 1 to 100 and external memory mapping table 2 also uses address spaces 1 to 100, the synthesized external memory mapping table may be generated to use address spaces 1 to 200. Here, the table example is just one example, and other mapping table synthesis techniques may be used.
[0087] Similarly, in the above example, the synthesized information generation unit may create a synthesized external storage mapping table from external storage mapping table 1 and external storage mapping table 2.
[0088] Similarly, in the above example, the synthesized information generation unit may generate a synthesized communication information module from external communication information 1 and external communication information 2. External communication information 1 may include the bit width of the communication and frequency information when the HDL program 1 communicates with the outside.
[0089] Furthermore, if the first computing node and the second computing node have a serial output relationship, the composite information generation unit may generate an external communication module based on the output information of resource information related to the second computing node.
[0090] Furthermore, if the first computing node and the second computing node are not in a series output relationship, the combined information generation unit may generate an external communication module that combines the first output information of the first resource information relating to the first computing node and the second output information of the second resource information relating to the second computing node.
[0091] The external communication module to be synthesized may be a module that outputs data without reducing the latency that the first and second computing nodes would experience if they communicated with the outside world independently.
[0092] For example, the external communication module may include a buffer 1 capable of storing at least one unit of packets of the external output of HDL program 1, with a total number of bits equal to the sum of the number of bits of the external output of HDL program 1 and the number of bits of the output of HDL program 2, and a buffer 2 capable of storing at least one unit of packets of the external output of HDL program 2, and may be capable of checking buffers 1 and 2 alternately and outputting to the outside any buffer that has stored at least one unit of packets.
[0093] Here, a single packet may be, for example, a single packet in Ethernet communication when a reconfigurable device communicates with other reconfigurable devices or information processing devices via Ethernet.
[0094] The above-mentioned synthetic communication information module, synthetic external memory mapping table, synthetic external storage mapping table, and / or inter-frequency communication module may be utilized by an example of an external compilation function. For example, the compilation function may generate a bitstream that implements these using HDL program 1 for the first computing node, HDL program 2 for the second computing node, the synthetic communication information module, the synthetic external memory mapping table, the synthetic external storage mapping table, and / or the inter-frequency communication module.
[0095] Step 3 The identification unit may identify the executable hardware resources for the combined computing node when multiple computing nodes are combined.
[0096] The identification unit may include a determination unit and a selection unit. The identification process may include a determination process and / or a selection process. The identification unit does not have to include a selection unit. For example, the hardware resources that were initially deemed executable as described below may be used.
[0097] The determination unit may compare the soft-merged synthetic resource information with the resource information in the RFD-RDB to determine whether the hardware resources corresponding to the resource information in the RFD-RDB are capable of running the hard-merged computing node corresponding to the soft-merged synthetic resource information.
[0098] The determination unit may compare at least one attribute in the soft-merged resource information with the corresponding attribute in the soft-merged resource information of a specific hardware resource in the RFD-RDB to determine whether the latter can perform the former.
[0099] Here, if one attribute is information relating to the arithmetic unit (or information relating to a lower-level concept thereof), then the corresponding attribute may be information relating to the arithmetic unit (or information relating to a corresponding lower-level concept thereof). Also, if one attribute is information relating to the memory device (or information relating to a lower-level concept thereof), then the corresponding attribute may be information relating to the memory device (or information relating to a corresponding lower-level concept thereof). If one attribute is information relating to the communication device (or information relating to a lower-level concept thereof), then the corresponding attribute may be information relating to the communication device (or information relating to a corresponding lower-level concept thereof).
[0100] Furthermore, the determination unit may compare the capability of an attribute in the hardware resource with an attribute in the soft-merged resource information and determine that it is executable if the capability of the attribute corresponding to that attribute is high, and not executable if the capability of the hardware resource is low.
[0101] More specifically, the determination unit may determine that it is feasible if, for example, one attribute is the number of logic blocks, the latter is a higher value than the former for the corresponding attribute, the number of logic blocks.
[0102] Similarly, the determination unit may determine that it is feasible if, for example, one of the attributes is the number of DSPs, the number of bits in the registers, or the number of digits in the DSPs, the latter of the corresponding attributes (number of DSPs, number of bits in the registers, and number of digits in the DSPs) is a higher value than the former.
[0103] On the other hand, if one attribute is the clock frequency, the determination unit may determine that it is feasible if the corresponding attribute, the clock frequency, is a lower value than the former.
[0104] Furthermore, the determination unit may determine that execution is possible if, for example, one of the attributes is the number of internal memory units, the number of shared channels to external memory, or the number of dedicated channels to external memory, the latter of the corresponding attributes (number of internal memory units, number of shared channels to external memory, or number of dedicated channels to external memory) is higher than the former.
[0105] Furthermore, the determination unit may, for example, determine if the attribute and its corresponding attribute are of the type of storage device based on predetermined information or dynamically applied processing.
[0106] Furthermore, if, for example, one attribute is communication speed or number of communication bits, the determination unit may determine that it is feasible if the latter is a higher value than the former for the corresponding attribute, which is the communication speed or number of communication bits.
[0107] Furthermore, the determination unit may compare all attributes in the soft-merged resource information with the corresponding attributes in the soft-merged resource information of a specific hardware resource in the RFD-RDB, and determine whether the latter can execute the former for all attributes. If it can execute all attributes, it may determine that the soft-merged computing node can execute on a specific hardware resource in the RFD-RDB.
[0108] Furthermore, the determination unit may compare at least one attribute in the merged soft resource information with the attribute corresponding to that attribute in a specific hardware resource within the RFD-RDB. If the latter is not capable of executing the former, the determination unit may determine that the computing node corresponding to the merged soft resource information cannot be executed by the specific hardware resource. In this case, the determination unit does not need to compare one or more other attributes in the merged soft resource information other than the aforementioned attribute.
[0109] <Judgment part> Furthermore, as an example of a specific process, the determination may be made using the following process.
[0110] Step 311 One example system retrieves at least one attribute from the soft-merged resource information. Here, the example system may retrieve such an attribute by accessing an HDL-RDB.
[0111] Step 312 One example system retrieves the corresponding attribute in the soft-merged resource information for a specific hardware resource within the RFD-RDB.
[0112] Step 313 One example system compares the aforementioned resource information with its corresponding attribute to determine whether the latter can perform the former.
[0113] One example system may similarly compare and determine other attributes in the soft-merged resource information in step 311 described above, as well as attributes in the corresponding hardware resource described above.
[0114] One example system may compare and determine all attributes in the soft-merged resource information described in step 311 above with the attributes in the corresponding hardware resource described above, and only if it is determined that all attributes in the soft-merged resource information are executable, it may determine that the corresponding hardware resource is capable of executing the synthesized compute node based on the soft-merged resource information.
[0115] One example system may compare and determine resource information relating to a soft resource-merged computing node, generated by another information processing device, with resource information relating to a single hardware resource.
[0116] <Selection Department> The selection unit may have a function to select the most efficient hardware resources from among the available hardware resources.
[0117] Step 321 One example system retrieves at least one attribute from the soft-merged resource information. Here, the example system may retrieve such an attribute by accessing an HDL-RDB.
[0118] Step 322 One example system retrieves the corresponding attribute in the soft-merged resource information for a specific hardware resource within the RFD-RDB.
[0119] Step 323 One example system generates usage information based on the aforementioned resource information and its corresponding attributes.
[0120] In the above description, the processing of the determination unit and the processing of the selection unit were explained separately and processed independently, but these may be processed together. For example, in step 313, one example system may execute step 323 and store usage information associated with the one resource information and its corresponding attribute that were compared.
[0121] Usage information may be information indicating the relationship between at least one attribute in soft resource merged resource information and the corresponding attribute in the soft resource merged resource information of a specific hardware resource in the RFD-RDB, or may include information indicating such a relationship.
[0122] For example, if one attribute is the number of logic blocks, the usage information is information showing the relationship between the number of logic blocks related to one attribute and the corresponding number of logic blocks, or may include information showing such a relationship. For example, if the number of logic blocks related to one attribute is 75 and the corresponding number of logic blocks is 100, the usage information may be 3 / 4, which is the ratio obtained by dividing one attribute by the corresponding attribute as the proportion of hardware resources used. Alternatively, the usage information may be a rate obtained by subtracting the ratio obtained by dividing one attribute by the corresponding attribute from 1, in which case it may be 1-3 / 4=1 / 4.
[0123] Similarly, if an attribute is the number of DSPs, the number of bits in a register, the number of digits in a DSP, or the clock frequency, the usage information may be information that shows the relationship between these values and the values of the corresponding attributes, or may include information that shows such a relationship.
[0124] Similarly, if one attribute is the number of internal memory, the number of shared channels to external memory, or the number of dedicated channels to external memory, then the usage information is information that shows the relationship between these values and the values of the corresponding attributes, or may include information that shows such a relationship.
[0125] Furthermore, the usage information may be information that shows the relationship between soft resource merged resource information and resource information for a specific hardware resource within the RFD-RDB, or may include information that shows such a relationship.
[0126] Furthermore, one example system may generate usage information using information that shows the relationships between each attribute in the soft-merged resource information and the corresponding attributes in the soft-merged resource information for a specific hardware resource in the RFD-RDB. For example, if the soft-merged resource information includes the number of logic blocks, the number of DSPs, the number of internal memory, and the number of external memory channels, and the values of each attribute are α for the number of logic blocks, β for the number of DSPs, γ for the number of internal memory, and Δ for the number of external memory channels, based on the corresponding resource information for the identified hardware resource, then the usage information is a number generated by a calculation formula f(α, β, γ, Δ) using a function f (i.e., the arguments α, β, γ, and Δ are applied to the function f), or may include such a number. Such a calculation formula may be a weighted calculation formula.
[0127] Step 324 The selection unit may select the most efficient hardware resources from among the available hardware resources based on the usage information.
[0128] For example, the selection unit may, with respect to the merged resource information of soft resources, select a specific hardware resource from among multiple usage information for a particular hardware resource within each RFD-RDB that is more efficient than others. The highly efficient usage information may also be the most efficient usage information. Highly efficient usage information may be one in which the utilization efficiency of the hardware resource is higher than others, for example, one in which the proportion of hardware resource utilization in the usage information is higher than others, or one in which the ratio of hardware resource utilization subtracted from 1 is lower than others. Note that if the utilization efficiency of the hardware resource is extremely high (for example, 95% or more), the compilation execution time may be prolonged or compilation may fail, so it is advisable to avoid extremely high utilization efficiency. For example, the utilization efficiency may be 30% to 95%, 45% to 90%, 60% to 85%, or 70% to 80%. Furthermore, utilization efficiency may be less than 95%, less than 90%, less than 85%, or less than 80%, etc.
[0129] Furthermore, for example, if, with respect to specific soft-merged resource information, the usage information for a hardware resource α in the RFD-RDB is αα, the usage information for a hardware resource β in the RFD-RDB is ββ, and the usage information for a hardware resource γ in the RFD-RDB is γγ, and among αα, ββ, and γγ, αα is the usage information that indicates the highest utilization efficiency, the selection unit may select hardware resource α.
[0130] One example system may select hardware resources using utilization information based on the relationship between resource information related to a soft resource-merged computing node, generated by another information processing device, and resource information related to a single hardware resource.
[0131] The selection unit may make selections based solely on the usage information described above, or it may make selections in combination with other elemental information besides usage information. Other elemental information may include, for example, information relating to the user and / or information relating to the hardware resources used by the user, and the selection may be performed automatically or in response to user instructions. If performed automatically, the selection may be made according to a pre-set priority order. If the selection is made in response to user instructions, the user may be shown one or more candidates that they can select, and the selection may be made according to the user's instructions.
[0132] Furthermore, information relating to the user may include information relating to the user's membership and / or information relating to the user's membership period.
[0133] As an example of using information related to a user's membership period, one example system may identify hardware resources using the length of the user's membership period. For example, one example system may allocate one of the hardware resources intended for long-term use if the remaining length of the user's membership period is longer than a predetermined period. In this case, the administrator of the example system has the advantage of being able to efficiently perform maintenance on the hardware resources. Alternatively, one example system may identify hardware resources using the remaining length of the user's membership period and the hardware replacement schedule. For example, one example system may not allocate any hardware resources with a remaining period of less than a predetermined period until their replacement if the remaining length of the user's membership period is longer than a predetermined period. Alternatively, one example system may determine hardware resources by targeting hardware resources with a remaining period of longer than the first predetermined period until their next replacement if the remaining length of the user's membership period is a first predetermined period. In such a case, if the user's membership period is not extended, there is the advantage of being able to efficiently perform maintenance on the hardware resources. Furthermore, information relating to the membership period may include the remaining period during which hardware resources can be used, and / or the total or continuous period from the time the user joined a system as a member, for example.
[0134] Furthermore, information relating to a user's membership may include information relating to the membership course or status. For example, one example system may allocate one of the specified hardware resources if the user's membership course and / or membership status is specified. Such specified hardware resources may be more stable and robust than other hardware resources. In this case, users who are specific members or on a specified course have the advantage of being able to use higher quality hardware resources. Note that information relating to a member's course or status may be something the user selected when using the example system. For example, it may be obtained through a contract that stipulates the use of a certain amount of resource information.
[0135] Furthermore, information relating to the hardware resources used by the user may include one or more hardware resources that the user is currently using at the time of the above selection. For example, one example system may include, among the actual hardware resources that match the resource information selected by the user, 1) hardware resources within the same FPGA as the FPGA containing one or more hardware resources currently used by the user, 2) hardware resources within the same local area network or bus as one or more hardware resources currently used by the user, and / or 3) resources that are close in distance to one or more hardware resources currently used by the user.
[0136] In the case of 1) above, since it is within the same FPGA, there is an advantage in that it can support the provision of hardware resources that enable more efficient communication by allowing users to utilize hardware resources within the same FPGA as hardware resources for the same or related applications.
[0137] In the case of 2) above, even within the same local area network or bus as in the former, there is an advantage in that it can support the provision of hardware resources that enable more efficient communication because it is within the same network or bus. The identity of the local area network or bus does not need to be such that it reduces the processing required for communication across networks, and it can be at any layer.
[0138] Furthermore, the above-mentioned 2) may be a virtual local network. In this case, although the physical distance may not be shorter than the predetermined distance, and the distance over which information is transmitted may not be shorter than the predetermined distance, it has the advantage of high security.
[0139] Furthermore, in case 3) above, the distance may be the physical distance as described above, or the distance related to the communication of information. By selecting a real hardware resource that matches the resource information selected by the user and is close in distance to one or more hardware resources currently being used by the user, it is possible to support the provision of hardware resources that enable more efficient communication compared to others.
[0140] The selection unit may be executed automatically or in response to user instructions, using the usage information, user information, and / or information regarding the hardware resources used by the user, which are used as selection conditions as described above. If performed automatically, selection may be made using pre-set selection criteria. If selection is made in response to user instructions, the system may display one or more candidates that the user can select and make a selection according to the user's instructions. When selection is made in response to user instructions, an example system may present information about the hardware resources to be selected to the user. For example, information about the hardware resources may be displayed on a display device that is part of the example system or outside the example system connected to the example system. Here, the information about the hardware resources may include resource information, usage information, user information, and / or information regarding the hardware resources used by the user. These displays have the advantage that users can understand the information about the hardware resources being selected and make a selection.
[0141] Step 4 One example system may compile, or have compiled, the multiple computing nodes to be synthesized, along with the information used for the soft merge described above, so that they can be written to the selected hardware resources, thereby generating a bitstream.
[0142] Step 5 One example system may write the compiled bitstream to a specified hardware resource.
[0143] Step 6 One example system may register the resource information that was successfully written to the database if the write operation is successful.
[0144] Furthermore, one example system may provide feedback to the user regarding resource information that has been successfully written. The manner in which this feedback is provided to the user can vary. For example, the information regarding the resource information that has been successfully written may be displayed on a display device, sent to the user via email, or stored in a designated location accessible to the user.
[0145] One example of a reconfigurable device may be identified using soft resource merged synthetic resource information. Such a reconfigurable device has the advantage of potentially reducing overhead between computing nodes.
[0146] One example of a reconfigurable device may be one in which compute nodes are written using soft resource merged synthetic resource information. Such a reconfigurable device has the advantage of potentially reducing overhead between compute nodes.
[0147] One example of a reconfigurable device may be one that is identified using soft-resource merged synthetic resource information, and whose compute nodes are written using soft-resource merged synthetic resource information. Such a reconfigurable device has the advantage of potentially reducing overhead between compute nodes.
[0148] 3. Embodiment 2 The system of this example according to Embodiment 2 is a technique for identifying targets to be soft-merged from 2 or more N (where N is a natural number) computing nodes or target HDL programs corresponding thereto, corresponding to M (where M is a natural number less than N) computing nodes. Some or all of the computing nodes to be soft-merged may be determined automatically.
[0149] When there are many computing nodes, users may be unsure which ones to combine. In particular, if multiple computing nodes can be combined and written to a single hardware resource, the overhead between those multiple computing nodes can potentially be reduced. However, if there is little or no input / output relationship between the multiple computing nodes written to a single hardware resource, the overhead reduction may not be effective. Furthermore, even if one attempts to soft merge multiple computing nodes, there may not be a hardware resource with sufficient resources to compile and write the target HDL program that has been soft-merged (for example, if the hardware resources required to write the combined computing nodes exceed the resources of a single reconfigurable device). Therefore, the inventors of this invention focused on the challenge of how to select the computing nodes to be soft-merged.
[0150] The following describes an example of a technique for selecting which computing nodes to soft merge in a group of computing nodes containing multiple computing nodes (here, a group of computing nodes containing one or more computing nodes may be referred to as a "group of computing nodes").
[0151] Below, an example of processing operation in an example system will be explained using Figure 7.
[0152] Step 211 Step 701 analyzes the input / output data flows between some or all of the computing nodes in computing node group A and calculates the length of each data flow column between some or all of the computing nodes in computing node group A. The length of a data flow column may be calculated for some or all of the set families of data flow columns in computing node group A. The length of a data flow column may be the number of computing nodes included in the data flow column. The length of a data flow column may be the number of computing nodes in the longest non-loop data flow column included in the data flow column.
[0153] Figure 6 shows a data flow sequence based on compute nodes and input / output paths between them. There are compute nodes 601 through 607, and the direction of the arrows between compute nodes indicates the input / output relationship from one compute node to another. For example, the arrow from compute node 601 to compute node 603 indicates that the output of compute node 601 goes into compute node 603. Since compute node 603 receives arrows from compute nodes 601 and 602, it indicates that both the output of compute node 601 and the output of compute node 602 become inputs to compute node 603. Also, the arrow from compute node 604 points to compute nodes 605 and 607, indicating that the output of compute node 604 becomes an input to compute node 605 and input to 607. In this figure, the number of compute nodes included in data flow sequence 610A, which consists of compute nodes 601, 603 through 606, is 5, and the number of input / output paths between compute nodes is 4. Furthermore, the number of compute nodes included in data flow sequence 610B, which consists of compute nodes 602, 603, 604, and 607, is 4, and the number of input / output paths between compute nodes is 3. The length of the data flow sequence may be the number of compute nodes included in the data flow sequence or the number of input / output paths included in the data flow sequence. Thus, for example, if a data flow sequence consists of compute nodes N1, N2, N3, N4, and N5 in that order, the length of the computed data flow sequence may be the length of data flow 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 order of the data flow columns does not need to be skipped (for example, if there are no intermediate steps, such as N1-N2-N4-N5, it does not need to be considered because, computationally, the N3 computation node is needed between N2 and N4).
[0154] Step 212 Within the computing node group A, identify a second data flow column whose length is longer than the length of the first data flow column (step 701).
[0155] For example, in this diagram, data flow column 610A is longer than data flow column 610B, so data flow column 610A is identified. Here, one example system may find the data flow with the longest data flow column length within the computing node group A.
[0156] Step 213 One example system may determine that compute nodes included in the second data flow column are to be merged (step 701).
[0157] Thus, when a system performs soft merging on a group of compute nodes with long data flow lengths, there is a technical advantage in that it can reduce the overhead associated with input / output between multiple compute nodes (which are written to different reconfigurable devices or each child PR region) (the overhead of communication between reconfigurable devices or PR regions).
[0158] The above process is just one example, and the example system may use various different technologies to automatically identify some or all of the computing nodes to be soft-merged within the computing node group. The example system may use various technologies to automatically identify some or all of the computing nodes to be soft-merged by utilizing the length of the data flow columns within the computing node group. The example system may use various technologies to automatically identify some or all of the computing nodes to be soft-merged by utilizing the fact that the length of data flow column A within the computing node group is longer than the length of data flow column B within the computing node group.
[0159] One example system includes a specification unit that identifies the first length of the input / output path of the first group of computing nodes within the computing node group A, and the second length of the input / output path of the second group of computing nodes within the computing node group A, for a computing node group A consisting of multiple computing nodes. A determination unit that determines the first group of computing nodes or the second group of computing nodes to be merged based on the first length and the second length, It may be a system that includes this.
[0160] In this application, determining that multiple computing nodes are subject to merging may include determining that multiple computing nodes are subject to soft resource merging, determining that multiple computing nodes are subject to soft merging, and / or determining that multiple computing nodes are subject to hard merging.
[0161] Furthermore, a single computing node may be a higher-level concept than one or more target HDL programs.
[0162] The length of the input / output path of the computing node group may be the largest number of computing nodes on the loop-free input / output path between each computing node in the computing node group.
[0163] The length of the input / output path of a group of computing nodes may be the longest input / output path without loops among the input / output paths (data flow analysis) between the computing nodes of the group of computing nodes.
[0164] Furthermore, the length of the input / output path of the computing node group can be considered using graph theory, and it may correspond to the maximum number of vertices in a path of a directed graph (where each vertex is visited at most once), where each computing node in the computing node group is mapped to a vertex of a directed graph, and the input / output relationships between computing nodes are mapped to edges of a directed graph.
[0165] The following example describes a group of compute nodes that will be hard merged after a system has calculated resource information for some or all of the data flow columns within that group of compute nodes.
[0166] Furthermore, one example system may use information on bandwidth between computing nodes, in addition to the length of the data flow sequence, to identify the group of computing nodes that should be soft-merged.
[0167] This focuses on the fact that, for example, when comparing soft merging of compute nodes 1 and 2 when their bandwidth is 1 GBPS, the latter method offers a greater reduction in communication overhead between compute nodes than the former when their bandwidth is 100 GBPS. In this case, the reduction in communication overhead is achieved from a different perspective than the length of the data flow column mentioned above.
[0168] Below, an example of processing operation in an example system will be explained using Figure 8.
[0169] Step 221 For a group of computing nodes A, the input / output data flows between some or all of the computing nodes included in the group of computing nodes A are analyzed, and the sum of the data flow columns is calculated using the bandwidth between computing nodes within each data flow column as a weight (step 801). The data flow columns may be the same as those described in step 211 above.
[0170] Figure 9 shows the computing nodes, the data flow sequence based on the input / output paths between computing nodes, and the bandwidth between each computing node. The difference between this figure and the previous one is that the arrows between computing nodes are labeled with bandwidth information. These can be represented as a weighted directed graph when the data flow sequence is shown graphically.
[0171] Step 222 Within the computing node group A, identify the second data flow column whose total weighting is longer than the total weighting of the first data flow column A (step 802).
[0172] For example, in this figure, the sum of the weights for data flow column 610A (31) is greater than the sum of the weights for data flow column 610B (29), thus identifying data flow column 610A. Alternatively, one example system could find the data flow with the largest sum of weights for its data flow columns within the computing node group A.
[0173] Step 223 For example, a system may be determined to be subject to merging for compute nodes included in the second data flow column (step 803).
[0174] Thus, when a system performs soft merging on a group of compute nodes with a large sum of weighted data flow columns, there is a technical advantage in that it can reduce the overhead associated with input / output between multiple compute nodes (which are written to different reconfigurable devices or each child PR region) (the overhead of communication between reconfigurable devices or PR regions).
[0175] One example system may include a selection unit that, from a first group of computing nodes consisting of a plurality of computing nodes including a first computing node and a second computing node, selects a subset of the first group of computing nodes, which includes the first and second computing nodes, using information relating to input / output paths between computing nodes in the group of computing nodes.
[0176] The information relating 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, information on the weighting of the input / output paths between the computing nodes in the computing node group, and / or information on the sum of the weighting of the input / output paths between the computing nodes in the computing node group.
[0177] Furthermore, the following example relates to a technique for selecting compute nodes to be soft-merged from the perspective of hardware resources. That is, for soft-merged compute nodes to be written to hardware resources, soft-merged compute nodes must be executable on the hardware resources. Here, from the perspective of hardware resources, it is preferable to identify the compute nodes to be soft-merged so that they are within the resource information corresponding to each hardware resource unit.
[0178] Below, an example of processing operation in an example system will be explained using Figure 10.
[0179] Step 231 One example system analyzes the input / output data flow of computing nodes within computing node group A (step 1001).
[0180] Step 232 One example system stores resource information obtained by soft-merging the computing nodes used in each data flow, in association with the length of each data flow within computing node group A (step 1002). For example, if a data flow sequence consists of computing nodes N1, N2, N3, N4, and N5 in that order, the system stores information identifying each data flow sequence, 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., in association with the length of the corresponding data flow sequence and the composite resource information obtained when soft resource merging is performed for the corresponding data flow sequence. Note that the length of the corresponding data flow sequence is not required. This is because the composite resource information provides the information needed to identify the hardware resources required for each data flow sequence. A database that stores synthetic resource information in association with some or all of such a family of data flow columns is sometimes called a data flow column resource database (DFL-RDB).
[0181] Figure 11 shows an example of a part of the DFL-RDB in Figure 6 (but is not limited to this configuration). In this figure, ID1 corresponds to data flow column 610A, which consists of compute nodes 601, 603 to 606, and ID10 corresponds to data flow column 610B, which consists of compute nodes 602, 603, 604, and 607. Data flow columns 610A and 610B can also consider other sets of compute nodes in the compute node group (assuming the configuration of the data flow columns). For example, ID2 is a data flow column consisting of compute nodes 601, 603 to 605, and ID3 is a data flow column consisting of compute nodes 603 to 606. Associated synthetic resource information may be stored in the DFL-RDB corresponding to each of these data flow columns.
[0182] Step 233 One example system may determine which computing nodes are to be merged using the information of each composite resource in the DFL-RDB and the information of each resource in the RFD-RDB (step 1003).
[0183] For example, one system may identify a compute node for a data flow sequence for one of the composite resource pieces in the DFL-RDB that is executable using resource information for one hardware resource in the RFD-RDB. In this case, there is an advantage in identifying the compute node for the data flow sequence that is executable using one hardware resource in the RFD-RDB, thereby reducing the overhead between input and output data in the compute node within that data flow sequence. In this case, the above-mentioned executables may be identified by a computational process comparing each combination of resource information for one hardware resource in the RFD-RDB and one of the composite resource pieces in the DFL-RDB.
[0184] In particular, one example system may identify a compute node related to the data flow column for one of the composite resource pieces in the DFL-RDB, which can be executed by a single reconfigurable device among 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 in being able to use the hardware resources within the reconfigurable device more efficiently.
[0185] Furthermore, one example system may identify a compute node for a data flow column of one of the composite resource pieces in the DFL-RDB, which can be executed by a single PR region within a single reconfigurable device among the hardware resources in the RFD-RDB. In this case, since multiple PR regions are not configured within the configurable device, the processing overhead for multiple PR regions can be reduced, resulting in the advantage of more efficient utilization of hardware resources.
[0186] One example of a reconfigurable device may be one on which a bitstream relating to a compute node, identified using information about the input / output paths between compute nodes, is written. Such a reconfigurable device has the advantage of potentially reducing the overhead between compute nodes during processing.
[0187] One example of a reconfigurable device may be one on which a bitstream relating to a specified compute node is written using the resource information of the reconfigurable device or the resource information of the PR region within the reconfigurable device. Such a reconfigurable device has the advantage of potentially reducing the overhead between compute nodes during processing.
[0188] One example of a reconfigurable device may be one in which a bitstream based on multiple compute nodes corresponding to soft resource merged synthetic resource information is written to a single PR region within the reconfigurable device. Such a reconfigurable device has the advantage of potentially reducing the overhead between compute nodes during processing.
[0189] One example of a reconfigurable device may be one on which a bitstream based on multiple compute nodes identified using DFL-RDB has been written. Such a reconfigurable device has the advantage of potentially reducing the overhead between compute nodes during processing.
[0190] 4. Embodiment 3 The system of this example according to Embodiment 3 is a technology that assists in changing 2 or more N computing nodes to M computing nodes (where N and M are natural numbers and M is less than N). Some or all of the computing nodes to be soft-merged may be determined automatically.
[0191] The system described in this example provides a different method from Embodiment 2 for selecting the computing nodes to be soft-merged. When multiple computing nodes can be soft-merged and written to a single hardware resource, it is possible to abstractly reduce the overhead between such multiple computing nodes, but it is unclear to what extent this overhead can actually be reduced. Therefore, the inventors of this application present below a technique for selecting the computing nodes to be combined by focusing on information about the actual amount of communication occurring between such multiple computing nodes.
[0192] One example system may include a monitoring unit.
[0193] One example of a system monitoring unit may monitor each reconfigurable device based on information from the task manager written to each reconfigurable device.
[0194] The task manager written to each reconfigurable device may collect information related to the communication of the reconfigurable device to which the task manager is written and report it to the monitoring unit.
[0195] In one example, the monitoring unit of a system may obtain information relating to the communication of a reconfigurable device from a task manager written to one or more reconfigurable devices. Such communication information may be a unit of operation within the reconfigurable device, and such communication information may be associated with information (e.g., an ID) that indicates such a unit of operation. For example, if there are no PR regions within a reconfigurable device, the reconfigurable device may be treated as a unit of operation, and the information identifying such a reconfigurable device and the communication information may be associated, and the monitoring unit may obtain and store such information from the task manager. Also, for example, if a reconfigurable device contains one or more PR regions, each of such one or more PR regions may be treated as a unit of operation, and the information identifying such one or more PR regions and the corresponding communication information may be associated, and the monitoring unit may obtain and store such information from the task manager.
[0196] The Task Manager can be considered, for example, equivalent to the Element Manager (EM) in Network Functions Virtualization (NFV).
[0197] The Task Manager may continuously or periodically acquire information related to communication within each reconfigurable device.
[0198] Information relating to communication may include the number of communication bits, the number of communication cycles, the amount of communication, the communication frequency, the communication ratio, the communication charges, the number of communication bits per predetermined unit, the number of communication cycles per predetermined unit, the amount of communication per predetermined unit, the communication frequency per predetermined unit, the communication ratio per predetermined unit, the communication charges per predetermined unit, and / or statistical information based on some or all of these (sometimes referred to as "intercommunication information"). Furthermore, information relating to communication may include, for each communication in this intercommunication information, communication source information and communication destination information. Information relating to communication may include intercommunication information, communication source information for the communication in such intercommunication information, and communication destination information for the communication in such intercommunication information in relation to each other. The predetermined unit may be a predetermined time unit and / or a predetermined event unit, etc. Statistical information may include information obtained by applying processing such as sum, maximum, minimum, median, mode, midpoint, representative value, various averages, weighting calculations, and / or threshold calculations to each piece of information one or more times as appropriate.
[0199] The task manager may transmit information related to communication to the monitoring unit at predetermined intervals. The transmission timing may be periodic or when predetermined conditions are met. The predetermined conditions may include cases where the information related to communication exceeds a predetermined threshold. For example, this may include cases where the number of communication bits, number of communication cycles, communication volume, communication frequency, communication ratio, communication charges, number of communication bits per predetermined unit, number of communication cycles per predetermined unit, communication volume per predetermined unit, communication frequency per predetermined unit, communication ratio per predetermined unit, communication charges per predetermined unit, and / or statistical information based on some or all of these exceeds a predetermined threshold.
[0200] Figure 12 is an example disclosing a monitoring unit and a task manager stored in one or more reconfigurable devices. In this figure, the monitoring unit 010 in the example system 001 may acquire communication-related information from task manager 011A in reconfigurable device 002 and from task manager 011B in reconfigurable device 003. Task manager 011A may acquire communication-related information for PR regions 1 to 6. Task manager 011B may acquire communication-related information for PR regions 1 to 4.
[0201] Below, we will explain an example using the monitoring unit of a sample system, with reference to Figure 13. First, assume that each computing node in computing node group A has been written to a reconfigurable device and is in a state where it can perform calculations. Here, some or all of each computing node does not need to be soft-merged. Alternatively, some of each computing node may be soft-merged. In the latter case, it is conceivable that after some of the computing nodes have been soft-merged, the computing nodes to be soft-merged again may be selected.
[0202] Step 311 Each task manager in one or more reconfigurable devices transmits, directly or indirectly, information relating to communication about one or more units of operation within the reconfigurable device in which each task manager is implemented to a monitoring unit of an example system (step 1301).
[0203] Step 312 The monitoring unit of one example system may acquire information related to communication and perform statistical processing. The monitoring unit may generate statistical information using the communication information acquired from within the task manager (step 1302). The statistical information may include information obtained by applying processing such as sum, maximum, minimum, median, mode, midpoint, representative value, various mean values, weighting calculations, and / or threshold calculations to each piece of information one or more times as appropriate.
[0204] Step 313 One example system may use information relating to communication between computing nodes to determine which computing nodes are to be merged (step 1303).
[0205] For example, a system may, when the information relating to communication between a first computing node and a second computing node is higher than a predetermined threshold, process the first computing node and the second computing node as computing nodes to be soft-merged, process them as computing nodes to be soft-merged, and / or process them as computing nodes to be hard-merged.
[0206] Furthermore, in one example system, if a data flow sequence consists of computing nodes N1, N2, N3, N4, and N5 in that order, the system may include a database (which may be referred to as a Measured Information Database (MI-DB) in this application) that stores information relating to each data flow sequence, 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 relating to communication between computing nodes along the corresponding data flow sequence. Here, the information relating to communication between computing nodes along a data flow sequence may be information relating to communication corresponding to a data flow sequence, calculated using information relating to communication between each pair of computing nodes along that data flow sequence. For example, if a data flow sequence is in the order N1, N2, and N3, the total information related to the communication of that data flow sequence may be the sum of the information related to the communication between N1 and N2, and the information related to the communication between N2 and N3. Furthermore, instead of such a sum, statistically processed information using the information related to the communication between N1 and N2, and the information related to the communication between N2 and N3 may also be used.
[0207] One example system is: A monitoring unit that acquires communication-related information from one or more reconfigurable devices, A processing unit that uses the information related to the aforementioned communication to perform soft resource merging, soft merging, and / or hard merging on multiple computing nodes relating to the information related to the aforementioned communication, It may be a system that includes these features.
[0208] The information relating to the aforementioned communication may, for example, be information relating to communication between a first PR region within a first reconfigurable device and a second PR region within the first reconfigurable device that is different from the first PR region. In this case, there is an advantage in being able to use information between different PR regions within the same reconfigurable device.
[0209] The information relating to the aforementioned communication may, for example, be information relating 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 in being able to use information between different PR regions in different reconfigurable devices.
[0210] The information relating to the aforementioned communication may be transmitted by a task manager written within the one or more reconfigurable devices. The task manager may be written within the reconfigurable device and may have the function of transmitting and / or receiving communications with an information processing device outside the reconfigurable device. The task manager may also have the function of acquiring information relating to communications between one or more PR regions written within the reconfigurable device in which the task manager is written and an information processing device outside the reconfigurable device.
[0211] As mentioned above, one example system uses communication-related information to identify targets for soft merging, which has the advantage of potentially reducing overhead by being more in line with actual communication conditions. In particular, if the communication-related information used is information from when the target HDL program is actually written to a reconfigurable device and executed, it has the advantage of being able to identify targets for hard merging based on real-world information. Furthermore, the communication-related information may also be obtained through simulation, in which case there is the advantage of potentially reducing overhead within the scope of the information obtained through simulation.
[0212] One example of a reconfigurable device may be one on which a bitstream based on multiple computing nodes identified based on communication information obtained by the monitoring unit is written. Such a reconfigurable device has the advantage of potentially reducing the overhead between computing nodes during processing.
[0213] One example of a reconfigurable device may be one on which a bitstream based on multiple compute nodes identified using MI-RDB has been written. Such a reconfigurable device has the advantage of potentially reducing the overhead between compute nodes during processing.
[0214] 5. Embodiment 4 The system of this example according to Embodiment 4 is a technology that assists in changing 2 or more N computing nodes to M computing nodes (where N and M are natural numbers and M is less than N). Some or all of the computing nodes to be soft-merged may be determined automatically.
[0215] One example system may include some or all of the functions of the system according to Embodiment 2 and some or all of the functions of the system according to Embodiment 3.
[0216] For example, a part or all of the DFL-RDB in the system according to Embodiment 2 and a part or all of the MI-DB in the system according to Embodiment 3 may be stored in association with the corresponding data flow columns (in this application, such a database may also be called a Measured Information Resource Database (MI-RDB), and a part or all of the computing nodes constituting a data flow column may be determined to be merged using the composite resource information when the computing nodes constituting the data flow column are soft-merged for a single data flow column and the information relating to communication between the computing nodes).
[0217] As a concrete example of MI-RDB, if a data flow sequence consists of compute nodes N1, N2, N3, N4, and N5 in that order, the database may store information that identifies each data flow sequence, 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., combined resource information obtained by soft merging the compute nodes that constitute the corresponding data flow sequence, and information based on information related to communication between compute nodes along the corresponding data flow sequence. For example, Figure 14 is an example of such an MI-RDB.
[0218] As an example of using such MI-RDB, the system in this example may identify one or more data flow sequences writable to a single hardware resource based on a comparison between the single hardware resource and the composite resource information in the MI-RDB, and use the information relating to the communication of such one or more data flow sequences to determine which compute nodes are to be merged.
[0219] One example of a reconfigurable device may be one on which a bitstream based on multiple compute nodes identified using MI-RDB has been written. Such a reconfigurable device has the advantage of potentially reducing the overhead between compute nodes during processing.
[0220] 6. Embodiment 5 The system in this example, according to Embodiment 5, is a technology that assists in changing 2 or more N computing nodes to M computing nodes (where N and M are natural numbers, and M is less than N). Furthermore, this example system includes some manual components.
[0221] One example of such a system could be a technology that provides users with information regarding the selection of soft merges.
[0222] Figure 11 illustrates the background of an example system. This figure shows data flow sequence 100A, composed of computing nodes 112A, 113A, and 114A, and data flow sequence 100B, composed of computing nodes 112B, 113B, 114B, and 115B. Now, consider the case where data flow sequence 100A is hard merged, but data flow sequence 100B is not. If there is output from data flow sequence 100A but no output from data flow sequence 100B, computing node 116 cannot perform calculations, and if computing node 116 waits for output from data flow sequence 100B, the possibility of reducing overhead by hard merging only data flow sequence 100A may decrease. In such a case, if data flow sequence 100A is hard merged but data flow sequence 100B is not, the significance of hard merging data flow sequence 100A may be low.
[0223] For example, one example system may perform data flow analysis on a group of computing nodes, display the data flow sequence on a display device, and illustrate the candidate computing nodes that will be soft-merged. Figure 15 shows an example of a part of the display screen that one example system displays to the user. In this case, the user viewing the display device can understand the position of the computing nodes that will be soft-merged within the overall data flow sequence, and has the advantage of being able to understand, for example, whether only the computing nodes of one data flow sequence in a data flow sequence where parallel computing is performed will be soft-merged, and whether there are data flow sequences in the parallel computing that will not be soft-merged.
[0224] Additionally, or alternatively, the example system may display information generated during soft resource merging on a display device so that users can understand it. For example, the example system may display resource information relating to the compute nodes being soft-merged, and / or the composite resource information after soft resource merging, on a display device. In this case, users have the advantage of being able to understand the resource information before and after the soft resource merging.
[0225] Furthermore, one example system may display on a display device a comparison of resource information related to the computing nodes that undergo soft resource merging and the composite resource information after the soft resource merging. Such comparison information may be resource information, or it may be corresponding information for one attribute of the resource information. In this case, there is an advantage that the user can easily understand the resource information for the corresponding attribute before and after the soft resource merging. For example, if the resource information for two computing nodes that undergo soft resource merging has logic block counts of A1 and A2 respectively, and the number of blocks in the composite resource information after the soft resource merging is A3, then A3 may be displayed on the display device in association with A1 and A2. Alternatively, for example, if the resource information for two computing nodes that undergo soft resource merging has frequencies of B1 and B2 respectively, and the frequency of the composite resource information after the soft resource merging is B3, then B3 may be displayed on the display device in association with B1 and B2. In this case, if the frequency of B2 is greater than that of B1, and the smaller frequency is used as the composite resource information, B3 will be the same as B1. In this case, B3, which has a frequency smaller than B2, may be highlighted on the display device. Thus, if the hardware functionality deteriorates after soft resource merging compared to before soft resource merging, the deteriorated portion may be highlighted. In this case, the user has the advantage of being able to easily understand that the functionality deteriorates due to soft merging.
[0226] Although the above explanation described the case where the information is applied to low frequencies, the composite resource information when soft resources are merged may include multiple different frequencies, and is not limited to this case.
[0227] Furthermore, one example system may display on a display device a comparison between resource information relating to a computing node that is to be soft-merged or hard-merged and resource information of the corresponding hardware resource that is to be written to. Such comparison information may be resource information, or it may be corresponding information for one attribute of the resource information. For example, if the number of internal memory resources relating to a computing node that is to be soft-merged or hard-merged is A1, and the resource information of the corresponding hardware resource that is to be written to is A2, then A1 and A2 may be displayed on the display device in comparison.
[0228] Furthermore, one example system may compare and display on a display device the resource information relating to the computing node being soft-merged or hard-merged with the resource information of one or more candidate hardware resources to be written. Such compared information may be resource information, or it may be corresponding information for one attribute of the resource information. In this case, one example system may also display on a display device information showing the relationship between the resource information relating to the computing node being soft-merged or hard-merged and the resource information of one or more candidate hardware resources to be written, for example, usage information. For example, if the number of bits in the register of the resource information relating to the computing node being soft-merged or hard-merged is A1, the number of bits in the register of the resource information of one candidate hardware resource to be written is A2, the number of bits in the register of the resource information of another candidate hardware resource to be written is A3, and the number of bits in the register of the resource information of another candidate hardware resource to be written is A4, then usage information based on A1 and A2, usage information based on A1 and A3, and / or usage information based on A1 and A4 may be displayed on the display device. In this case, the user has the advantage of being able to understand the relationships between multiple potential hardware resources when data is written to them.
[0229] One example system may display some or all of the information regarding the process of determining which items to merge on a display device.
[0230] One example system may display the information generated during soft resource merging on a display device.
[0231] 7. Embodiment 6 The system in this example defines the timing of soft resource merge, soft merge, and / or hard merge.
[0232] One example system may be implemented together with any one of the embodiments 1 to 5 described above, or it may be implemented independently without any of the embodiments 1 to 5 described above being implemented.
[0233] Furthermore, one example system may include a monitoring unit as described in Embodiment 3. In this case, the monitoring unit may acquire information relating to communication with one or more reconfigurable devices.
[0234] Step 611 One example system determines whether certain conditions are met.
[0235] Step 612 One example system performs soft resource merging on multiple computing nodes that meet predetermined conditions.
[0236] Step 621 One example system determines whether certain conditions are met.
[0237] Step 622 One example system performs soft merging on multiple computing nodes that satisfy predetermined conditions.
[0238] Step 631 One example system determines whether certain conditions are met.
[0239] Step 632 One example system performs hard merge on multiple computing nodes that meet predetermined conditions.
[0240] The predetermined conditions may be conditions using the information related to the above-described communication. For example, the predetermined conditions may be when the information related to the communication exceeds a predetermined corresponding threshold value.
[0241] Also, the predetermined conditions may use the usage fee related to the reconfigurable device based on the information related to the communication. For example, in the case where a system of an example has a function of calculating the usage fee based on the information related to the communication of the reconfigurable device, the predetermined conditions may be satisfied when such usage fee exceeds a predetermined threshold value.
[0242] A system of an example a monitoring unit that acquires information related to communication from one or more reconfigurable devices, a determination unit that determines whether the information related to the communication satisfies a predetermined condition or does not satisfy a predetermined condition, a processing unit that performs soft resource merge, soft merge, and / or hard merge on a plurality of calculation nodes regarding the information related to the communication in accordance with the result of the determination; may be a system including.
[0243] The information related to the communication for which the satisfaction of the predetermined condition is determined may be, for example, information related to the 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 that information between different PR regions in the same reconfigurable device can be used.
[0244] The information related to the communication for which the satisfaction of the predetermined condition is determined 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 that information between different PR regions in different reconfigurable devices can be used.
[0245] The information related to the communication may be transmitted by a task manager written in the one or more reconfigurable devices. The task manager is written in a reconfigurable device and may have a function of communicating such as transmitting and / or receiving with an information processing device outside the reconfigurable device. Further, the task manager may have a function of acquiring information related to communication performed between one or more PR regions written in the reconfigurable device in which the task manager is written and an information processing device outside the reconfigurable device.
[0246] In one example system, for example, when the information related to communication between a first computing node and a second computing node is higher than a predetermined threshold, the first computing node and the second computing node may be processed as computing nodes to be soft resource merged, processed as computing nodes to be soft merged, and / or processed as computing nodes to be hard merged.
[0247] 8. Embodiment 7 The system according to Embodiment 7 is different from Embodiments 1 to 6 and efficiently performs processing by a reconfigurable device.
[0248] The system of this example 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 and the one or more program-variable devices may be a system capable of communicating information.
[0249] The following describes some specific examples of such systems.
[0250] Embodiment 7-1 One example system includes one or more reconfigurable devices and one or more programmable devices, wherein some or all of the one or more reconfigurable devices and the one or more programmable devices are a system capable of communicating information. The one or more reconfigurable devices are In processing packets obtained from outside the one or more reconfigurable devices, a process is performed to determine whether the source of the packet is a predetermined source and / or whether the destination of the packet is a predetermined destination. In response to the determination process, if the source of the packet is a predetermined source and / or the destination of the packet is a predetermined destination, the packet is transmitted to the one or more programmable devices; if the source of the packet is not a predetermined source and / or the destination of the packet is not a predetermined destination, the packet is not transmitted to the one or more programmable devices. The one or more programmable devices are a system that performs pattern matching processing within the packets.
[0251] The ability to communicate information means that it may be communication via a network. Furthermore, if the information is not to be sent to the one or more programmable devices, such packets may be sent to a third destination, or they may be discarded. An example of a function that can be realized by such a configuration is a firewall.
[0252] For example, as shown in Figure 16, the reconfigurable device 1601 acquires a packet from outside the reconfigurable device via the communication circuit 1600, and the reconfigurable device 1601 performs a determination process. If the source of the packet is a predetermined source and / or the destination of the packet is a predetermined destination, the reconfigurable device 1601 transmits the packet to one or more programmable devices 1602 via the communication line 1603, and the programmable devices 1602 may perform pattern matching processing. The communication line 1603 may be a general-purpose line or a dedicated line, and may be wireless or wired.
[0253] Since the pattern matching process for packet transmission and reception, such as determining the source and destination of packets, is not performed by the reconfigurable device, complex implementation is unnecessary. This offers the advantage of easier implementation while still benefiting from the faster processing provided by reconfigurable devices. Furthermore, since the processing that utilizes the packets before this is done is implemented by a programmable device, the entire system has the advantage of appropriately distributing the required tasks (source / destination determination and pattern matching).
[0254] Embodiment 7-2 One example system includes one or more reconfigurable devices and one or more programmable devices, wherein some or all of the one or more reconfigurable devices and the one or more programmable devices are a system capable of communicating information. The one or more reconfigurable devices perform processing of a first packet obtained from outside the one or more reconfigurable devices without using a second packet that precedes the first packet. The one or more programmable devices are a system that, in processing a first packet obtained from outside the one or more programmable devices, utilizes a second packet that precedes the first packet.
[0255] The one or more reconfigurable devices may acquire the first and second packets before the one or more programmable devices.
[0256] Furthermore, the one or more reconfigurable devices may transmit the first packet and the second packet to the one or more programmable devices.
[0257] The one or more reconfigurable devices may acquire the second packet before the first packet.
[0258] For example, as explained using Figure 16, the reconfigurable device 1601 receives the first and second packets from outside the reconfigurable device via the communication circuit 1600, the reconfigurable device 1601 processes the first packet without using the second packet preceding the first packet, transmits the first and second packets to one or more programmable devices 1602, and the programmable devices 1602 may process the first packet by using the second packet preceding the first packet.
[0259] Since processing that does not utilize the previous packet is not performed by the reconfigurable device, complex implementation (for example, implementation of processes that store and restore the previous packet) is unnecessary, and implementation becomes easier while benefiting from the faster processing speed provided by reconfigurable devices. Furthermore, since the processing that utilizes such previous packets is implemented by a programmable device, the entire system has the advantage of appropriately dividing the required tasks (processing that utilizes the previous packet and processing that does not) amongst itself.
[0260] Embodiment 7-3 One example of a system includes one or more reconfigurable devices and one or more programmable devices. A part or all of the one or more reconfigurable devices and the one or more programmable devices form a system capable of communicating information. In the determination process of packets acquired from outside the one or more reconfigurable devices, the one or more reconfigurable devices perform a process in which the positions and / or ranges to be referred to within the packets have been determined. In the process of processing packets acquired from outside the one or more programmable devices, the one or more programmable devices perform a process in which the positions and / or ranges to be referred to within the packets have not been determined.
[0261] For example, as described using FIG. 16, the reconfigurable device 1601 acquires a packet through the communication circuit 1600 from outside the reconfigurable device. The reconfigurable device 1601 performs a process in which the positions and / or ranges to be referred to within the packet have been determined, and transmits the first and second packets to the one or more programmable devices 1602. The programmable device 1602 may perform a process in which the positions and / or ranges to be referred to within the packet have not been determined.
[0262] Since the process in which the positions and / or ranges to be referred to within the packet have not been determined is not performed by the reconfigurable device, there is an advantage that complex implementation (for example, implementation of a process corresponding to such a change when the position to be referred to within the packet changes dynamically) is not required, and the implementation becomes easy while obtaining the benefit of speeding up the reconfigurable process. Also, by implementing the process using such previous packets by the programmable device, there is an advantage that the required processes can be appropriately allocated among the entire system.
[0263] Embodiment 7-4 One example system includes one or more reconfigurable devices and one or more programmable devices, wherein some or all of the one or more reconfigurable devices and the one or more programmable devices are a system capable of communicating information. The processing of packets obtained from outside the one or more reconfigurable devices is performed by a predetermined number of combinations of predetermined operations. The one or more programmable devices are a system in which processing of packets acquired from outside the one or more programmable devices involves processing that is outside of a predetermined set of operations or a combination of a number of predetermined operations that exceeds a predetermined number.
[0264] For example, as explained using Figure 16, the reconfigurable device 1601 acquires a packet from outside the reconfigurable device via the communication circuit 1600, the reconfigurable device 1601 processes the packet using a predetermined number of combinations of predetermined operations, transmits the first and second packets to one or more programmable devices 1602, and the programmable devices 1602 may process the packet using operations other than predetermined ones or a number of combinations exceeding the predetermined number of predetermined operations.
[0265] Since processing involving operations outside of the prescribed scope or combinations exceeding a predetermined number of prescribed operations is not performed by the reconfigurable device, complex implementations (e.g., implementation of regular expression matching) are unnecessary, and implementation becomes easier while still benefiting from the speed improvements of reconfigurable processing. Furthermore, since such operations outside of the prescribed scope or combinations exceeding a predetermined number of prescribed operations are implemented by a programmable device, the entire system has the advantage of appropriately distributing the required processing tasks.
[0266] 9. Various Embodiments The system according to the first embodiment is: First resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the first computing node are written to a reconfigurable device, Second resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the second computing node are written to a reconfigurable device, The acquisition unit acquires the following: A generation unit generates synthetic resource information, which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written to a reconfigurable device, using the first resource information and the second resource information. A system equipped with "
[0267] The system according to the second embodiment is as described in the first embodiment above. The first resource information includes the number of first logic blocks, The aforementioned second resource information includes the second logic block count, The generation unit calculates the total number of logic blocks by adding the number of first logic blocks and the number of second logic blocks, and generates the composite resource information including the total number of logic blocks. "That is the case."
[0268] The system according to the third embodiment is, in the first embodiment or the second embodiment described above, The first resource information includes first frequency information, The second resource information includes second frequency information, The generation unit generates the composite resource information which includes the smaller frequency of the first frequency information and the second frequency information, or both frequencies. "That is the case."
[0269] A system according to the fourth embodiment is as described in any one of the first to third embodiments above. The generation unit generates the composite resource information based on the input / output relationship between the first computing node and the second computing node. "That is the case."
[0270] A system according to the fifth embodiment is, in any one of the first to fourth embodiments described above, It further includes an identification unit that identifies a hardware resource capable of executing the compute node corresponding to the aforementioned composite resource information, "That is the case."
[0271] The system according to the sixth embodiment is as follows in any one of the first to fifth embodiments: The identification unit includes a determination unit that compares at least one attribute in the composite resource information with an attribute corresponding to the at least one attribute in the resource information relating to the hardware resource, and determines that the latter can perform the former. "That is the case."
[0272] The system according to the seventh aspect is described in any one of the first to sixth aspects above as " The identification unit identifies the hardware resource using usage information based on at least one attribute in the composite resource information and an attribute corresponding to the at least one attribute in the resource information relating to the hardware resource. "That is the case."
[0273] The system according to the eighth aspect is described in any one of the first to seventh aspects above. A selection unit selects a subset of the first computing node group, which includes the first and second computing nodes, from a first computing node group consisting of a plurality of computing nodes including the first and second computing nodes, using information relating to input / output paths between at least some of the computing nodes in the first computing node group. "That is the case."
[0274] The system according to the ninth aspect is, in any one of the first to eighth aspects described above, A selection unit selects a subset of the first group of computing nodes, which includes the first and second computing nodes, from a first group of computing nodes comprising a plurality of computing nodes including the first and second computing nodes, using resource information of a reconfigurable device or resource information of a PR region within the reconfigurable device. "That is the case."
[0275] The program according to the tenth aspect is: One or more information processing devices, First resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the first computing node are written to a reconfigurable device, Second resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the second computing node are written to a reconfigurable device, means of obtaining, A generation means that generates composite resource information, which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written to a reconfigurable device, using the first resource information and the second resource information. A program to make it work as such. "
[0276] The program according to the 11th aspect is, according to the 10th aspect described above, The information processing device includes a memory for storing the first resource information and / or the second resource information. "That is the case."
[0277] A program according to the 12th embodiment is, according to the 10th or 11th embodiment described above, The information processing device includes a computing device that performs the generation process. "
[0278] The method according to the 13th aspect is: One or more information processing devices First resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the first computing node are written to a reconfigurable device, Second resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the second computing node are written to a reconfigurable device, Acquisition step to obtain, A generation step of generating composite resource information, which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written to a reconfigurable device, using the first resource information and the second resource information. How to do it "That is the case."
[0279] The method according to the 14th embodiment is described in the 13th embodiment above as " The information processing device includes a memory for storing the first resource information and / or the second resource information. "
[0280] The method according to the 15th embodiment is described in the 14th or 15th embodiment above as " The information processing device includes a computing device that performs the generation process. "That is the case."
[0281] 10. Example configuration of a programmable device As shown in Figure 17, the programmable device 10 may include an arithmetic unit 12, a storage device 13, a communication interface 16, and a bus 11 connecting them. The programmable device 10 may also further include an input device 14, a display device 15, and a bus 11 connecting them as well. Furthermore, the programmable device 10 may be directly or indirectly connected to other information processing devices via a network 19.
[0282] The programmable 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. Furthermore, the programmable device 10 itself may be a reconfigurable device in which the circuit has been programmed. In this case, there is an advantage in that the programs of the various embodiments described above can be executed more quickly.
[0283] Although the above description refers to a configuration implemented by an example system, these configurations may also be implemented by one or more information processing devices within the system. Furthermore, the system relating to this application may present information in various ways. For example, the presentation of information may include the display of information. For instance, the example system may be displayed by a display device included in the example system, or it may be displayed by a display device in another information processing device to which the example system is directly or indirectly connected.
[0284] It goes without saying that the examples of the invention described in the embodiments of this application are not limited to those described in this application, but can be applied to various examples within the scope of their technical idea.
[0285] Furthermore, the processes and procedures described in this application may be implemented not only by those explicitly described in the embodiments, but also by software, hardware, or a combination thereof. The processes and procedures described in this application may also be implemented as computer programs and executed by various computers. These computer programs may be stored on storage media. These programs may also be stored on non-transient or temporary storage media.
Claims
1. First resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the first computing node are written to a reconfigurable device, Second resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the second computing node are written to a reconfigurable device, The acquisition unit acquires the following: A generation unit generates composite resource information, which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written to a reconfigurable device, using the first resource information and the second resource information. A system equipped with these features.
2. The first resource information includes the number of first logic blocks, The second resource information includes the second logic block count, The generation unit calculates the total number of logic blocks by adding the number of first logic blocks and the number of second logic blocks, and generates the composite resource information including the total number of logic blocks. The system according to claim 1.
3. The first resource information includes first frequency information, The second resource information includes the second frequency information, The generation unit generates the composite resource information which includes the smaller frequency of the first frequency information and the second frequency information, or both frequencies. The system according to claim 1 or 2.
4. The generation unit generates the composite resource information based on the input / output relationship between the first computing node and the second computing node. The system according to any one of claims 1 to 3.
5. It further includes an identification unit that identifies a hardware resource capable of executing the compute node corresponding to the aforementioned composite resource information, The system according to any one of claims 1 to 4.
6. The identification unit includes a determination unit that compares at least one attribute in the composite resource information with an attribute corresponding to the at least one attribute in the resource information relating to the hardware resource, and determines that the latter can perform the former. The system according to claim 5.
7. The identification unit identifies the hardware resource using usage information based on at least one attribute in the composite resource information and an attribute corresponding to the at least one attribute in the resource information relating to the hardware resource. The system according to claim 5.
8. A selection unit selects a subset of the first computing node group, which includes the first and second computing nodes, from a first computing node group consisting of a plurality of computing nodes including the first and second computing nodes, using information relating to input / output paths between at least some of the computing nodes in the first computing node group. The system according to any one of claims 1 to 7, comprising:
9. A selection unit selects a subset of the first group of computing nodes, which includes the first and second computing nodes, from a first group of computing nodes comprising a plurality of computing nodes including the first and second computing nodes, using resource information of a reconfigurable device or resource information of a PR region within the reconfigurable device. The system according to any one of claims 1 to 8, comprising:
10. One or more information processing devices, First resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the first computing node are written to a reconfigurable device, Second resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the second computing node are written to a reconfigurable device, means of obtaining, A generation means that generates composite resource information, which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written to a reconfigurable device, using the first resource information and the second resource information. A program to make it work as such.
11. The information processing device includes a memory for storing the first resource information and / or the second resource information. The program according to claim 10.
12. The information processing device includes a computing device that performs the generation process. The program according to claim 10 or 11.
13. One or more information processing devices First resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the first computing node are written to a reconfigurable device, Second resource information, which is information about hardware resources that may be used when one or more bitstreams relating to the second computing node are written to a reconfigurable device, Acquisition step to obtain, A generation step of generating composite resource information, which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written to a reconfigurable device, using the first resource information and the second resource information. How to do it.
14. The information processing device includes a memory for storing the first resource information and / or the second resource information. The method according to claim 13.
15. The information processing device includes a computing device that performs the generation process. The method according to claim 13 or 14.