Busca

Busca  



Todos os Horários estão como UTC - 3 horas




Criar novo tópico Responder Tópico  [ 65 Mensagens ]  Ir para a página Anterior  1 ... 3, 4, 5, 6, 7  Próximo
Autor Mensagem
 Assunto do Tópico:
MensagemEnviado: Dom Ago 03, 2008 11:57 am 
Offline
Usuário Pleno
Avatar de usuário

Data de registro: Qui Ago 05, 2004 12:14 pm
Mensagens: 585
Por onde andas aquela famosa investigação de Cartel?

Eu fico surpreso que alguém ainda se surpreenda com estas notícias.

Há muito mais coisas acontecendo que tornam este caso com a Futuremark (que já possue rombos em sua reputação) diminutos.

Num mercado de bilhões de dólares, com a mentalidade de um mundo atual onde eu, você e todos querem se dar bem a qualquer custo (leia-se em cima dos outros), a Intel e futuremark só se mostram sinérgicas com o mundo ao qual pertencem...

Eu me preocupo mais em avaliar os discursos e posturas dos meus vizinhos, conhecidos, companheiros de trabalho, amigos e inimigos do que na imagem que uma empresa puramente capitalista tenta me passar.

O mundo vai de mal a pior, e não é por causa de jogadas capitalistas, mas sim (repito) pela cabeça das pessoas, como eu, você e todos nós, independente da posição social ou nível de instrução. E casos e acasos decorrentes no mundo partem deste princípio, pois este sempre será determinado pelas pessoas e não por programas ou objetos materiais.

Vamos acordar galera! Independente da escolha entre Intel, AMD, Nvidia ou Via, todas elas querem a mesma coisa, ganhar nosso dinheiro, o resto é detalhe...


Voltar ao topo
 Perfil  
 
 Assunto do Tópico:
MensagemEnviado: Dom Ago 03, 2008 12:31 pm 
Offline

Data de registro: Qui Mar 11, 2004 12:03 pm
Mensagens: 155
Localização: Brasília-DF
metaraminol escreveu:
revern escreveu:
Lamentável o teste, mas não acredito muito em ser propositadamente por um simples motivo: programação reversa é muito comum e isso seria rápidamente identificado, mas... é possível, o ser humano é muito idiota mesmo, hehehe!
Bom, seja como for, não se iludam pensando que hoje os processadores da AMD são melhores que os da Intel, só porque um teste estava errado.
Tudo bem, usar AMD por já ter, por encontrar um bom negócio, para manter a plataforma. Ter um computador só por birra com um fabricante, é no mínimo estupidez, pois nenhum dos fabricantes está preocupado com seus clientes, apenas se preocupam se eles estão comprando e se estão tendo lucros. Nós temos que nos concentrar em procurar o melhor esquecendo as paixões por marcas.

Elton


sem falar que a própria AMD admite que seus processadores são inferiores aos da intel, ou será que estou enganado ?

não sou fã da intel muito menos da AMD, até porque não existe bonzinho no capitalismo, mas estou começando preferir a intel isso graças a tantos comentários infelizes e fervorosos a favor da AMD.


Olha, programação reversa num software desses não é impossível, mas ilógico, no entanto veja que não é apenas nesse programa que o pessoal tá falando, tem também um compilador Intel C++ onde vc o engana, segundo um user, veja nas páginas anteriores. Esse compilador é muito usado em recompilações de qualquer programa e consequente otimização de instruções, pensava-se que esse compilador apenas apontava os novos registradores padronizados, infelizmente faz mais que isso.

Não acho que seja doidera de fã de marca, a AMD reconhece pq esses testes são/eram considerados livres de práticas ilegais desse tipo. O teste da notícia não deixa dúvidas, há sim algo errado e não tem cara de engenharia reversa.


Voltar ao topo
 Perfil  
 
 Assunto do Tópico:
MensagemEnviado: Dom Ago 03, 2008 12:35 pm 
Offline
Avatar de usuário

Data de registro: Sex Set 03, 2004 6:39 am
Mensagens: 162
Localização: Brasília
Vou traduzir o meu post anterior (página 4) para melhor compreensão.

Antes, no entanto, alguns breves esclarecimentos para melhor compreensão do texto. O texto em itálico são comentários meus. Sou formado em ciência da computação, assim, pude compreender o que está escrito. O que um compilador faz é traduzir código de alto nível (no caso, C++), para código de baixo nível (assembly). A máquina (processador) só lida com esse código de baixo nível, no entanto, é impraticável que se programe nesse nível, por isso a necessidade de linguagem em alto nível que seja traduzida (papel do compilador).

