Resultados da pesquisa a pedido "simd"

1 a resposta

Recebo uma penalidade de desempenho ao misturar instruções SIMD de número inteiro / flutuante SSE

Eu usei instruções x86 SIMD (SSE1234) na forma de intrínsecas bastante ultimamente. O que eu achei frustrante é que o SSE ISA tem várias instruções simples que estão disponíveis apenas para floats ou apenas para números inteiros, mas, em teoria, ...

1 a resposta

conceitos gcc, intrínsecos simd e matemática rápida

Olá a todos :) Estou tentando entender alguns conceitos sobre ponto flutuante, SIMD / intrínsecas matemáticas e a flag de matemática rápida para o gcc. Mais especificamente, estou usando o MinGW com o gcc v4.5.0 em uma CPU x86. Eu pesquisei por ...

1 a resposta

Como essa função calcula o valor absoluto de um float por meio de uma operação NOT e AND?

Estou tentando entender como o seguinte trecho de código funciona. Este programa usa instruções vetoriais SIMD (Intel SSE) para calcular o valor absoluto de 4 flutuadores (portanto, basicamente, uma função "fabs ()" vetorizada). Aqui está o ...

1 a resposta

A maneira mais rápida de descompactar 32 bits em um vetor SIMD de 32 bytes

Tendo 32 bits armazenados em umuint32_t na memória, qual é a maneira mais rápida de descompactar cada bit em um elemento de byte separado de um registro AVX? Os bits podem estar em qualquer posição dentro de seus respectivos bytes. Edit: para ...

3 a resposta

transpor para 8 registros de elementos de 16 bits no SSE2 / SSSE3

(Sou novato no SSE / asm, desculpe-me se isso for óbvio ou redundante) Existe uma maneira melhor de transpor 8 registros SSE contendo valores de 16 bits do que executar 24 unpck [lh] ps e 8/16 + shuffles e usar 8 registros extras? (Observe ...

2 a resposta

seletivamente copiar elementos de uma lista com instruções do AVX2

Desejo acelerar a operação a seguir com as instruções do AVX2, mas não consegui encontrar uma maneira de fazê-lo. Recebo uma grande variedadeuint64_t data[100000] de uint64_t e uma matrizunsigned char indices[100000] de bytes. Eu quero gerar uma ...

2 a resposta

Adição horizontal com __m512 (AVX512)

Como é possível executar com eficiência adição horizontal com flutuadores em um registro AVX de 512 bits (por exemplo, adicionar os itens de um único vetor)? Para registros de 128 e 256 bits, isso pode ser feito usando _mm_hadd_ps ...

1 a resposta

Diferença entre as instruções AVX vxorpd e vpxor

De acordo comGuia intrínseco da Intel [https://software.intel.com/sites/landingpage/IntrinsicsGuide/], vxorpd ymm, ymm, ymm: Calcule o XOR bit a bit dos elementos de ponto flutuante de precisão dupla compactada (64 bits) em aeb, e armazene os ...

3 a resposta

Testando a igualdade entre duas variáveis __m128i

Se eu quiser fazer um teste de igualdade bit a bit entre dois__m128i variáveis, sou obrigado a usar uma instrução SSE ou posso usar==? Caso contrário, qual instrução SSE devo usar?

2 a resposta

CPU SIMD vs GPU SIMD?

A GPU usa oSIMD [http://en.wikipedia.org/wiki/SIMD]paradigma, ou seja, a mesma parte do código será executada em paralelo e aplicada a vários elementos de um conjunto de dados. No entanto, a CPU também usa SIMD e fornece paralelismo em nível de ...