Resultados da pesquisa a pedido "avx"
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 ...
Como usar instruções Fused Multiply-Add (FMA) com SSE / AVX
Eu aprendi que alguns processadores Intel / AMD podem fazer multiplicação simultânea e adicionar com SSE / AVX:FLOPS por ciclo para ponte de areia e haswell ...
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 ...
Atomicidade por elemento da carga / armazenamento do vetor e coleta / dispersão?
Considere uma matriz comoatomic<int32_t> shared_array[]. E se você quiser SIMD vetorizarfor(...) sum += shared_array[i].load(memory_order_relaxed)? Ou para pesquisar em uma matriz o primeiro elemento diferente de zero ou zerar um intervalo dele? ...
Desabilitar funções otimizadas para AVX no glibc (LD_HWCAP_MASK, /etc/ld.so.nohwcap) para registro valgrind e gdb
O linux x86_64 moderno com glibc detectará que a CPU suporta a extensão AVX e alternará muitas funções de string da implementação genérica para aOtimizado para ...
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:
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 ...
FMA3 no GCC: como ativar
Eu tenho um i5-4250U que possui AVX2 e FMA3. Estou testando algum código denso de multiplicação de matrizes no GCC 4.8.1 no Linux, que escrevi. Abaixo está uma lista de três maneiras diferentes de compilar. SSE2: gcc matrix.cpp -o matrix_gcc -O3 ...
Como executar o deslocamento à esquerda do elemento com __m128i?
As instruções de mudança de SSE que encontrei só podem mudar na mesma quantia em todos os elementos:
as variáveis SSE / AVX locais estáticas / estáticas estão bloqueando um registro xmm / ymm?
Ao usar intrínsecas SSE, geralmente são necessários zero vetores. Uma maneira de evitar a criação de uma variável zero dentro de uma função sempre que a função é chamada (cada vez que efetivamente chamamos alguma instrução vetorial xor) ...