Resultados da pesquisa a pedido "sse"
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 ...
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 ...
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 ...
Carregando um xmm dos registros do GP
Digamos que você tenha valores emrax erdx você deseja carregar em umxmm registo. Uma maneira seria: movq xmm0, rax pinsrq xmm0, rdx, 1É bem lento! Existe uma maneira melhor?
Como usar corretamente as instruções de pré-busca?
Estou tentando vetorizar um loop, computando o produto escalar de um grande vetor de flutuador. Estou computando em paralelo, utilizando o fato de que a CPU possui uma grande quantidade de registros XMM, assim: __m128* A, B; __m128 dot0, dot1, ...
Quão mais rápidas são as instruções de sequência do SSE4.2 que o SSE2 para o memcmp?
Aqui está o assembler do meu código Você pode incorporá-lo em c ++ e verificar o SSE4? A velocidade Eu gostaria muito de ver como entrou no desenvolvimento do SSE4. Ou não está preocupado com ele? Vamos verificar (não tenho suporte acima do ...
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? ...
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 ...
Tornar os armazenamentos de memória anteriores visíveis para as cargas de memória subsequentes
Quero armazenar dados em uma grande variedade com_mm256_stream_si256() chamado em um loop. Pelo que entendi, é necessária uma cerca de memória para tornar essas alterações visíveis para outros threads. A descrição de_mm_sfence() diz Execute uma ...
diferença entre o registro MMX e XMM?
Atualmente, estou aprendendo programação de montagem no processador Intel x86. Alguém poderia me explicar, qual é a diferença entre o registro MMX e XMM? Estou muito confuso em termos de quais funções eles servem e a diferença e ...