Intensidade aritmética e largura de banda de RAM ou VRAM

Intensidade aritmética e largura de banda de RAM ou VRAM

O relacionamento entre RAM e um processador é totalmente simbiótico, enquanto a RAM não tem sentido sem o processador, ela não pode viver sem ele, independentemente de onde esteja. Portanto, eles são parte de um todo que se alimenta mutuamente. Portanto, existe uma relação de desempenho e esta é a intensidade aritmética. Explicamos em que consiste.

Um processador, independentemente de ser um CPU ou um GPU, não faz nada além de dados do processo , o que leva ao necessidade de memória para alimentá-lo. Infelizmente, com o passar do tempo, a distância entre a velocidade da memória e a da CPU foi crescendo, o que levou à implementação de técnicas como a memória cache. Não podemos esquecer também o latência entre o processador e a memória, que ocorre quando a interface entre a RAM e o processador não consegue conceder ou modificar os dados com velocidade suficiente.

Porém, não podemos medir o desempenho de uma forma geral, pois cada programa, ou melhor, cada algoritmo dentro de cada programa possui uma carga computacional diferente. E é aí que entra o termo de intensidade aritmética. Mas, vamos ver o que é e em que consiste, bem como outros elementos que têm a ver com o desempenho em um computador.

O que é intensidade aritmética?

Intensidade aritmética

A densidade aritmética é uma medida de desempenho, consistindo em medir o número de operações de ponto flutuante que um processador executa em uma seção específica do código. Para obtê-lo, o número de operações de ponto flutuante é dividido pelo número de bytes que o algoritmo usa para executar.

Quão útil é? Pois bem, o facto de permitir em certos campos da informática onde são necessários computadores muito potentes para tarefas específicas, poder ter o melhor sistema de hardware possível para executar os algoritmos nas melhores condições. Este modelo é usado principalmente em computação científica. Embora também sirva para otimizar o desempenho em sistemas fechados, como consoles de videogame.

No caso de fazer uso de uma arquitetura de hardware altamente paralelizada, é necessária uma alta intensidade aritmética, ou seja, uma baixa relação entre largura de banda e capacidade de computação a partir do momento em que a relação entre a capacidade de computação dos ditos processadores e a largura de banda de memória disponível é alto. Uma vez que é necessário em muitas aplicações e especialmente em gráficos que um cálculo seja processado várias vezes e, portanto, um grande poder computacional é necessário na comparação.

Desempenho do algoritmo e relação com a intensidade aritmética

Notação O Algoritmos

Ao escrever um algoritmo, os programadores levam em consideração o desempenho dos algoritmos que escrevem em seus programas, que é medido pela notação Big O, que mede a média das operações em relação aos dados. A notação Big O não é medida usando nenhum benchmark, mas os programadores os calculam manualmente para ter uma ideia aproximada da carga de trabalho dos programas

  • Ou (1): o algoritmo não depende do tamanho dos dados a serem processados. Um algoritmo com desempenho O (1) é considerado de desempenho ideal e imbatível.
  • Em): o tempo de execução é diretamente proporcional ao tamanho dos dados, o desempenho cresce linearmente. Também pode ser que um
  • O (log n): ocorre em algoritmos que geralmente dividem e resolvem um problema por partes, como algoritmos de ordenação de dados ou pesquisas binárias.
  • O (n log n): é uma evolução do anterior, trata-se de dividir ainda mais a resolução das diferentes partes.
  • Sobre 2 ): existem algoritmos que realizam várias iterações porque precisam consultar os dados várias vezes. Portanto, eles geralmente são algoritmos altamente repetitivos e, portanto, têm uma carga computacional exponencial.
  • Em!): Um algoritmo que segue essa complexidade é um algoritmo totalmente falho em termos de desempenho e requer reescrita.

Nem todos os algoritmos podem atingir o nível de complexidade O (1) e alguns deles têm um desempenho muito melhor em um tipo de hardware do que em outro. É por isso que aceleradores ou processadores específicos de domínio foram desenvolvidos nos últimos anos para acelerar um tipo de algoritmo em detrimento de outros. A ideia geral é dividir os algoritmos em partes e tratar cada uma delas com a unidade de processamento mais adequada para sua intensidade aritmética.

Relação entre comunicação e computação

CPU RAM Placa PC

O caso inverso é a razão entre comunicação e computação, que é medida inversamente à intensidade aritmética e, portanto, é obtida dividindo o número de bytes pela potência em operações de ponto flutuante. Portanto, é usado para medir a largura de banda necessária para executar essa parte do código. O problema na medição vem do fato de que os dados nem sempre estão no mesmo lugar e, portanto, a largura de banda da RAM é usada como referência.

Deve-se levar em consideração que não se trata de uma medida totalmente confiável, não só pelo fato de o sistema de cache aproximar os dados do processador, mas também pelo fato de existir o fenômeno de latência onde cada tipo de memória RAM usada tem diferentes vantagens e desvantagens e o resultado pode variar dependendo do tipo de memória usada.

Hoje, ao se escolher a memória em um sistema, não se leva em conta apenas a largura de banda, mas também o consumo de energia, já que o custo energético de movimentar os dados está superando o custo de processá-los. Portanto, você está optando por certos tipos de memória específica em certos aplicativos. Claro, sempre dentro dos custos associados à construção de um sistema e eles não são os mesmos em um supercomputador e em um PC doméstico.