Definição de SSE

Por Carlos E. Morimoto. Há .

Enquanto a Intel dava um passo errado lançando as instruções MMX, algo de que o mercado não precisava e que até hoje não obtiveram uma aceitação significativa, a AMD veio com seu K6-2 e suas instruções 3D-Now!, que realmente conseguiam melhorar o desempenho do processador em até 20% em jogos 3D com suporte a esta tecnologia. Apesar de seu fraco coprocessador aritmético, em alguns jogos o K6-2 chegava bem perto de um Pentium II do mesmo clock, graças às suas instruções 3D, que passaram a ser suportadas pelos principais jogos, além de beneficiarem outros indiretamente através do DirectX (apartir da versão 6) ou através de drivers de vídeo otimizados.

Como as instruções 3D-Now são patenteadas, apenas a AMD (e eventualmente outra companhia licenciada por ela) pode utiliza-las em seus processadores. A Intel então optou por criar seu próprio conjunto de novas instruções, batizado de SEE, a fim de também turbinar o desempenho do Pentium III.

Enquanto as instruções MMX melhoram o desempenho do sistema basicamente no cálculo de números inteiros (o que explica sua fraca aceitação), as instruções SSE e as instruções 3D-Now! servem para agilizar o cálculo de números de ponto flutuante, usados principalmente em jogos 3D e em aplicativos gráficos tridimensionais, justamente onde os processadores atuais são mais exigidos.

Como disse, as instruções 3D-Now! são capazes de aumentar o desempenho do K6-2 em 10, 15 ou até 20%. Mesmo 15% de aumento de performance não é um ganho nada desprezível, pois equivaleria a trocar um processador de 300 MHz por outro de 350 MHz.

O 3D-Now! é composto por um set de 21 novas instruções, o SEE por sua vez é composto por um set de 70 novas instruções, que são capazes de melhorar o desempenho do processador, não só em jogos e aplicativos gráficos, mas também em softwares de descompressão de vídeo, reconhecimento de fala e aplicativos multimídia em geral.

Como as novas instruções são apenas software, é preciso que os programas sejam otimizados para fazer uso deles. No caso dos jogos 3D, também existe ganho de performance caso o jogo utilize o DirectX 6.1 (ou superior), otimizado para as novas instruções, ou caso os drivers da placa de vídeo 3D sejam otimizados para as instruções SSE. Neste caso porém, o ganho será muito menor que num aplicativo realmente otimizado, praticamente imperceptível em muitos casos.

Antes do seu lançamento, houve muita especulação sobre qual seria o ganho real de performance trazido pelas novas instruções do Pentium III. Alguns especialistas chegaram a argumentar que o ganho seria praticamente nulo, pois ao contrário do K6-2, o Pentium III já possui um excelente coprocessador aritmético. Felizmente, estas previsões não se concretizaram. Os criadores do Quake 3 Arena, jogo que está sendo otimizado para as novas instruções, estimam que o ganho de performance fica entre 10 e 15% com o uso das novas instruções. No Adobe Photoshop 5.02, que também foi otimizado para as novas instruções, o ganho de desempenho também fica na casa dos 15%. E, teoricamente, alguns aplicativos podem rodar até 25% mais rápido. Realmente quanto às instruções, o Pentium III não está nada mal.

Basicamente, as instruções SSE diferem das instruções 3D-Now! devido à forma como são executadas. As instruções 3D-Now! permitem que algumas rotinas dos programas sejam executadas 3, ou até mesmo 4 vezes mais rapido do que seriam usando as instruções padrão do coprocessador aritmético. Digamos, num exemplo tosco, que 30% das rotinas utilizadas por um determinado jogo sejam executadas usando o 3D-Now!, sendo que em média, estas instruções (apenas as otimizadas) seriam executadas 3 vezes mais rápido. Seguindo nosso exemplo, teríamos 30% das rotinas do programa executadas em 1/3 do tempo, resultando num ganho de performance em torno de 20%. (note que não estou levando em consideração inúmeros fatores aqui, o meu objetivo com este exemplo é apenas ilustrar melhor o benefício gerado por estas instruções).

