Apparatus and method of efficient vector roll operation

    公开(公告)号:GB2512174A

    公开(公告)日:2014-09-24

    申请号:GB201323112

    申请日:2013-12-30

    Applicant: INTEL CORP

    Abstract: 1st and 2nd intermediate vectors are formed from an N-bit input vector and combined to generate the resultant rolled version of the input vector. The 1st intermediate vector is formed by barrel rolling elements of the input vector along a 1st of two lanes defined by the N/2 bits of the upper half and the N/2 bits of the lower half of the input vector. The second intermediate vector is formed by barrel rolling elements of the input vector along the 2nd of these two lanes. The resultant rolled version of the input vector is formed by incorporating the upper portions of one of the intermediate vector's upper and lower halves as upper portions of the resultant's upper and lower halves and incorporating lower portions of the other intermediate vector's upper and lower halves as lower portions of the resultant's upper and lower halves. To form the intermediate values, a vector shuffle, a vector insert, a vector extract or a vector broadcast instruction can be used. Similarly, to form the resultant value, a vector blend instruction can be used.

    instruções e lógica para vetorizar laços condicionais

    公开(公告)号:BR102013032654A2

    公开(公告)日:2016-06-28

    申请号:BR102013032654

    申请日:2013-12-18

    Applicant: INTEL CORP

    Inventor: ULIEL TAL

    Abstract: instruções e lógica para vetorrizar laços condicionais. a presente invençao trata de instruçoes e lógica para prover vetorização de laços condicionais.uma instrução de expansão de vetor tem um parâmetro paraespecificar um vetor de origem, um parâmetro paraespecificar um registrador de máscaras de condições e umparâmetro de destino para especificar um vetor dedestino para guardar n elementos vetoriais consecutivos,cada. 1nn da pluralidade de 11 elementos 'vetoriaisconsecutivos tendo um mesmo tamanho de partição variávelde m bytes. em resposta à instrução do processador, osdados são copiados a partirde elementos vetoriaisconsecutivos do vetor de origem e expandidos paraelementos vetoriais não nmscarados do xmnxnf de destinoespecificado, sem copiar dados para elementos vetoriaismascarados do vetor de destino, em que n varia emresposta à instrução doiprocessador executada. o vetorde origem pode ser um registrador e o vetor de destino estar na memória. algumas modalidades armazenam contagens das decisões de condição. modalidadesalternativas podem armazenar outros dados, por exemplo,tais como endereços de destino, ou deslocamentos de tabela ou indicadores de diretivas de jprocessamento,etc.

    Befehle und Logik zur Vektorisierung von bedingten Schleifen

    公开(公告)号:DE102013021221A1

    公开(公告)日:2014-07-03

    申请号:DE102013021221

    申请日:2013-12-17

    Applicant: INTEL CORP

    Abstract: Befehle und Logik stellen eine Vektorisierung von bedingten Schleifen bereit. Ein Vektorerweiterungsbefehl weist einen Parameter zur Bestimmung eines Quellenvektors, einen Parameter zur Bestimmung eines Bedingungsmaskenregisters und einen Destinationsparameter zur Bestimmung eines Destinationsvektors zum Halten von n fortlaufenden Vektorelementen auf, wobei jedes der Vielzahl von n fortlaufenden Vektorelementen eine gleiche variable Unterteilungsgröße von m Bytes aufweist. Als Reaktion auf den Prozessorbefehl werden Daten von fortlaufenden Vektorelementen in dem Quellenvektor kopiert und in unmaskierte Vektorelemente des bestimmten Destinationsvektors erweitert, ohne dass Daten in maskierte Vektorelemente des Destinationsvektors kopiert werden, wobei sich n als Reaktion auf den ausgeführten Prozessorbefehl verändert. Der Quellenvektor kann ein Register sein, und der Destinationsvektor kann sich im Speicher befinden. Einige Ausführungsformen speichern Zählwerte der Bedingungsentscheidungen. Alternative Ausführungsformen können andere Daten speichern, zum Beispiel etwa Zieladressen oder den Tabellenversatz oder Indikatoren von Verarbeitungsanweisungen usw.

    Vorrichtung und Verfahren für eine effiziente Vektor-Roll-Operation

    公开(公告)号:DE102013020834A1

    公开(公告)日:2014-07-03

    申请号:DE102013020834

    申请日:2013-12-12

    Applicant: INTEL CORP

    Abstract: Ein maschinenlesbares Speichermedium, das Programmcode umfasst, ist beschrieben, der, wenn er von einem Prozessor verarbeitet wird, verursacht, dass ein Verfahren durchgeführt wird. Das Verfahren weist ein Erzeugen einer resultierenden gerollten Version eines Eingabevektors durch Formen eines ersten Zwischenvektors, Formen eines zweiten Zwischenvektors und Formen einer resultierenden gerollten Version eines Eingabevektors auf. Der erste Zwischenvektor wird durch Tonnen-Rollen von Elementen des Eingabevektors entlang einer ersten von zwei Spuren geformt, die durch eine obere Hälfte und eine untere Hälfte des Eingabevektors definiert sind. Der zweite Zwischenvektor wird durch Tonnen-Rollen von Elementen des Eingabevektors entlang einer zweiten der zwei Spuren geformt. Die resultierende gerollte Version des Eingabevektors wird durch Einarbeiten von oberen Abschnitten einer oberen und unteren Hälfte eines der Zwischenvektoren als obere Abschnitte einer oberen und unteren Hälfte der Resultanten und durch Einarbeiten von unteren Abschnitten einer oberen und unteren Hälfte des anderen Zwischenvektors als untere Abschnitte der oberen und unteren Hälfte der Resultanten geformt.

    Masking for compress and rotate instructions in vector processors

    公开(公告)号:GB2507655A

    公开(公告)日:2014-05-07

    申请号:GB201318167

    申请日:2013-10-14

    Applicant: INTEL CORP

    Abstract: Vector instruction 1401 comprises vector source1420 and destination 1440, destination offset 1430, and mask 1410. Data fields in the mask correspond to locations in the vector. An execution unit copies unmasked vector elements from source operand 1420 to adjacent sequential element locations in the vector destination (e.g. 4 to 7), starting at the offset location. Mask values track progress and/or completion of vector compress and rotate instructions in a processor. Upon copying an unmasked vector source to destination, the corresponding field in the mask is changed to masked. An instruction can be re-executed after the destination, which has become full, is stored to a memory by using the modified mask and an offset of zero. This compresses only the elements that still need execution. Uses include SIMD vector compress and rotate instructions for benchmark applications, e.g. the inner loop of 444.NAMD of the SPEC suite, otherwise not easily vectorised.

    Anweisung und Logik zum Bereitstellen einer Vektorkompressions- und Rotationsfunktionalität

    公开(公告)号:DE102013018238A1

    公开(公告)日:2014-04-30

    申请号:DE102013018238

    申请日:2013-10-30

    Applicant: INTEL CORP

    Abstract: Anweisungen und eine Logik zum Bereitstellen von einer Vektorkompressions- und Rotationsfunktionalität. Einige Ausführungsbeispiele führen ansprechend auf eine Instruktion, die Folgendes spezifiziert: eine Vektorquelle, eine Maske, ein Vektorziel und Zielversatz, ein Lesen der Maske und ein Kopieren entsprechender unmaskierter Vektorelemente von einer Vektorquelle zu sequentiell benachbarten Positionen in dem Vektorziel, beginnend bei einer Vektorzielversatzposition, aus. In einigen Ausführungsbeispielen werden die unmaskierten Vektorelemente von der Vektorquelle zu sequentiell benachbarten Elementenpositionen kopiert modulo der Gesamtzahl von Elementenpositionen in dem Vektorziel. In einigen Ausführungsbeispielen wird das Kopieren angehalten, wenn immer das Vektorziel voll ist und auf ein Kopieren eines unmaskierten Vektorelementes von der Vektorquelle zu einer sequentiell benachbarten Elementenposition in dem Vektorziel, wobei der Wert des entsprechenden Feldes in der Maske zu einem maskierten Wert gewechselt wird. Alternative Ausführungsbeispiele setzen Elemente zu Null in dem Vektorziel, in welcher keine Elemente von der Vektorquelle kopiert werden.

    Instruction and logic to provide vector compress and rotate functionality

    公开(公告)号:GB2507655B

    公开(公告)日:2015-06-24

    申请号:GB201318167

    申请日:2013-10-14

    Applicant: INTEL CORP

    Abstract: Instructions and logic provide vector compress and rotate functionality. A processor may include a mask register, a decoder, and an execution unit. The mask register may include a data field, wherein the data field corresponds to an element location in a vector. The decoder may be coupled to the mask register. The decoder may decode an instruction to obtain a decoded instruction. The decoded instruction may specify a vector source, the mask register, a vector destination, and a vector destination offset location. The execution unit is coupled to the decoder. The execution unit may read an unmasked value in the data field; copy an vector element from the vector source to a location adjacent to the element; change the unmasked value to a masked value; determine that the vector destination is full; store a vector destination operand associated with the vector destination in a memory; and re-execute the instruction using the masked value and the vector destination offset location.

    Instructions and logic to vectorize conditional loops

    公开(公告)号:GB2511198A

    公开(公告)日:2014-08-27

    申请号:GB201323062

    申请日:2013-12-27

    Applicant: INTEL CORP

    Abstract: SIMD vectorisation of conditional loops is provided. A vector of counts is initialized (1610) to n count values, the vector having n data fields to store elements having a partition size of m bytes (e.g. 4-byte double words); a decision vector is obtained (1620) and used to generate a mask (1630); a vector expand instruction is received (1640), which has the count vector as a source, uses the generated mask and specifies a destination vector of n elements, each having a size of m bytes; the instruction causes the copying of consecutive source vector data into unmasked destination vector elements (1620). n varies according to the received instruction. Masked elements of the destination vector are set to zero. Counts of the condition decisions are also stored (1660, 1670). One application is processing loops in benchmark suites for online clustering based on finding medians to assign points to their nearest centre.

Patent Agency Ranking