<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ep-patent-document PUBLIC "-//EPO//EP PATENT DOCUMENT 1.7//EN" "ep-patent-document-v1-7.dtd">
<!--This XML data has been generated under the supervision of the European Patent Office -->
<ep-patent-document id="EP19768971B9W1" file="EP19768971W1B9.xml" lang="en" country="EP" doc-number="3844620" kind="B9" correction-code="W1" date-publ="20250319" status="c" dtd-version="ep-patent-document-v1-7">
<SDOBI lang="en"><B000><eptags><B001EP>ATBECHDEDKESFRGBGRITLILUNLSEMCPTIESILTLVFIROMKCYALTRBGCZEEHUPLSK..HRIS..MTNORS..SM..................</B001EP><B003EP>*</B003EP><B005EP>J</B005EP><B007EP>0009290-CORR01</B007EP></eptags></B000><B100><B110>3844620</B110><B120><B121>CORRECTED EUROPEAN PATENT SPECIFICATION</B121></B120><B130>B9</B130><B132EP>B1</B132EP><B140><date>20250319</date></B140><B150><B151>W1</B151><B155><B1551>de</B1551><B1552>Ansprüche EN</B1552><B1551>en</B1551><B1552>Claims EN</B1552><B1551>fr</B1551><B1552>Revendications EN</B1552></B155></B150><B190>EP</B190></B100><B200><B210>19768971.4</B210><B220><date>20190829</date></B220><B240><B241><date>20210119</date></B241><B242><date>20221109</date></B242></B240><B250>en</B250><B251EP>en</B251EP><B260>en</B260></B200><B300><B310>201862724051 P</B310><B320><date>20180829</date></B320><B330><ctry>US</ctry></B330></B300><B400><B405><date>20250319</date><bnum>202512</bnum></B405><B430><date>20210707</date><bnum>202127</bnum></B430><B450><date>20241211</date><bnum>202450</bnum></B450><B452EP><date>20240709</date></B452EP><B480><date>20250319</date><bnum>202512</bnum></B480></B400><B500><B510EP><classification-ipcr sequence="1"><text>G06F  13/16        20060101AFI20240603BHEP        </text></classification-ipcr><classification-ipcr sequence="2"><text>H04L  12/18        20060101ALI20240603BHEP        </text></classification-ipcr><classification-ipcr sequence="3"><text>G06F   9/52        20060101ALI20240603BHEP        </text></classification-ipcr><classification-ipcr sequence="4"><text>G06F   9/50        20060101ALI20240603BHEP        </text></classification-ipcr><classification-ipcr sequence="5"><text>G06N   3/063       20230101ALI20240603BHEP        </text></classification-ipcr><classification-ipcr sequence="6"><text>G06N   3/10        20060101ALI20240603BHEP        </text></classification-ipcr></B510EP><B520EP><classifications-cpc><classification-cpc sequence="1"><text>G06F   9/505       20130101 LA20191024BHEP        </text></classification-cpc><classification-cpc sequence="2"><text>G06F   9/52        20130101 FI20191023BHEP        </text></classification-cpc><classification-cpc sequence="3"><text>G06N   3/063       20130101 LI20191023BHEP        </text></classification-cpc><classification-cpc sequence="4"><text>G06N   3/105       20130101 LI20191023BHEP        </text></classification-cpc><classification-cpc sequence="5"><text>G06F  13/1668      20130101 LI20220524BHEP        </text></classification-cpc><classification-cpc sequence="6"><text>H04L  12/18        20130101 LA20200330BHEP        </text></classification-cpc><classification-cpc sequence="7"><text>Y02D  10/00        20180101 LA20200801RGEP        </text></classification-cpc></classifications-cpc></B520EP><B540><B541>de</B541><B542>VERFAHREN, VORRICHTUNG UND SYSTEM FÜR EINE ARCHITEKTUR ZUR BESCHLEUNIGUNG VON MASCHINENLERNEN</B542><B541>en</B541><B542>METHOD, APPARATUS, AND SYSTEM FOR AN ARCHITECTURE FOR MACHINE LEARNING ACCELERATION</B542><B541>fr</B541><B542>PROCÉDÉ, APPAREIL ET SYSTÈME POUR UNE ARCHITECTURE D'ACCÉLÉRATION D'APPRENTISSAGE AUTOMATIQUE</B542></B540><B560><B561><text>EP-A1- 3 343 460</text></B561><B561><text>WO-A1-2008/046716</text></B561><B561><text>US-A1- 2017 032 487</text></B561><B561><text>US-B1- 10 019 668</text></B561><B562><text>RUSSELL W DUREN ET AL: "Application of Data Compression to the MIL-STD-1553 Data Bus", 2008 IEEE AEROSPACE CONFERENCE; 1-8 MARCH 2008; BIG SKY; MT, USA, IEEE, PISCATAWAY, NJ, USA, 1 March 2008 (2008-03-01), pages 1 - 10, XP031256421, ISBN: 978-1-4244-1487-1</text></B562></B560></B500><B600><B620EP><parent><cdoc><dnum><anum>24211735.6</anum></dnum><date>20241108</date></cdoc></parent></B620EP></B600><B700><B720><B721><snm>VERRILLI, Colin Beaton</snm><adr><str>5775 Morehouse Drive</str><city>San Diego, California 92121-1714</city><ctry>US</ctry></adr></B721><B721><snm>VAIDHYANATHAN, Natarajan</snm><adr><str>5775 Morehouse Drive</str><city>San Diego, California 92121-1714</city><ctry>US</ctry></adr></B721><B721><snm>HILL, Rexford Alan</snm><adr><str>5775 Morehouse Drive</str><city>San Diego, California 92121-1714</city><ctry>US</ctry></adr></B721></B720><B730><B731><snm>QUALCOMM INCORPORATED</snm><iid>101675551</iid><irf>QU-E-42543</irf><adr><str>ATTN: International IP Administration
5775 Morehouse Drive</str><city>San Diego, California 92121-1714</city><ctry>US</ctry></adr></B731></B730><B740><B741><snm>Klang, Alexander H.</snm><iid>100063768</iid><adr><str>Wagner &amp; Geyer Partnerschaft mbB
Patent- und Rechtsanwälte
Gewürzmühlstrasse 5</str><city>80538 München</city><ctry>DE</ctry></adr></B741></B740></B700><B800><B840><ctry>AL</ctry><ctry>AT</ctry><ctry>BE</ctry><ctry>BG</ctry><ctry>CH</ctry><ctry>CY</ctry><ctry>CZ</ctry><ctry>DE</ctry><ctry>DK</ctry><ctry>EE</ctry><ctry>ES</ctry><ctry>FI</ctry><ctry>FR</ctry><ctry>GB</ctry><ctry>GR</ctry><ctry>HR</ctry><ctry>HU</ctry><ctry>IE</ctry><ctry>IS</ctry><ctry>IT</ctry><ctry>LI</ctry><ctry>LT</ctry><ctry>LU</ctry><ctry>LV</ctry><ctry>MC</ctry><ctry>MK</ctry><ctry>MT</ctry><ctry>NL</ctry><ctry>NO</ctry><ctry>PL</ctry><ctry>PT</ctry><ctry>RO</ctry><ctry>RS</ctry><ctry>SE</ctry><ctry>SI</ctry><ctry>SK</ctry><ctry>SM</ctry><ctry>TR</ctry></B840><B860><B861><dnum><anum>US2019048938</anum></dnum><date>20190829</date></B861><B862>en</B862></B860><B870><B871><dnum><pnum>WO2020047337</pnum></dnum><date>20200305</date><bnum>202010</bnum></B871></B870></B800><B7000><B7001><date>20241223</date></B7001><B7002 decision="P"><date>20250113</date></B7002><B7020><B7021><date>20250113</date></B7021><B7022><date>20241211</date></B7022><B7023><ctry>AT</ctry><ctry>BE</ctry><ctry>BG</ctry><ctry>DE</ctry><ctry>DK</ctry><ctry>EE</ctry><ctry>FI</ctry><ctry>FR</ctry><ctry>IT</ctry><ctry>LT</ctry><ctry>LU</ctry><ctry>LV</ctry><ctry>MT</ctry><ctry>NL</ctry><ctry>PT</ctry><ctry>RO</ctry><ctry>SE</ctry><ctry>SI</ctry></B7023></B7020><B7720><B7721><snm>VERRILLI, Colin Beaton</snm><adr><str>5775 Morehouse Drive</str><city>San Diego, California 92121-1714</city><ctry>US</ctry></adr></B7721><B7721><snm>VAIDHYANATHAN, Natarajan</snm><adr><str>5775 Morehouse Drive</str><city>San Diego, California 92121-1714</city><ctry>US</ctry></adr></B7721><B7721><snm>HILL, Rexford Alan</snm><adr><str>5775 Morehouse Drive</str><city>San Diego, California 92121-1714</city><ctry>US</ctry></adr></B7721></B7720><B7730><B7731><snm>QUALCOMM INCORPORATED</snm><iid>101675551</iid><irf>UP603005</irf><adr><str>ATTN: International IP Administration
5775 Morehouse Drive</str><city>San Diego, California 92121-1714</city><ctry>US</ctry></adr></B7731></B7730><B7740><B7741><snm>BZ-UP</snm><iid>102020885</iid><adr><str>Via Piemonte, 26</str><city>00187 Rome</city><ctry>IT</ctry></adr></B7741></B7740></B7000></SDOBI>
<description id="desc" lang="en"><!-- EPO <DP n="1"> -->
<heading id="h0001">TECHNICAL FIELD</heading>
<p id="p0001" num="0001">This disclosure relates to an inference accelerator computing architecture and corresponding method.</p>
<heading id="h0002"><b>BACKGROUND</b></heading>
<p id="p0002" num="0002"><patcit id="pcit0001" dnum="WO2008046716A1"><text>WO 2008/046716 A1</text></patcit> discloses a multi-processor computing system. The multi-processor computing system comprises a host processor, a global memory and at least one processing units, wherein the multi-processor computing system further comprises: a micro task sequencer, comprising a task acquisition device and a task scheduling device, wherein the task acquisition device is configured to fetch a command including micro task descriptions from the global memory if the micro task sequencer is capable to accommodate further commands, and the task scheduling device is configured to dispatch each micro task instruction defined by each of the micro task descriptions to one of the at least one processing units, so that the indicated processing unit can execute the micro task instruction, and the task scheduling device is further configured to detect the completion of all the micro tasks in the command and notify the host processor of the completion, wherein the processing unit can access the global memory by itself or by another of the at least one processing units.<!-- EPO <DP n="2"> --></p>
<p id="p0003" num="0003">Artificial Neural Networks (ANNs) are used to perform an increasing number and variety of tasks, such as, for example, object recognition, speech recognition, speech generation, providing recommendations, and predicting user behavior. Performing these tasks may be referred to as inferencing using an ANN model. To provide useful inferences, an ANN model needs to be designed and trained for the particular task. The ANN design establishes parameters such as the number of layers of the ANN model and the characteristics of each layer. The training of the ANN uses training data, inferencing using the ANN model, feedback based on evaluation of the inference, and backpropagation to adjust the weights of the ANN model in response to the feedback. After numerous training cycles of inferencing and backpropagation, the resultant model may provide satisfactory results in response to new input data. Note that many ANNs have multiple hidden layers between an input layer and an output layer and may consequently be referred to as Deep Neural Networks (DNNs).</p>
<p id="p0004" num="0004">To provide a satisfactory user experience, not only do the inference results need to be correct, but they also need to be provided fairly quickly - often within a fraction of a second (response latency within service level agreement). To do this, service providers use large arrays of inference accelerators located "in the cloud" - that is, communicatively coupled to, and located remotely from, a client device.<!-- EPO <DP n="3"> --></p>
<p id="p0005" num="0005">Client computer devices may include, for example, computers, automobiles, smartphones, smart wearable devices, and internet-of-things (IoT) devices. The so-called cloud may comprise a plurality of interconnected servers located at a data center and may be managed by a cloud provider entity such as, for example, Amazon.com, Inc. of Seattle, WA or Facebook, Inc., of Menlo Park, CA. Each host server comprises a plurality of interconnected inference accelerators, which may be provided by an inference-accelerator provider entity. Each accelerator comprises processor and memory components.</p>
<p id="p0006" num="0006">The cloud may support many millions of neural network applications. A neural network application running on a client computer device communicates with the cloud to receive inference acceleration and/or assistance. For example, a speech-translation neural-network application (NNA) may transmit a raw or encoded audio snippet to the cloud for rapid translation and provision of the translation in response to the NNA. A media-recommendation program that recommends, e.g., songs or videos - where the media may comprise many millions, or even billions, of options hosted by the cloud provider in the cloud - may communicate with the cloud to have the cloud perform an inference to generate a recommendation for provision to a user of the client computer device.</p>
<p id="p0007" num="0007">In the data center context, various heterogenous architectures have been employed to handle machine learning workloads. For example, cloud compute may use server-class central processing units (CPUs) or graphics processing units (GPUs) and may adapt their workloads to those architecture. However, these architectures may not be tailored to the specific characteristics of machine learning algorithms, with the effect that their performance is not as efficient as desired, and/or they consume more power to achieve a given level of performance than would be desirable. As there may be many millions of NNAs accessing the inference accelerators of the cloud at any one time, efficient inference accelerators would be beneficial for reducing power usage and/or reducing inference time.</p>
<p id="p0008" num="0008">Thus, it would be desirable to provide an inference-accelerator computing architecture that is scalable to cloud computing and data center application, while providing improved performance per watt when compared to existing server-class CPU and GPU-based solutions.<!-- EPO <DP n="4"> --></p>
<heading id="h0003"><b>SUMMARY OF THE DISCLOSURE</b></heading>
<p id="p0009" num="0009">The invention is set out in the appended set of claims.<!-- EPO <DP n="5"> --></p>
<p id="p0010" num="0010">Some advantages of the disclosed aspects may include providing a scalable architecture for cloud computing that provides improved interconnection between processing elements, and a compiler that produces a more efficient mapping of neural network operations onto available hardware.</p>
<heading id="h0004">BRIEF DESCRIPTION OF THE FIGURES</heading>
<p id="p0011" num="0011">
<ul id="ul0001" list-style="none" compact="compact">
<li><figref idref="f0001">FIG. 1</figref> is block diagram of an exemplary inference accelerator in accordance with an embodiment of the disclosure.<!-- EPO <DP n="6"> --></li>
<li><figref idref="f0002">FIG. 1A</figref> is a simplified schematic diagram of an exemplary implementation of the processing element of <figref idref="f0001">FIG. 1</figref>.</li>
<li><figref idref="f0003">FIG. 2</figref> is a flow diagram of an exemplary operation of a compiler for an inference accelerator in accordance with an embodiment of the disclosure.</li>
</ul></p>
<heading id="h0005"><b>DETAILED DESCRIPTION</b></heading>
<p id="p0012" num="0012">With reference now to the drawing figures, several exemplary aspects of the present disclosure are described. The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any aspect described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects.</p>
<p id="p0013" num="0013"><figref idref="f0001">FIG. 1</figref> is a simplified schematic diagram of an exemplary inference accelerator 100 in accordance with an embodiment of the disclosure. The inference accelerator 100 comprises a system-on-chip (SoC) 190 coupled to a first double data rate (DDR) dynamic random-access memory (DRAM) 122 and a second DDR DRAM 126. The SoC 190 comprises a first processing element 102, a second processing element 104, a third processing element 106, and a fourth processing element 108. The processing elements 102, 104, 106, and 108 are coupled together via a compute network-on-chip (NoC) 142. Note that the terms "NoC" and "network" may be used interchangeably herein. Note that inference accelerators in accordance with this disclosure are not limited to any particular number of processing elements and alternative implementations may have more or fewer than four processing elements.</p>
<p id="p0014" num="0014">The SoC 190 further comprises a first memory interface 112, a second memory interface 114, a third memory interface 116, a fourth memory interface 118, and a PCI Express (PCIe) block 134, all coupled to each other and to the processing elements 102, 104, 106, and 108 via a system/memory (sys/mem) NoC 144. The PCIe block 134 is an interface used by the inference accelerator 100 to receive the inputs for inferences (e.g., images, videos, audio clips, or other data tensors) received by the host server and to provide results back to the host server. The system-on-chip 190 further comprises a management controller 132, which is coupled to the PCIe block 134, the memory controllers 112, 114, 116, and 118, and the processing elements 102, 104, 106, and 108 via the system/memory NoC 144. Note that, in some implementations, the compute<!-- EPO <DP n="7"> --> network 142 may also connect to the PCIe block 134 and/or the memory controllers 112, 114, 116, and 118.</p>
<p id="p0015" num="0015">Further, a global synchronization manager (GSM) module 136 is coupled to the PCIe block 134 and a local sync manager (see <figref idref="f0002">FIG. 1A</figref>) in each processing element 102, 104, 106, and 108 via a private NoC 146. It should be noted that in alternative implementations, one or more of the compute NoC 142, sys/mem NoC , and private NoC 146 may be replaced by a corresponding simple bus, or other communication fabric, other than a NoC. It should be further noted that some alternative implementations of the inference accelerator 100 do not include a private NoC and, instead, the GSM 136 communicates with other elements (e.g., the processing elements 102, 104, 106, and 108) via other means (e.g., sys/mem NoC 144).</p>
<p id="p0016" num="0016">The processing elements 102, 104, 106, and 108 may be neural processing units (NPUs), neural signal processors (NSPs), digital signal processors (DSPs), or any other suitable type of processor (e.g., CPUs or GPUs). In some homogenous embodiments (where the processing elements 102, 104, 106, and 108 are substantially the same) each of the processing elements 102, 104, 106, and 108 may include scalar, vector, matrix processing capabilities (e.g., multiplication, convolution, point-wise addition, point-wise multiplication), and data-movement capabilities (e.g., load, store, and direct memory access (DMA)). In some alternative embodiments, the scalar, vector, matrix, and data-movement processing capabilities may be distributed across different processing elements (in other words, the processing elements 102, 104, 106, and 108 may be heterogeneous). Additionally, whichever of the processing elements 102, 104, 106, and 108 provide matrix processing capabilities may further include floating point capabilities as part of the matrix processing capabilities. Providing these capabilities in each of the processing elements 102, 104, 106, and 108 may enable a compiler for the inference accelerator 100 to more efficiently schedule code on the individual processing elements, as will be explained in greater detail with respect to <figref idref="f0003">FIG. 2</figref>.</p>
<p id="p0017" num="0017"><figref idref="f0002">FIG. 1A</figref> is a simplified schematic diagram of an exemplary implementation of the processing element 102 of <figref idref="f0001">FIG. 1</figref>. As noted above, in some embodiments, processing elements 104, 106, and 108 may be configured identically. The processing<!-- EPO <DP n="8"> --> element 102 comprises tightly-coupled memory (TCM) 150, vector processing module 151, matrix processing module 152, scalar processing (e.g., DSP) module 153, memory processing module 154, and an optional local synchronization manager (LSM) 155. The TCM 150 is directly connected to at least the vector processing module 151, the matrix processing module 152, and the memory processing module 154. The LSM 155 is directly connected to at least the scalar processing module 153. The processing element 102 is connected to NoCs 142, 144, and 146.</p>
<p id="p0018" num="0018">In some implementations, each LSM 155 of a processing element is connected to the GSM 136 of <figref idref="f0001">FIG. 1</figref>, where the processing elements 102, 104, 106, and 108 implement hardware memory synchronization using LSM 155 working with GSM 136 to coordinate and synchronize data transfers among the processing elements 102, 104, 106, and 108 and the DRAMs 122 and 126, by setting and resetting semaphores that allow or prohibit corresponding data operations. In this implementation, the LSM 155 may be referred to as a synchronization module. In some implementations, the GSM 136 works directly with the TCMs 150 of the processing elements 102, 104, 106, and 108 (forgoing LSMs 155) to set and reset values at known locations in the TCMs 150, where those values similarly allow or prohibit corresponding data operations. In this implementation, the TCM 150 may be referred to as a synchronization module.</p>
<p id="p0019" num="0019">The processing element 102 may forgo implementing a memory coherency protocol. Implementing a memory coherency protocol typically includes having a shared cache connected to a plurality of clients and an interconnecting bus with a coherency protocol to ensure that each client is referencing the latest version of corresponding data. Using caches and implementing a coherency protocol are useful when data movement and sharing is not sequential and not deterministic - in other words, what is conventionally referred to as "random." Caches and coherency are also useful where data movements and sharing are relatively fine-grained. Semaphores, on the other hand, use the setting and modifying of so-called semaphores to gate data movement among a plurality of clients and gate computations involving the data - without using a cache or a bus implementing a coherency protocol. Neural-network inferencing involves large movements of data, and calculations based on that data, whose pattern is known ahead of time. Consequently, the integrity of that data may be maintained using a relatively simple semaphore mechanism. Since implementing memory coherency protocols requires<!-- EPO <DP n="9"> --> relatively significant power levels, substituting hardware synchronization for coherency allows the inference accelerator 100 to maintain the needed level of memory synchronization at a relatively reduced power level.</p>
<p id="p0020" num="0020">Returning to <figref idref="f0001">FIG. 1</figref>, the compute network 142 coupling the processing elements 102, 104, 106, and 108 may be a relatively higher-bandwidth network (as compared to the sys/mem network 144 and the private network 146), and supports multicast operations (i.e., sending data produced by a single processing element to multiple other processing elements of the inference accelerator 100). The processing elements 102, 104, 106, and 108 may each include tightly-coupled memory (e.g. TCM 150 of <figref idref="f0002">FIG. 1A</figref>), and interact with the first DRAM 122 and the second DRAM 126 via the sys/mem network 144 and the memory controllers 112, 114, 116, and 118. Both the compute network 142 and the sys/mem network 144 may support DMA operations from the TCMs (e.g. TCM 150) of each of the processing elements 102, 104, 106, and 108, including read operations, write operations, and, in the case of the compute network 142, multicast operations.</p>
<p id="p0021" num="0021">The private network 146 may be a relatively slower and lower-bandwidth network (as compared to the compute network 142 and the sys/mem network 144), as its use may be limited to a configuration time (as opposed to run time) and, thus, would not have a specific performance requirement (as opposed to the compute network 142 and the sys/mem network 144). Having separate networks for these specific purposes allows each of the networks to be designed to match its corresponding expected traffic type and allows each to be individually performance and power optimized to match.</p>
<p id="p0022" num="0022">For example, since the workloads handled by the inference accelerator 100 may often involve data words that are all zeros (but that must still be transmitted among the processing elements 102, 104, 106, and 108), the compute network 142 may implement a "zero" encoding protocol, where setting a single override bit on the network bus indicates that the value of the corresponding data word is zero, without having to actually set all the bits of the data bus for that data word to zero or read all of the corresponding bits of the data word. This may reduce power usage both directly and by allowing for the implementation of power-saving operations based on the override bit.</p>
<p id="p0023" num="0023">Further, as indicated above, the inference accelerator 100 does not implement a memory coherency protocol, instead managing dependencies that do occur using<!-- EPO <DP n="10"> --> hardware semaphores and compiler design (as explained later with respect to <figref idref="f0003">Figure 2</figref>) in accordance with the global sync manager 136, which is configured to interact with the processing elements 102, 104, 106, and 108 to provide hardware semaphore support. Essentially, each of the processing elements 102, 104, 106, and 108 may set semaphores in the global sync manager 136, which may be cleared by the other processing elements 102, 104, 106, and 108 to allow for interdependencies in workloads being processing by the processing elements 102, 104, 106, and 108.</p>
<p id="p0024" num="0024">The latency involved in communications between the processing elements 102, 104, 106, and 108 and the global sync manager 136 may be important for the overall performance of the inference accelerator 100. Thus, the topology of the private network 146 providing connectivity between the global sync manager 136 and the processing elements 102, 104, 106, and 108 may depend on the relative number of processing elements that will be coupled to the global sync manager 136. In systems with relatively few processing elements, a ring topology may be used instead of the network 146 shown. In systems with larger numbers of processing elements, a star topology may be used. Those having skill in the art will recognize that the choice of topology may be informed by many factors involved in the overall system design, and the teachings of the present disclosure do not depend on the use of a particular topology.</p>
<p id="p0025" num="0025"><figref idref="f0003">FIG. 2</figref> is a hybrid schematic and flow diagram 200 for exemplary operation of a compiler which may be configured to schedule operations on inference accelerator 100 of <figref idref="f0001">FIG. 1</figref>. A neural network description 210 is provided to the compiler, which, in a first phase, transforms, in step 220, the neural network description 210 into a form that may be represented by directed acyclic graph 230. A directed acyclic graph is a graph that has forward progress, without loopbacks, among its nodes (e.g., a tree structure progressing from the trunk to the leaves). The graph 230 comprises a plurality of tasks represented by graph nodes 231, 232, 233, 234, 235, 236, and 237. Graph 230 shows that task 231 must be performed first, and then task 232, but then any of tasks 233, 234, and 235 may be performed. In addition, graph 230 shows that both tasks 234 and 235 have to be completed before task 236 can be executed (in other words, task 236 is dependent on tasks 234 and 235). Similarly, task 237 is dependent on tasks 233 and 236.</p>
<p id="p0026" num="0026">In a second phase, in step 240, the compiler converts the tasks 231-237, shown in graph 230, into command lists 252, 254, 256, and 258 and schedules them for<!-- EPO <DP n="11"> --> processing on corresponding hardware processing elements such as scalar, vector, matrix, and data movement blocks of the processing elements 102, 104, 106, and 108 of <figref idref="f0001">FIG. 1</figref>. In other words, command lists 252, 254, 256, and 258 may correspond, respectively, to vector processing module 151, matrix processing module 152, scalar processing module 153, and memory processing module 154 of <figref idref="f0002">FIG. 1A</figref>. The scheduling may be optimized for factors such as, for example, time, power, or resource requirements.</p>
<p id="p0027" num="0027">The compiler may be optimized for use with neural networks, and thus it may generate "static" workloads. Specifically, since branching and iteration counts may be known ahead of time, they may be used to generate static workloads, as opposed to, for example, conventional CPU or GPU code, which may have unpredictable branching behavior and iteration counts and, consequently, would require generating dynamic workloads. Because these workloads are static, the command lists generated by the compiler may permit workload balancing in the computing device 100 by dispatching a portion of a total workload to be executed to the computing device 100 after which the computing device 100 may wait (and may possibly even enter a low-power state) for further instructions. This workload distribution and balancing is referred to herein as "dispatch scaling." Note that, in generating parallel workloads, the compiler may direct the replication of data sets between processing elements, where the replication may be performed using the multicast capabilities of the compute network 142.</p>
<p id="p0028" num="0028">The above is possible because, since the workload is static, dispatching one-fourth of a total workload (e.g., one fourth of the total operations), for example, will result in the one-fourth of the total workload being completed. This contrasts with a conventional CPU/GPU workload, in which it may be essentially impossible to predict ahead of time how much of a total workload may be completed by providing one-fourth of the workload to the computing device, and thus, in order to save power, conventional methods such a frequency and voltage scaling may be used. Further, instead of generating command lists, which would conventionally be interpreted by software running on the processing elements 102, 104, 106, and 108, the compiler may alternatively generate static code which is executed in sequence. Dispatch scaling may be used in either case (command lists or statically generated code).</p>
<p id="p0029" num="0029">Although the compiler attempts to generate command lists that are fully parallelizable and do not have interdependencies, sometimes this may not be feasible. In<!-- EPO <DP n="12"> --> cases where interdependencies exist, since the computing device 100 does not implement coherency, the compiler will insert a synchronization indicator (e.g., a semaphore) that is mapped to a hardware semaphore resource. Different processing elements may interact, via, e.g., GSM 136, using the semaphore to guarantee that dependencies are satisfied. The compiler may schedule tasks to command lists based on optimistic estimated completion times and the semaphores may be relied on to guarantee that dependencies are satisfied where actual completion times exceed the estimated completion times.</p>
<p id="p0030" num="0030">Those of skill in the art will further appreciate that the various illustrative logical blocks, modules, circuits, and algorithms described in connection with the aspects disclosed herein may be implemented as electronic hardware, instructions stored in memory or in another computer readable medium and executed by a processor or other processing device, or combinations of both. The devices described herein may be employed in any circuit, hardware component, IC, or IC chip, as examples. Memory disclosed herein may be any type and size of memory and may be configured to store any type of information desired. To clearly illustrate this interchangeability, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. How such functionality is implemented depends upon the particular application, design choices, and/or design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.</p>
<p id="p0031" num="0031">The various illustrative logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed with a processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration).<!-- EPO <DP n="13"> --></p>
<p id="p0032" num="0032">The aspects disclosed herein may be embodied in hardware and in instructions or design data that are stored in hardware, and may reside, for example, in Random Access Memory (RAM), flash memory, Read Only Memory (ROM), Electrically Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), registers, a hard disk, a removable disk, a CD-ROM, or any other form of computer readable medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. In the case of design data, the data may be an electronic representation of a physical design of a circuit, may be readable by integrated circuit fabrication equipment, and may be in a file format such as GDSII, GERBER, or the like. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a remote station. In the alternative, the processor and the storage medium may reside as discrete components in a remote station, base station, or server.</p>
<p id="p0033" num="0033">It is also noted that the operational steps described in any of the exemplary aspects herein are described to provide examples and discussion. The operations described may be performed in numerous different sequences other than the illustrated sequences. Furthermore, operations described in a single operational step may actually be performed in a number of different steps. Additionally, one or more operational steps discussed in the exemplary aspects may be combined. It is to be understood that the operational steps illustrated in the flowchart diagrams may be subject to numerous different modifications as will be readily apparent to one of skill in the art. Those of skill in the art will also understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.</p>
<p id="p0034" num="0034">The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the scope of the<!-- EPO <DP n="14"> --> claims. Thus, the disclosure is not intended to be limited to the examples and designs described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.</p>
</description>
<claims id="claims01" lang="en"><!-- EPO <DP n="15"> -->
<claim id="c-en-01-0001" num="0001">
<claim-text>An inference accelerator (100) comprising:
<claim-text>a memory system (112, 114, 116, 118);</claim-text>
<claim-text>a plurality of processing elements (102, 104, 106, 108), each processing element:
<claim-text>having a tightly coupled memory (150), TCM;</claim-text>
<claim-text>coupled to the memory system; and</claim-text>
<claim-text>adapted to access the memory system;</claim-text></claim-text>
<claim-text>a global synchronization manager (136), GSM, module coupled to the plurality of processing elements and to the memory system, the GSM adapted to synchronize operations of the plurality of processing elements and memory system using corresponding synchronization modules of each of the plurality of processing elements;</claim-text>
<claim-text>a second network (144) connecting each of the plurality of processing elements to the memory system,</claim-text>
<claim-text><b>characterised in</b> further comprising:
<claim-text>a first network (142) interconnecting the plurality of processing elements and the first network configured to support multicast operations,</claim-text>
<claim-text>wherein the second network (144) is separate from the first network.</claim-text></claim-text></claim-text></claim>
<claim id="c-en-01-0002" num="0002">
<claim-text>The inference accelerator of claim 1, wherein each processing element further comprises:
<claim-text>a vector processor (151) adapted to perform floating point operations;</claim-text>
<claim-text>a scalar processor (153); and</claim-text>
a matrix processor (152) adapted to perform floating point operations.</claim-text></claim>
<claim id="c-en-01-0003" num="0003">
<claim-text>The inference accelerator of claim 1, wherein the inference accelerator further comprising a controller (132) connected to the second network.</claim-text></claim>
<claim id="c-en-01-0004" num="0004">
<claim-text>The inference accelerator of claim 1, wherein:
<claim-text>the GSM is coupled to each of the processing elements via a third network (146) separate from the first network and the second network;<!-- EPO <DP n="16"> --></claim-text>
<claim-text>each of the processing elements comprises a local sync manager (155); and</claim-text>
<claim-text>the GSM is configured to provide configuration information to the local sync manager of each processing element of the plurality of processing elements via the third network.</claim-text></claim-text></claim>
<claim id="c-en-01-0005" num="0005">
<claim-text>The inference accelerator of claim 1, wherein the first network is configured to implement zero encoding.</claim-text></claim>
<claim id="c-en-01-0006" num="0006">
<claim-text>The inference accelerator of claim 1, wherein:
<claim-text>the synchronization modules of the plurality of processing elements used by the GSM to synchronize operations of the plurality of processing elements are the corresponding TCMs;</claim-text>
<claim-text>each TCM is adapted to store a set of synchronization variables; and</claim-text>
<claim-text>the GSM is adapted to store and adjust the synchronization variables in the TCMs.</claim-text></claim-text></claim>
<claim id="c-en-01-0007" num="0007">
<claim-text>A method for an inference accelerator (100) having a plurality of processing elements (112, 114, 116, 118), a memory system (102, 104, 106, 108) coupled to each of the processing elements, and a global synchronization manager (136), GSM, module coupled to the plurality of processing elements and to the memory system, wherein each processing element comprises a tightly coupled memory (150), TCM, the method comprising:
<claim-text>accessing, by each processing element, the memory system; and</claim-text>
<claim-text>synchronizing, by the GSM, operations of the plurality of processing elements and memory system using corresponding synchronization modules of each of the plurality of processing elements;</claim-text>
wherein:<!-- EPO <DP n="17"> -->
<claim-text>each of the plurality of processing elements is connected to the memory system by a second network (144),</claim-text>
<claim-text><b>characterised in that</b>:
<claim-text>the plurality of processing elements are interconnected by a first network (142);</claim-text>
<claim-text>the method further comprises performing multicast operations by the first network (142); and</claim-text>
<claim-text>the second network (144) is separate from the first network (142).</claim-text></claim-text></claim-text></claim>
<claim id="c-en-01-0008" num="0008">
<claim-text>The method of claim 7, wherein:
<claim-text>each processing element further comprise a vector processor (151), a scalar processor (153), and a matrix processor (152); and</claim-text>
<claim-text>the method further comprises:<br/>
performing floating point operations by the vector processor; and performing floating point operations by the matrix processor.</claim-text></claim-text></claim>
<claim id="c-en-01-0009" num="0009">
<claim-text>The method of claim 7, wherein:
<claim-text>the GSM is coupled to each of the processing elements via a third network (146) separate from the first network and the second network;</claim-text>
<claim-text>each of the processing elements comprises a local sync manager (155);</claim-text>
<claim-text>the method further comprises providing, by the GSM, configuration information to the local sync manager of each processing element of the plurality of processing elements via the third network.</claim-text></claim-text></claim>
<claim id="c-en-01-0010" num="0010">
<claim-text>The method of claim 7, further comprising implementing zero encoding by the first network.</claim-text></claim>
</claims>
<claims id="claims02" lang="de"><!-- EPO <DP n="18"> -->
<claim id="c-de-01-0001" num="0001">
<claim-text>Ein Inferenzbeschleuniger (100), der Folgendes aufweist:
<claim-text>ein Speichersystem (112, 114, 116, 118);</claim-text>
<claim-text>eine Vielzahl von Verarbeitungselementen (102, 104, 106, 108), wobei jedes Verarbeitungselement:
<claim-text>einen eng gekoppelten Speicher bzw. TCM (TCM = tightly coupled memory) (150) hat;</claim-text>
<claim-text>an das Speichersystem gekoppelt ist; und</claim-text>
<claim-text>ausgelegt ist auf das Speichersystem zuzugreifen;</claim-text>
<claim-text>ein Globalsynchronisationsmanager- bzw. GSM-Modul (GSM = global synchronization manager) (136), das an die Vielzahl von Verarbeitungselementen und das Speichersystem gekoppelt ist, wobei der GSM ausgelegt ist zum Synchronisieren von Operationen der Vielzahl von Verarbeitungselementen und des Speichersystems unter Nutzung entsprechender Synchronisationsmodule von jedem der Vielzahl von Verarbeitungselementen; und</claim-text>
<claim-text>ein zweites Netzwerk (144), das jedes der Vielzahl von Verarbeitungselementen mit dem Speichersystem verbindet,</claim-text>
<claim-text><b>dadurch gekennzeichnet, dass</b> er weiter Folgendes aufweist:
<claim-text>ein erstes Netzwerk (142), das die Vielzahl von Verarbeitungselementen und das erste Netzwerk miteinander verbindet, das konfiguriert ist zum Unterstützen von Multicast-Operationen,</claim-text>
<claim-text>wobei das zweite Netzwerk (144) von dem ersten Netzwerk getrennt ist.</claim-text></claim-text></claim-text></claim-text></claim>
<claim id="c-de-01-0002" num="0002">
<claim-text>Inferenzbeschleuniger nach Anspruch 1, wobei jedes Verarbeitungselement weiter Folgendes aufweist:
<claim-text>einen Vektorprozessor (151), der ausgelegt ist zum Durchführen von Gleitkomma-Operationen;</claim-text>
<claim-text>einen Skalarprozessor (153); und</claim-text>
<claim-text>einen Matrixprozessor (152), der ausgelegt ist zum Durchführen von Gleitkomma-Operationen.</claim-text><!-- EPO <DP n="19"> --></claim-text></claim>
<claim id="c-de-01-0003" num="0003">
<claim-text>Inferenzbeschleuniger nach Anspruch 1, wobei der Inferenzbeschleuniger einen Controller bzw. eine Steuervorrichtung (132) aufweist, der bzw. die mit dem zweiten Netzwerk verbunden ist</claim-text></claim>
<claim id="c-de-01-0004" num="0004">
<claim-text>Inferenzbeschleuniger nach Anspruch 1, wobei:
<claim-text>der GSM an jedes der Verarbeitungselemente über ein drittes Netzwerk (146) gekoppelt ist, das separat von dem ersten Netzwerk und dem zweiten Netzwerk ist;</claim-text>
<claim-text>jedes der Verarbeitungselemente einen lokalen Sync-Manager (155) aufweist; und</claim-text>
<claim-text>der GSM konfiguriert ist zum Vorsehen von Konfigurationsinformation an den lokalen Sync-Manager jedes Verarbeitungselements der Vielzahl von Verarbeitungselementen über das dritte Netzwerk.</claim-text></claim-text></claim>
<claim id="c-de-01-0005" num="0005">
<claim-text>Inferenzbeschleuniger nach Anspruch 1, wobei das erste Netzwerk konfiguriert ist Null-Codierung zu implementieren.</claim-text></claim>
<claim id="c-de-01-0006" num="0006">
<claim-text>Inferenzbeschleuniger nach Anspruch 1, wobei:
<claim-text>die Synchronisationsmodule der Vielzahl von Verarbeitungselementen, die durch den GSM zum Synchronisieren von Operationen der Vielzahl von Verarbeitungselementen genutzt werden, die entsprechenden TCMs sind;</claim-text>
<claim-text>jeder TCM ausgelegt ist zum Speichern eines Satzes von Synchronisationsvariablen; und</claim-text>
<claim-text>der GSM ausgelegt ist zum Speichern und Anpassen der Synchronisationsvariablen in den TCMs.</claim-text></claim-text></claim>
<claim id="c-de-01-0007" num="0007">
<claim-text>Ein Verfahren für einen Inferenzbeschleuniger (100), der eine Vielzahl von Verarbeitungselementen (112, 114, 116, 118), ein Speichersystem (102, 104, 106, 108), das an jedes der Verarbeitungselemente gekoppelt ist, und ein Globalsynchronisationsmanager- bzw. GSM-Modul (GSM = global synchronization manager) (136), das an die Vielzahl von Verarbeitungselementen und an das Speichersystem gekoppelt ist, hat, wobei jedes Verarbeitungselement<!-- EPO <DP n="20"> --> einen eng gekoppelten Speicher bzw. TCM (TCM = tightly coupled memory) (150) aufweist, wobei das Verfahren Folgendes aufweist:
<claim-text>Zugreifen, durch jedes Verarbeitungselement, auf das Speichersystem; und</claim-text>
<claim-text>Synchronisieren, durch den GSM, von Operationen der Vielzahl von Verarbeitungselementen und des Speichersystems unter Nutzung von entsprechenden Synchronisationsmodulen von jedem der Vielzahl von Verarbeitungselementen;</claim-text>
<claim-text>wobei:
<claim-text>jedes der Vielzahl von Verarbeitungselementen mit dem Speichersystem durch ein zweites Netzwerk (144) verbunden ist,</claim-text>
<claim-text><b>dadurch gekennzeichnet, dass</b>:
<claim-text>die Vielzahl von Verarbeitungselementen durch ein erstes Netzwerk (142) miteinander verbunden sind;</claim-text>
<claim-text>wobei das Verfahren weiter Durchführen von Multicast-Operationen durch das erste Netzwerk (142) aufweist; und</claim-text>
<claim-text>das zweite Netzwerk (144) separat von dem ersten Netzwerk (142) ist.</claim-text></claim-text></claim-text></claim-text></claim>
<claim id="c-de-01-0008" num="0008">
<claim-text>Verfahren nach Anspruch 7, wobei:
<claim-text>jedes Verarbeitungselement weiter einen Vektorprozessor (151), einen Skalarprozessor (153) und einen Matrixprozessor (152) aufweist; und</claim-text>
<claim-text>das Verfahren weiter Folgendes aufweist:
<claim-text>Durchführen von Gleitkomma-Operationen durch den Vektorprozessor; und</claim-text>
<claim-text>Durchführen von Gleitkomma-Operationen durch den Matrixprozessor.</claim-text></claim-text></claim-text></claim>
<claim id="c-de-01-0009" num="0009">
<claim-text>Verfahren nach Anspruch 7, wobei:
<claim-text>der GSM an jedes der Verarbeitungselemente über ein drittes Netzwerk (146) gekoppelt ist, das separat von dem ersten Netzwerk und dem zweiten Netzwerk ist;</claim-text>
<claim-text>jedes der Verarbeitungselemente einen lokalen Sync-Manager (155) aufweist;<!-- EPO <DP n="21"> --></claim-text>
<claim-text>wobei das Verfahren weiter Vorsehen, durch den GSM, von Konfigurationsinformation an den lokalen Sync-Manager jedes Verarbeitungselementes der Vielzahl von Verarbeitungselementen über das dritte Netzwerk aufweist.</claim-text></claim-text></claim>
<claim id="c-de-01-0010" num="0010">
<claim-text>Verfahren nach Anspruch 7, das weiter Implementieren von Null-Codierung durch das erste Netzwerk aufweist.</claim-text></claim>
</claims>
<claims id="claims03" lang="fr"><!-- EPO <DP n="22"> -->
<claim id="c-fr-01-0001" num="0001">
<claim-text>Accélérateur d'inférence (100) comprenant :
<claim-text>un système mémoire (112, 114, 116, 118) ;</claim-text>
<claim-text>une pluralité d'éléments de traitement (102, 104, 106, 108), chaque élément de traitement :
<claim-text>ayant une mémoire étroitement couplée (150), TCM ;</claim-text>
<claim-text>étant couplé au système mémoire ; et</claim-text>
<claim-text>étant adapté pour accéder au système mémoire ;</claim-text></claim-text>
<claim-text>un module de gestion de synchronisation globale (136), GSM, couplé à la pluralité d'éléments de traitement et au système mémoire, le GSM étant adapté pour synchroniser des opérations de la pluralité d'éléments de traitement et du système mémoire à l'aide de modules de synchronisation correspondants de chacun de la pluralité d'éléments de traitement ;</claim-text>
<claim-text>un deuxième réseau (144) connectant chacun de la pluralité d'éléments de traitement au système mémoire,</claim-text>
<claim-text><b>caractérisé en ce qu'</b>il comprend en outre :
<claim-text>un premier réseau (142) interconnectant la pluralité d'éléments de traitement et le premier réseau configuré pour prendre en charge des opérations de multidiffusion,</claim-text>
<claim-text>dans lequel le deuxième réseau (144) est distinct du premier réseau.</claim-text></claim-text></claim-text></claim>
<claim id="c-fr-01-0002" num="0002">
<claim-text>Accélérateur d'interférence selon la revendication 1, dans lequel chaque élément de traitement comprend en outre :
<claim-text>un processeur vectoriel (151) adapté pour effectuer des opérations en virgule flottante ;</claim-text>
<claim-text>un processeur scalaire (153) ; et</claim-text>
un processeur matriciel (152) adapté pour effectuer des opérations en virgule flottante.</claim-text></claim>
<claim id="c-fr-01-0003" num="0003">
<claim-text>Accélérateur d'interférence selon la revendication 1, dans lequel l'accélérateur d'inférence comprend en outre un contrôleur (132) connecté au deuxième réseau.<!-- EPO <DP n="23"> --></claim-text></claim>
<claim id="c-fr-01-0004" num="0004">
<claim-text>Accélérateur d'interférence selon la revendication 1, dans lequel :
<claim-text>le GSM est couplé à chacun des éléments de traitement par l'intermédiaire d'un troisième réseau (146) distinct du premier réseau et du deuxième réseau ;</claim-text>
<claim-text>chacun des éléments de traitement comprend un gestionnaire de synchronisation local (155) ; et</claim-text>
<claim-text>le GSM est configuré pour fournir des informations de configuration au gestionnaire de synchronisation local de chaque élément de traitement de la pluralité d'éléments de traitement par l'intermédiaire du troisième réseau.</claim-text></claim-text></claim>
<claim id="c-fr-01-0005" num="0005">
<claim-text>Accélérateur d'interférence selon la revendication 1, dans lequel le premier réseau est configuré pour mettre en oeuvre un codage zéro.</claim-text></claim>
<claim id="c-fr-01-0006" num="0006">
<claim-text>Accélérateur d'interférence selon la revendication 1, dans lequel :
<claim-text>les modules de synchronisation de la pluralité d'éléments de traitement utilisés par le GSM pour synchroniser des opérations de la pluralité d'éléments de traitement sont les TCM correspondants ;</claim-text>
<claim-text>chaque TCM est adapté pour stocker un ensemble de variables de synchronisation ; et</claim-text>
<claim-text>le GSM est adapté pour stocker et régler les variables de synchronisation dans les TCM.</claim-text></claim-text></claim>
<claim id="c-fr-01-0007" num="0007">
<claim-text>Procédé pour un accélérateur d'inférence (100) ayant une pluralité d'éléments de traitement (112, 114, 116, 118), un système mémoire (102, 104, 106, 108) couplé à chacun des éléments de traitement, et un module de gestion de synchronisation globale (136), GSM, couplé à la pluralité d'éléments de traitement et au système mémoire, dans lequel chaque élément de traitement comprend une mémoire étroitement couplée (150), TCM, le procédé comprenant :
<claim-text>l'accès, par chaque élément de traitement, au système mémoire ; et<!-- EPO <DP n="24"> --></claim-text>
<claim-text>la synchronisation, par le GSM, d'opérations de la pluralité d'éléments de traitement et du système mémoire à l'aide de modules de synchronisation correspondants de chacun de la pluralité d'éléments de traitement ;</claim-text>
<claim-text>dans lequel :
<claim-text>chacun de la pluralité d'éléments de traitement est connecté au système mémoire par un deuxième réseau (144),</claim-text>
<claim-text><b>caractérisé en ce que</b> :
<claim-text>la pluralité d'éléments de traitement est interconnectée par un premier réseau (142) ;</claim-text>
<claim-text>le procédé comprend en outre la mise en oeuvre d'opérations de multidiffusion par le premier réseau (142) ; et</claim-text>
<claim-text>le deuxième réseau (144) est distinct du premier réseau (142) .</claim-text></claim-text></claim-text></claim-text></claim>
<claim id="c-fr-01-0008" num="0008">
<claim-text>Procédé selon la revendication 7, dans lequel :
<claim-text>chaque élément de traitement comprend en outre un processeur vectoriel (151), un processeur scalaire (153) et un processeur matriciel (152) ; et</claim-text>
<claim-text>le procédé comprend en outre :
<claim-text>la mise en oeuvre d'opérations en virgule flottante par le processeur vectoriel ; et</claim-text>
<claim-text>la mise en oeuvre d'opérations en virgule flottante par le processeur matriciel.</claim-text></claim-text></claim-text></claim>
<claim id="c-fr-01-0009" num="0009">
<claim-text>Procédé selon la revendication 7, dans lequel :
<claim-text>le GSM est couplé à chacun des éléments de traitement par l'intermédiaire d'un troisième réseau (146) distinct du premier réseau et du deuxième réseau ;</claim-text>
<claim-text>chacun des éléments de traitement comprend un gestionnaire de synchronisation local (155) ;</claim-text>
<claim-text>le procédé comprend en outre la fourniture, par le GSM, d'informations de configuration au gestionnaire de synchronisation local de chaque élément de traitement de la pluralité d'éléments de traitement par l'intermédiaire du troisième réseau.</claim-text><!-- EPO <DP n="25"> --></claim-text></claim>
<claim id="c-fr-01-0010" num="0010">
<claim-text>Procédé selon la revendication 7, comprenant en outre la mise en oeuvre d'un codage zéro par le premier réseau.</claim-text></claim>
</claims>
<drawings id="draw" lang="en"><!-- EPO <DP n="26"> -->
<figure id="f0001" num="1"><img id="if0001" file="imgf0001.tif" wi="133" he="161" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="27"> -->
<figure id="f0002" num="1A"><img id="if0002" file="imgf0002.tif" wi="142" he="219" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="28"> -->
<figure id="f0003" num="2"><img id="if0003" file="imgf0003.tif" wi="126" he="233" img-content="drawing" img-format="tif"/></figure>
</drawings>
<ep-reference-list id="ref-list">
<heading id="ref-h0001"><b>REFERENCES CITED IN THE DESCRIPTION</b></heading>
<p id="ref-p0001" num=""><i>This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.</i></p>
<heading id="ref-h0002"><b>Patent documents cited in the description</b></heading>
<p id="ref-p0002" num="">
<ul id="ref-ul0001" list-style="bullet">
<li><patcit id="ref-pcit0001" dnum="WO2008046716A1"><document-id><country>WO</country><doc-number>2008046716</doc-number><kind>A1</kind></document-id></patcit><crossref idref="pcit0001">[0002]</crossref></li>
</ul></p>
</ep-reference-list>
</ep-patent-document>
