/mm-opt

Repository dedicated to the first assignment of INF01191

Primary LanguageCMIT LicenseMIT

Arquiteturas Avançadas - TP 1

Repositório dedicado ao primeiro trabalho prático de Arquiteturas Avançadas. Nesse trabalho é esperado que nós otimizemos um código de multiplicação de matrizes em C.

Sumário

Tarefas

Da especificação do trabalho:

A partir do código de multiplicação de matrizes fornecido, implemente ao menos 3
otimizações que melhorem seu desempenho, sendo no mínimo uma que o principal
objetivo seja melhorar o aproveitamento da cache.

Justifique os ganhos de desempenho com valores de contadores de hardware medidos
com o perf.

Detalhe as características do processador utilizado para os testes. Deve ser
informado o nome, família, issue, frequência, tamanho da janela de instruções,
número e tipos de unidades funcionais, número de entradas da reservation station
e reorder buffer, número de portas de memória (load e store), hierarquia de
cache (tamanho e características da L1, L2, L3), tipo de memória DRAM, e
qualquer outra que ache pertinente. (dica: consulte o wikichip)

Recomenda-se alterar apenas as funções multiplica e aloca

Experimentação

São esperadas pelo menos 30 execuções para cada experimento (o valor considerado será a média aritmética dessas). Além disso, repita as execuções para capturar o valor sem a interferência do perf.

A dimensão de entrada das matrizes é fixa (1024x1024), porém o restante é variável para o experimento.

Variáveis:

  • Otimizações de código aplicadas (i.e. as 3 que faremos)
  • Otimização automática de compilador (O0, O1, O2, O3)
  • SMT (?)

Build

Para buildar, rode esse único comando no root do repositório:

make