As instruções SSE funcionam de forma semelhante, permitindo que muitas rotinas utilizadas pelos programas possam ser executadas muito mais rapidamente. A vantagem é que o Pentium III é capaz de processar simultaneamente instruções normais e instruções SSE, o que resulta em um ganho ainda maior de performance.

Enquanto no 3D-Now! o programa tem a todo momento que escolher entre utilizar uma das instruções padrão ou uma das instruções 3D-Now!, no Pentium III é possível usar os dois tipos de instruções simultaneamente, mantendo as três unidades de execução do coprocessador aritmético cheias durante mais tempo. A única desvantagem deste processo é que, para ter um beneficio total das instruções SSE, é necessário um número muito maior de alterações nos códigos dos programas, o que acaba por desestimular muitos produtores de softwares a tornar seus produtos compatíveis.

Parece claro que as instruções SSE, devido à maneira como são implementadas, são mais eficientes do que as instruções 3D-Now! da AMD, talvez pelo fato dos projetistas da Intel terem tido bastante tempo para criá-las e implementá-las.

Não podemos nos esquecer porém, que para se beneficiar tanto das instruções 3D-Now quanto das SSE, o software precisa ser re-escrito. Já temos uma grande base instalada de processadores K6-2, K6-3 e Athlon, assim como vários títulos já otimizados para o 3D-Now!. Mesmo com toda a sua influência, não foi nada fácil para a Intel reverter esta estatística.

A última cartada da Intel para estimular os programadores a incluir suporte às instruções SSE em seus produtos, foi o lançamento de um compilador em C que adiciona o suporte às instruções automaticamente. Usando este compilador, que é distribuído gratuitamente, o programador pode construir seu programa normalmente, sem se preocupar em incluir qualquer suporte ao SSE e depois de terminado o programa rodar o compilador para adicionar o suporte.

O compilador então verifica todas as linhas do código e adiciona instruções otimizadas sempre que for possível. Note que o programa continua sendo compatível com os processadores sem SSE: caso o programa seja executado em um Pentium III serão utilizadas as linhas otimizadas para o SSE e caso esteja sendo usado outro processador serão utilizadas as instruções normais.

A otimização feita pelo programa não é tão eficiente pela feita por um programador experimente, mas já é melhor que nada. De qualquer forma, o uso deste compilador acabou fazendo com que a maioria dos títulos 3D e multimídia lançados durante o ano 2001 recebessem alguma otimização para o SSE.

As instruções SSE são encontradas em todas as versões do Pentium III e Pentium III Xeon, além das versões do Celeron com core Coppermine. O Pentium 4 traz um set de instruções aprimorado, o SSE 2, mas mantém compatibilidade com o conjunto antigo. Atualmente os processadores AMD e VIA também são compatíveis com o conjunto SSE, o que aumentou sua utilização.

Veja também
Console portátil apenas para jogar Pinball? Um designer imaginou como seria
Console portátil apenas para jogar Pinball? Um designer imaginou como seria
Games
Dois relógios G-Shock inspirados em League of Legends chegam ao Brasil; saiba o preço
Dois relógios G-Shock inspirados em League of Legends chegam ao Brasil; saiba o preço
Notícias
Preço dos HDs seguirá aumentando, IA tem relação com isso
Preço dos HDs seguirá aumentando, IA tem relação com isso
Hardware
Usuário cria Steam Deck caseiro usando um Ryzen 5 5600G
Usuário cria Steam Deck caseiro usando um Ryzen 5 5600G
Games
O seu está na lista? Celulares Galaxy que receberão a One UI 6.1
O seu está na lista? Celulares Galaxy que receberão a One UI 6.1
Mobile
PlayStation Portal ganha data de lançamento e preços oficiais no Brasil
PlayStation Portal ganha data de lançamento e preços oficiais no Brasil
Games
true