http://hardware.slashdot.org/hardware/0 ... 2237.shtml (comentário do Eponymous Cowboy em referência a essa matéria sobre a Futuremark)

Eponymous Cowboy escreveu:
I'll give 10:1 odds that Futuremark simply compiled their benchmark with Intel's C++ compiler.

I wrote a detailed explanation [slashdot.org] back in 2005 about how the Intel C++ compiler generates separate code paths for memory operations to make AMD processors appear significantly slower, and how you can trick the compiled code into believing your AMD processor is an Intel one to see incredibly increased performance. See this article [slashdot.org] for additional details.


Vou dar uma chance de 10:1 que a Futuremark simplesmente compilou seu benchmark usando o compilador de C++ da Intel.

Eu escrevi uma explanação detalhada [slashdo.org] ainda em 2005 sobre como o compilador de C++ da Intel gera caminhos de código distintos para operações de memória para fazer parecer que os processadores AMD são significativamente mais lentos, e como você pode enganar o código compilado fazendo-o acreditar que seu processador AMD é um Intel para ver um incrível aumento na performance. Veja este artigo [slashdot.org] para mais detalhes.
========

Agora a explanação (link explanação) a que ele fez referência. Era uma resposta a matéria com título "AMD Alleges Intel Compilers Create Slower AMD Code" ou "AMD alega que compiladores Intel criam código mais lento para AMD" link matéria
Eponymous Cowboy escreveu:

It's true--and they know about it

I noticed this problem back in January of 2004, with Intel C++ 8.0, and went through heck over nine months with Intel's customer support to get it fixed until I eventually had to abandon their compiler.

On any non-Intel processors, it specifically included an alternate code path for "memcpy" that actually used "rep movsb" to copy one byte at a time, instead of (for example) "rep movsd" to copy a doubleword at a time (or MMX instructions to copy quadwords). This was probably the most brain-dead memcpy I'd ever seen, and was around 4X slower than even a typical naive assembly memcpy:

push ecx
shr ecx, 2
rep movsd
pop ecx
and ecx, 3
rep movsb

They responded with completely ridiculous answers, such as:

"Our 8.0 memcpy was indeed optimized for a Pentium(r)4 Processor,when we reworked this routine we used the simplest, most robust, and straightforward implementation for older processors so that we didn't need the extra code to check for alignment, length, overlap, and other conditions."

BS. I went and added the following line to the beginning of my source code:

extern "C" int __intel_cpu_indicator;

then I added:

__intel_cpu_indicator = -512;

to the "main" function.

This forced Intel C++ to use the "Pentium 4" memcpy regardless of which processor in in the machine. It turns out that their special "Pentium 4" memcpy which I tested thoroughly in all kinds of situations, and it worked perfectly fine on an AMD Athlon and a Pentium III. I pointed this out to them.

I received the following response:

"The fast mempcy is over 2000 lines of hand coded assembly, with lots of special cases where different code paths are chosen based on relative alignment of the source and destination. ... If the performance of memcpy/memset only are improved for Pentium III will that satisfy you?"

I answered "No," saying that I needed support for AMD processors as well. I also gave them a copy of my own memcpy routine that was 50% faster than theirs--and just used MMX. They closed the support issue and did nothing to resolve it.

I switched back to Visual C++.


É verdade -- e eles sabem disso

Eu notei esse problema ainda em janeiro de 2004, com o (compilador) Intel C++ 8.0, e passei pelo diabo por 9 meses com o suporte ao cliente da Intel para arrumar isso até que eu eventualmente tive que abandonar o compilador deles.

Em qualquer processador não-Intel, o compilador especificamente incluía um caminho alternativo de código para "memcpy" que na realidade usava "rep movsb" para copiar um byte por vez, ao invés de (por exemplo) "rep movsd" para copiar uma doubleword (que, se eu não me engano, tem 8 bytes) por vez (ou instruções MMX para copiar quadwords). Essa provavelmente a tradução de código para "memcpy" mais estúpida que eu já vi, e era aproximadamente 4X mais lenta do que uma típica e inocente tradução assembly de memcpy:

push ecx
shr ecx, 2
rep movsd
pop ecx
and ecx, 3
rep movsb

