Resultados da pesquisa a pedido "avx"

2 a resposta

Por que o gcc não resolve _mm256_loadu_pd como um único vmovupd?

Estou escrevendo alguns AVX e eu preciso carregar da memória potencialmente desalinhada. Atualmente, estou carregando 4 doubles, portanto, eu usaria instruções intrínsecas _mm256, _loadu_pd [https://software.intel.com/en-us/node/524102]; o ...

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

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

2 a resposta

Usando registros ymm como um local de armazenamento "semelhante à memória"

Considere o seguinte loop em x86: ; on entry, rdi has the number of iterations .top: ; some magic happens here to calculate a result in rax mov [array + rdi * 8], rax ; store result in output array dec rdi jnz .topÉ simples: algo calcula um ...

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

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

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

0 a resposta

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

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

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