Pergunta

Acabei de notar que em nosso projeto deixou o sinalizador "Ativar conjunto de instruções aprimorado" deixado sem ser definido, provavelmente apenas uma supervisão.

Antes de ativar a bandeira, gostaria de perguntar se alguém já viu alguma melhoria de desempenho no mundo real que a permitisse?

Acho que veremos alguma melhoria que nosso aplicativo faz constantemente calucações baseadas em pontos flutuantes, mas não é uma parte importante.

Foi útil?

Solução

Portanto, em poucas palavras: essa configuração permite apenas certas funções intrínsecas que mapeiam diretamente nas instruções SSE. Nos programas C ++ normais, você não usa essas funções intrínsecas; portanto, essa configuração não melhorará o desempenho.

Se você precisar de mais desempenho, tente encontrar um compilador que reescreva seu código para usar as instruções da SSE (a Intel afirma que seu compilador pode), mas provavelmente é mais inteligente ir para o Multicore (com o OpenMP ou .NET 4.0) ou usar a GPU , que é mais rápido e mais flexível que o SSE.

Outras dicas

O benefício de desempenho dependerá de você o projeto usar cálculos matemáticos intensivos. Para muitas tarefas (rede, processamento de texto, gerenciamento de dados), isso simplesmente não é o caso, pois não são usadas operações de ponto flutuante (ou quase não). Portanto, não haverá impulso de desempenho.

O uso de instruções SSE/SSE2 geradas pelo compilador não geraria desempenho superior. Primeiro, você não terá nenhum controle sobre a geração de código real. Existem cenários em que você precisa usar o código Legacy (x87) em um sistema antigo e o código habilitado para SSE/SSE2 em um novo sistema. Você também pode querer aproveitar o SSE3 na maioria dos sistemas mais recentes. Para esse fim, eu recomendo verificar o tipo de processador usando o cpuid Instrução e depois mude para uma implementação que possa aproveitar mais os recursos do processador. Em seguida, você pode usar o Compiler Intrinsics nas implementações direcionadas ao SSE/SSE2. Para segmentar o SSE3, você precisará de uma biblioteca dedicada que estou tentando localizar na Internet.

Acredito que deve existir bibliotecas que executem a análise dos recursos do processador e permitam o melhor número de código de código. Eu só preciso de algum tempo para olhar a rede também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top