Resultados da pesquisa a pedido "avx"

2 a resposta

As diferentes versões mmx, sse e avx são complementares ou superconjuntos?

Estou pensando em me familiarizar com as extensões x86 SIMD. Mas antes mesmo de começar, tive problemas. Não consigo encontrar uma boa visão geral sobre quais deles ainda são relevantes. A arquitetura x86 acumulou muitas extensões de matemática ...

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 ...

3 a resposta

Como resolver o problema de alinhamento de 32 bytes nas operações de carregamento / armazenamento do AVX?

Estou tendo problemas de alinhamento ao usarymm registra, com alguns trechos de código que me parecem bons. Aqui está um exemplo de trabalho mínimo: #include <iostream> #include <immintrin.h> inline void ones(float *a) { __m256 out_aligned = ...

1 a resposta

Como mover o dobro em% rax para uma determinada posição qword em% ymm ou% zmm? (Kaby Lake ou posterior)

A ideia é que eu gostaria de coletar valores retornados dedouble em um registro vetorial para processamento para máquinaimm width de uma vezsemarmazenando de volta na memória primeiro. O processamento específico é umvfma com outros dois ...

2 a resposta

Como escrever código c ++ que o compilador pode compilar com eficiência para SSE ou AVX?

Digamos que eu tenha uma função escrita em c ++ que execute multiplicações de vetores de matriz em muitos vetores. É necessário um ponteiro para a matriz de vetores a ser transformada. Estou correto ao supor que o compilador não pode otimizar ...

1 a resposta

Carregando 8 caracteres da memória em uma variável __m256, como flutuadores de precisão única compactados

Estou otimizando um algoritmo para desfoque gaussiano em uma imagem e quero substituir o uso de um buffer flutuante [8] no código abaixo por uma variável intrínseca __m256. Que série de instruções é mais adequada para esta tarefa? // unsigned ...

2 a resposta

Gere automaticamente instruções FMA no MSVC

MSVC suporta instruções AVX / AVX2 há anos e de acordo comesta postagem no blog msdn [http://blogs.msdn.com/b/vcblog/archive/2014/02/28/avx2-support-in-visual-studio-c-compiler.aspx] , ele pode gerar automaticamenteFMA (Multiplicado com ...

1 a resposta

Quais são as melhores seqüências de instruções para gerar constantes vetoriais em tempo real?

"Melhor" significa o menor número de instruções (ou o menor número de uops, se houver alguma instrução decodificada para mais de um uop). O tamanho do código da máquina em bytes é um desempatador para igual número de insn. A geração constante é, ...

2 a resposta

Os índices de bytes diferentes de zero de um registro SSE / AVX

Se o valor de um registro SSE / AVX for tal que todos os seus bytes sejam 0 ou 1, existe alguma maneira de obter com eficiência os índices de todos os elementos diferentes de zero? Por exemplo, se o valor xmm for | r0 = 0 | r1 = 1 | r2 = 0 | r3 ...

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], ...