Suas respostas foram completamente ridículas, tais como:

"Nossa memcpy 8.0 foi realmente otimizada para um processador Pentium(r)4, quando nós retrabalhamos essa rotina nós usamos a implementação mais simples, mais robusta, e mais direta para processadores mais antigos para que não tivessemos a necessidade de código extra para checar por alinhamento, tamanho, sobreposição, e outras condições."

Papo-furado. Eu fui e adicionei a seguinte linha no começo do meu código fonte:

extern "C" int __intel_cpu_indicator;

depois adicionei:

__intel_cpu_indicator = -512;

na função "main".

Isso forçou o [código compilado] Intel C++ a usar o memcpy do "Pentium 4" a despeito de qual processador estivesse na máquina. Aconteceu que o memcpy especial deles para "Pentium 4", que eu testei exaustivamente em todos os tipos de situação, funcionou perfeitamente bem em um processador Athlon AMD e em um Pentium III. Eu disse isso a eles.

Eu recebi a seguinte resposta:

"O memcpy rápido tem mais de 2000 linhas assembly programadas à mão, com muitos casos particulares onde diferentes caminhos de código são escolhidos baseados no alinhamento relativo da fonte e do destino. ... Se a performance do memcpy/memset somente forem melhoradas para Pentium III isso irá satisfazer você?"

Eu respondi "Não," dizendo que eu precisava de suporte para processadores AMD também. Eu também dei a eles uma cópia da minha própria rotina para memcpy que era 50% mais rápida que a deles -- e só usava MMX. Eles fecharam o chamado de suporte e não fizeram nada para resolver a questão.

Eu voltei para o Visual C++ (compilador de C++ da Visual).
===========================

A matéria sobre a (link alegação da AMD)

CmdrTaco escreveu:
AMD Alleges Intel Compilers Create Slower AMD Code

edxwelch writes "In AMD's recient anti-trust lawsuit AMD have examined the Intel compiler and found that it deliberatly runs code slower when it detects that the processor is an AMD. "To achieve this, Intel designed the compiler to compile code along several alternate code paths. ... By design, the code paths were not created equally. If the program detects a "Genuine Intel" microprocessor, it executes a fully optimized code path and operates with the maximum efficiency. However, if the program detects an "Authentic AMD" microprocessor, it executes a different code path that will degrade the program's performance or cause it to crash.""


AMD alega que compiladores Intel criam código mais lento para AMD

edxwelch escreveu "Na recente ação anti-truste da AMD, a AMD tem examinado o compilador Intel e descobriu que ele deliberadamente roda código mais lento quando ele detecta que se trata de um processador AMD. "Para conseguir isso, a Intel projetou seu compilador para compilar código ao longo de diversos caminhos de código alternativos... Por projeto, os caminhos de código não foram criados igualmente. Se o programa detecta um microprocessador "Genuine Intel" (Genuinamente Intel), então ele executa um caminho de código totalmente otimizado e opera com eficiência máxima. No entanto, se o programa detecta um microprocessador "Authentic AMD" (AMD Autêntico), ele executa um caminho de código diferente que irá degradar a performance do programa ou então causar sua falha (crash).


Voltar ao topo
 Perfil E-mail  
 
 Assunto do Tópico:
MensagemEnviado: Dom Ago 03, 2008 12:50 pm 
Offline
Usuário Pleno

