Resultados da pesquisa a pedido "x86"

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

5 a resposta

Perda de precisão do ponto flutuante c ++: 3015 / 0.00025298219406977296

O problema. Compilador do Microsoft Visual C ++ 2005, windows de 32 bits xp sp3, amd 64 x2 cpu. Código: double a = 3015.0; double b = 0.00025298219406977296; //*((unsigned __int64*)(&a)) == 0x40a78e0000000000 //*((unsigned __int64*)(&b)) ...

11 a resposta

Cálculo de ponto flutuante vs número inteiro no hardware moderno

Estou fazendo um trabalho crítico de desempenho em C ++ e atualmente estamos usando cálculos inteiros para problemas que são inerentemente ponto flutuante porque "é mais rápido". Isso causa muitos problemas irritantes e adiciona muitos códigos ...

2 a resposta

Como o ponteiro da pilha é alterado neste programa com call e ret

Minhas perguntas dizem respeito às ações que parecem acontecer entre as linhas quando o contexto é alterado, especialmente em relação aRSP eRBP. Dado este programa muito simples: Reading symbols from ./function_call...done. (gdb) disass main ...

0 a resposta

NOPs longos de vários bytes: macros comumente entendidas ou outra notação

Não é um grande segredo que os processadores x86 (e x86_64) tenham não apenas o byte únicoNOP instruções, mas também vários tipos de instruções semelhantes a NOP de vários bytes. Existem os que eu consegui encontrar: Recomendado pela AMD, ...

2 a resposta

Operação MUL em montagem

Eu tenho as seguintes linhas de montagem: ... MOV ECX, 0x36EE80 MOV EDX, 0x95217CB1 MUL EDX SHR EDX, 0x15 MOV DWORD PTR SS:[EBP-0x3C8], EDX .... ....Então, ...

2 a resposta

Largura de banda da memória L1: queda de 50% na eficiência usando endereços que diferem em 4096 + 64 bytes

Desejo obter a largura de banda máxima das seguintes operações com os processadores Intel. for(int i=0; i<n; i++) z[i] = x[i] + y[i]; //n=2048onde x, ye z são matrizes flutuantes. Estou fazendo isso nos sistemas Haswell, Ivy Bridge e ...

4 a resposta

Modos de micro fusão e endereçamento

Encontrei algo inesperado (para mim) usando oAnalisador de código de arquitetura Intel® [https://software.intel.com/en-us/articles/intel-architecture-code-analyzer] (IACA). A seguinte instrução usando[base+index] endereçamento addps xmm1, ...

5 a resposta

A maneira mais eficiente de subtrair uma matriz de outra

Eu tenho o código a seguir, que é o gargalo em uma parte do meu aplicativo. Tudo o que faço é subtrair o Array de outro. Ambas as matrizes têm mais de 100000 elementos. Estou tentando encontrar uma maneira de tornar isso mais eficiente. var ...

2 a resposta

CMP em x86 com parênteses e endereço

Eu tenho a seguinte linha na linguagem Assembly x86 que não sei o que faz ... cmp %eax,0x80498d4(,%ebx,4)Sei que está comparando as duas partes da declaração, mas não sei o que o endereço faz e o que os parênteses fazem. Alguns esclarecimentos ...