Resultados da pesquisa a pedido "simd"

3 a resposta

Bitmap uint8_t ideal em um vetor "bool" SIMD de 8 x 32 bits

Como parte de um algoritmo de compactação, estou procurando a maneira ideal de obter o seguinte: Eu tenho um bitmap simples em umuint8_t. Por exemplo 01010011 O que eu quero é um__m256i do formulário: (0, maxint, 0, maxint, 0, 0, ...

2 a resposta

transmissões SIMD implícitas (SSE / AVX) com o GCC

Consegui converter a maior parte do meu código SIMD para as extensões de vetor do GCC. No entanto, não encontrei uma boa solução para fazer uma transmissão da seguinte maneira __m256 areg0 = _mm256_broadcast_ss(&a[i]);eu quero fazer __m256 ...

1 a resposta

Como acelerar este histograma de pesquisas LUT?

Primeiro, eu tenho uma matrizint a[1000][1000]. Todos esses números inteiros estão entre 0 e 32767 e são constantes conhecidas: eles nunca mudam durante uma execução do program Segundo, eu tenho uma matriz b [32768], que contém números inteiros ...

3 a resposta

Paralelo para vs omp simd: quando usar cada um?

OpenMP 4.0 introduz uma nova construção chamada "omp simd". Qual é o benefício de usar essa construção sobre o antigo "paralelo para"? Qu...

1 a resposta

Intrínsecas Constexpr e SSE

A maioria dos compiladores C ++ oferece suporte a instruções SIMD (SSE / AVX) com recursos como _mm_cmpeq_epi32Meu problema com isso é que essa função não está marcada comoconstexpr, embora "semanticamente" não haja motivo para essa função ...

2 a resposta

Qual é a maneira mais eficiente de carregar e extrair valores inteiros de 32 bits de um vetor SSE de 128 bits?

Estou tentando otimizar meu código usando intrínsecas SSE, mas estou com um problema em que não conheço uma boa maneira de extrair os valores inteiros de um vetor depois de executar as operações intrínsecas SSE para obter o que quero. Alguém ...

3 a resposta

adicionando os componentes de um registro SSE

Quero adicionar os quatro componentes de um registro SSE para obter um único flutuador. É assim que faço agora: float a[4]; _mm_storeu_ps(a, foo128); float x = a[0] + a[1] + a[2] + a[3]; Existe uma instrução SSE que alcança isso diretament

2 a resposta

Como converter com eficiência um bitmap de 8 bits em uma matriz de números inteiros 0/1 com x86 SIMD

Eu quero converter inteiro de 8 bits em uma matriz de tamanho 8 com cada valor contendo o valor de bit de um inteiro. Por exemplo: eu tenhoint8_t x = 8; Eu quero converter isso paraint8_t array_x = {0,0,0,0,1,0,0,0}; Isso deve ser feito com ...

5 a resposta

Cópia SSE, cópia AVX e desempenho std :: copy

Eu tentei melhorar o desempenho da operação de cópia via SSE e AVX:

3 a resposta

Implementação mais rápida da função exponencial usando o AVX

Estou procurando uma aproximação eficiente (rápida) da função exponencial que opera em elementos AVX (ponto flutuante de precisão única). Ou seja -__m256 _mm256_exp_ps( __m256 x ) sem SVML. Precisão relativa deve ser algo como ~ 1e-6 ou ~ 20 ...