Data de registro: Sáb Mai 26, 2007 2:32 pm
Mensagens: 1427
E.S.B. escreveu:
doubleword (que, se eu não me engano, tem 8 bytes) por vez (ou instruções MMX para copiar

No mundo x86:
word - 2 bytes
doubleword - 4 bytes
quadword - 8 bytes
doublequadword, quaddoubleword, octoword, xmmword - 16 bytes

Outras arquiteturas/empresas podem usar valores diferentes, a IBM quando se refere ao Power usa:
halfword - 2 bytes
word - 4 bytes
doubleword - 8 bytes
quadword - 16 bytes


Voltar ao topo
 Perfil  
 
 Assunto do Tópico:
MensagemEnviado: Dom Ago 03, 2008 1:09 pm 
Offline
Usuário Pleno
Avatar de usuário

Data de registro: Sáb Abr 16, 2005 12:11 pm
Mensagens: 954
Localização: Cuiabá/Mato Grosso
Essa notícia fará com que muita gurizada que baseia suas vidas em comprar pcs de última geração e passar horas diárias em fóruns tirando capturas do desempenho desses computadores fique realmente chateada, refiro-me aos que utilizam processadores que não os intel.

Há tempos há manipulação em torno de tudo o que gira no mercado de TI, desde sites onde articulistas duvidosos enchem de moral produtos fracassados destinando páginas e mais páginas com conteúdo PARCIAL sobre o que DIZEM ANALISAR.
É fato que empresas pagam, e pagam muito bem às pessoas certas para que façam por elas, o serviço que deveria ser feito pela equipe destinada à criar os produtos, porém há uma inversão de valores, ao invés de se criar bons produtos, cria-se porcaria, contrata-se marketeiros de determinados sites e isso se resolve.

Há também meios como os agora citados, testes de benchmarks, há também formas de pagar empresas para que seus produtos se não melhores, pareçam melhores através de atualizações DUVIDOSAS de drivers ou mesmo firmwares.

A industria da tecnologia deixou de produzir avanços há muito tempo em sua grande maioria, destinando-se atualmente à atender o mercado eye-candy e o de "entusiastas" que para eles não passam de consumidores ávidos, daí surge essa coisa toda de enganação! Mas tenham certeza, não demora a surgir algum grande articulista a usar de palavras altissoantes para defender determinado produto!

:lol:


Voltar ao topo
 Perfil  
 
 Assunto do Tópico:
MensagemEnviado: Dom Ago 03, 2008 5:32 pm 
Offline

Data de registro: Qui Mar 11, 2004 12:03 pm
Mensagens: 155
Localização: Brasília-DF
Muito obrigado aos colegas acima pelas explicações e traduções, realmente para quem ainda duvida basta fazer o teste por conta própria e se perguntar:

:arrow: AINDA QUERO SER ENGANADO ???


Voltar ao topo
 Perfil  
 
 Assunto do Tópico:
MensagemEnviado: Dom Ago 03, 2008 9:24 pm 
Offline
Usuário Pleno

Data de registro: Sáb Ago 27, 2005 7:52 pm
Mensagens: 539
E.S.B. escreveu:
O que um compilador faz é traduzir código de alto nível (no caso, C++), para código de baixo nível (assembly).

Na verdade o compilador traduz de uma linguagem de alto nível para a linguagem de máquina, que é basicamente uma representação diferente do Assembly (na verdade é o contrário...).

Para facilitar vou reponder todo o texto usando citação de sua parte no cabeçalho.

E.S.B. escreveu:
Vou dar uma chance de 10:1 que a Futuremark simplesmente compilou seu benchmark usando o compilador de C++ da Intel.

Eu não acredito por diversos motivos:

1- Esse é um teste de banda de memória máxima, se eles tiverem feito ele em uma linguagem de alto nível como C++, ou mesmo C ou FORTRAN, ele terá validade nula. Esse tipo de teste deve ser feito em Assembly para ter algum interesse... quase nenhum claro, mas pelo menos algum.

2- O ICC não é muito usado fora do ramo da computação técnica. Bom, na verdade, diria que para a Intel sua principal função é compilar os SPEC e outros programas de teste e servir para uso interno. Claro que ele otimiza muito bem para microprocessadores Intel em certas aplicações, mas a verdade é que ele não é muito confiável ou popular. E quem se importa com otimização?

Enfim, eu concordo com o EduardoS: o teste do Futuremark para largura de banda de memória foi escrito em Assembly otimizado para cada família de microprocessadores, cada um destes códigos otimizados sendo escolhido com base no CPUID: como o Nano é novo, provavelmente o Futuremark está usando o código para C7 ou um código qualquer não-otimizado. Qualquer uma dessas possibilidades gera perda de desempenho. Pelo viso, para esse programa, o Nano funciona melhor com código otimizado para Intels que para AMDs.

De qualquer modo, prova que esse tipo de teste é inútil e deve ser abolido do Universo conhecido.

E.S.B. escreveu:
I wrote a detailed explanation back in 2005 about how the Intel C++ compiler generates separate code paths for memory operations to make AMD processors appear significantly slower, and how you can trick the compiled code into believing your AMD processor is an Intel one to see incredibly increased performance. See this article for additional details.

Ao que eu soubesse o principal problema era a não-utilização de determinadas extensões (SSE, SSE2, etc) em microprocessadores não-Intel, se eles mexeram também nas rotinas de memcpy é outro problema... de qualquer modo, é por essas e outras que somente pessoas "ousadas" (nada de programação comercial) usam ICC.

E.S.B. escreveu:
On any non-Intel processors, it specifically included an alternate code path for "memcpy" that actually used "rep movsb" to copy one byte at a time, instead of (for example) "rep movsd" to copy a doubleword at a time (or MMX instructions to copy quadwords). This was probably the most brain-dead memcpy I'd ever seen, and was around 4X slower than even a typical naive assembly memcpy:

Se isso aconteceu essa foi feia, usar REP MOVs de Byte em um memcpy de um compilador como o ICC é complicado.

E.S.B. escreveu:
Eu voltei para o Visual C++ (compilador de C++ da Visual).

Opa, cara, Visual C++ é O Visual C++, MSVC++, Microsoft Visual C++: o compilador C++ da Microsoft :D ...


Voltar ao topo
 Perfil  
 
 Assunto do Tópico:
MensagemEnviado: Dom Ago 03, 2008 10:27 pm 
Offline
Avatar de usuário

Data de registro: Qui Mai 01, 2008 11:45 pm
Mensagens: 335
No caso, como posso alterar o CPUID? Seria um tweak no registro? Uma mudança milagrosa?

Uma jogada suja pode se reverter numa otimização tamanha :)

