Resultados da pesquisa a pedido "avx"

1 a resposta

A maneira mais eficiente de obter __m256 de somas horizontais de 8 fonte __m256 vetores

Eu sei somar um__m256 para obter um único valor somado. No entanto, tenho 8 vetores como Input 1: a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], ....., ....., 8: h[0], h[1], h[2], h[3], h[4], a[5], a[6], ...

1 a resposta

Onde está o intrínseco '_mm256_pow_ps' de Clang?

Não consigo encontrar os intrínsecos para _mm_pow_ps ou _mm256_pow_ps, os quais devem estar incluídos no 'immintrin.h'. Clang não define isso ou eles estão em um cabeçalho que não estou incluindo?

1 a resposta

Nova sintaxe de instruções do AVX

Eu tinha um código C escrito com alguns intel-intrinsincs. Depois de compilá-lo primeiro com avx e depois com sinalizadores ssse3, obtive dois códigos de montagem bem diferentes. Por exemplo: AVX: vpunpckhbw %xmm0, %xmm1, %xmm2SSSE3: movdqa ...

1 a resposta

AVX2, como carregar com eficiência quatro números inteiros em índices pares de um registro de 256 bits e copiar em índices ímpares?

Eu tenho uma matriz alinhada de números inteiros na memória contendo os índices I0, I1, I2, I3. Meu objetivo é colocá-los em um registro __m256i contendo I0, I0 + 1, I1, I1 + 1, I2, I2 + 1, I3, I3 + 1. A parte mais difícil é colocá-los ...

1 a resposta

Deslocando 4 números inteiros para a direita por valores diferentes SIMD

O SSE não fornece uma maneira de mudar números inteiros compactados por uma quantidade variável (eu posso usar qualquer instrução AVX e mais antiga). Você só pode fazer turnos uniformes. O resultado que estou tentando obter para cada número ...

1 a resposta

As operações escalares do AVX são muito mais rápidas

Eu testo a seguinte função simples void mul(double *a, double *b) { for (int i = 0; i<N; i++) a[i] *= b[i]; }com matrizes muito grandes para que ele seja vinculado à largura de banda da memória. O código de teste que eu uso está abaixo. Quando ...

1 a resposta

O zeramento de vxorps no AMD Jaguar / Bulldozer / Zen é mais rápido com registros xmm que ymm?

As CPUs AMD lidam com instruções AVX 256b decodificando em duas operações 128b. por exemplo.vaddps ymm0, ymm1,ymm1 no AMD Steamroller decodifica para 2 macro-ops, com metade da taxa de transferência devaddps xmm0, xmm1,xmm1. O zeramento de XOR é ...

1 a resposta

Multiplicação de matriz grande (0,1) usando AND bit a bit e popcount em vez de reais int ou float multiplica-se?

Para multiplicar matrizes binárias grandes (10Kx20K), o que costumo fazer é converter as matrizes em unidades flutuantes e executar a multiplicação da matriz flutuante, pois a multiplicação da matriz inteira é bem lenta (dê uma olhada ...

1 a resposta

Aritmética de ponto flutuante de meia precisão em chips Intel

É possível executar aritmética de ponto flutuante de meia precisão em chips Intel? Eu sei como carregar / armazenar / converter números de ponto flutuante de meia precisão [1], mas não sei como adicioná-los / multiplicá-los sem converter ...

1 a resposta

O relatório perf mostra que esta função “__memset_avx2_unaligned_erms” possui sobrecarga. isso significa que a memória está desalinhada?

Estou tentando criar um perfil do meu código C ++ usando a ferramenta perf. A implementação contém código com instruções SSE / AVX / AVX2. Além desse código, é compilado com-O3 -mavx2 -march=native bandeiras. Acredito__memset_avx2_unaligned_erms ...