Instruções simd
Departamento de Computação
Laboratório de Arquitetura e Organização de Computadores 2
Projeto Final – Instruções SIMD
Professor: Márcio Merino
Sumário
1. Introdução 2. Explicação teórica sobre as instruções SIMD 3. Explicação sobre a implementação do projeto 4. Conclusões finais
1. Introdução
O projeto final consistiu no uso dos conceitos de algumas aulas da disciplina teórica, tais como: uso de assembly inline, instruções SIMD, desvios e indiretamente o conteúdo de instruções e registradores dados durante a disciplina, pois as instruções aritméticas estudadas ajudaram no entendimento das instruções SSE utilizadas no desenvolvimento do projeto. Além da implementação em Assembly, tivemos a implementação em C e pudemos comparar o quanto uma implementação é mais rápida que a outra efetuando uma mesma operação de matrizes. A operação de matrizes em questão foi: A = B ͭ+5C+D e tivemos que executá-la tanto em C como em Assembly para as seguintes dimenções de matrizes: 4x4, 16x16, 64x64, 130x130.
2. Explicação teórica sobre as instruções SIMD Primeiramente explica-se o termo SIMD: é um acrônimo de Single Instruction Multiple Data. Esse é um termo que se refere ao conjunto de instruções que fazem de modo eficiente operações sobre um grande conjunto de dados, em paralelo. As instruções multimídia são implementadas colocando-se mais de uma fonte de dados em cada registrador e fazendo-se a operação em todos os dados ao mesmo tempo. Há um ganho significativo de desempenho, já que ao invés de se fazer cada operação separadamente, podemos fazê-las de uma só vez, paralelamente. Além disso, podemos fazer apenas um acesso à memória para colocar as diversas fontes de dados em cada registrador. Ao invés de se fazer um acesso para cada fonte, teremos um acesso para cada bloco de dados, havendo outro ganho significativo de desempenho, já que acesso à memória é lento se