Abraços!


Voltar ao topo
 Perfil  
 
 Assunto do Tópico:
MensagemEnviado: Seg Ago 04, 2008 12:22 am 
Offline
Avatar de usuário

Data de registro: Sex Set 03, 2004 6:39 am
Mensagens: 162
Localização: Brasília
Desculpem-me pelos erros (doubleword, tradução vs compilação, quem fez o compilador...) no post, mas creio que foram esclarecidos pelos colegas.

Lembrando que apenas traduzi o post do inglês para o português, por considerar muito pertinente. E realmente é.


Voltar ao topo
 Perfil E-mail  
 
 Assunto do Tópico:
MensagemEnviado: Seg Ago 04, 2008 8:15 am 
Offline

Data de registro: Qui Mar 11, 2004 12:03 pm
Mensagens: 155
Localização: Brasília-DF
Dan Jacques escreveu:
No caso, como posso alterar o CPUID? Seria um tweak no registro? Uma mudança milagrosa?

Uma jogada suja pode se reverter numa otimização tamanha :)

Abraços!


tenho a mesma dúvida... afinal com mera mudança no CPUID (se não me engano é apenas uma string no registro) o C7 melhorou muito o desempenho, algo muito suspeito e que deixa a dúvida quanto "o quão otimizado o código foi para cada arquitetura?". Será que se testássemos um AMD aí daria algo semelhante?? e os demais programas de benchmark ???

Seria interessante se desenvolvêssemos um programa de benchmark de código aberto, teria que ser simples e pequeno, tipo o SUPERPI (embora esse superPI já não seja recomendado por aí para comparar arquiteturas diferentes).

Outra coisa, como usava o Pascal num curso de introdução a computação, mexi muito nele e o mesmo podia trabalhar em código assembly, nesse conjunto assembly (não me aprofundei pq é mais difícil de aprender) era possível trabalhar com registros (os antigos não sei quanto a registros/instruções novas) mas mesmo usando o compilador padrão do Pascal era possível trabalhar com os mesmos registros do assembly, salvo enganos já que faz um bom tempo que não brinco mais de Pascal.

Achei esse aqui http://www.freepascal.eti.br/

Que acham dele, serviria??

Baixei um daqui http://sourceforge.net/project/showfile ... _id=508970

tem 31.2MB, depois vejo se funciona mas vai demorar, tem versão para 64bits


Voltar ao topo
 Perfil  
 
Mostrar mensagens anteriores:  Organizar por  
Criar novo tópico Responder Tópico  [ 65 Mensagens ]  Ir para a página Anterior  1 ... 3, 4, 5, 6, 7  Próximo

Todos os Horários estão como UTC - 3 horas


Quem está online

Usuários vendo este fórum: DVSV, ethomaz, Google [Bot], tpasquel e 3 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Ir para:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzido por phpBB do Brasil
logo
logo

Copyright © 2000-2010 Fórum PCs - Todos os direitos reservados.
Não nos responsabilizamos por danos de qualquer espécie causados pelo uso das informações aqui divulgadas.