Altifigence Academy

14 / 20 · Conceito

Largura de banda e utilização útil

Separe a capacidade máxima de MACs dos custos de preenchimento inicial, esvaziamento, padding e memória.

Defina o intervalo e as unidades

Uma grade N×N atinge um máximo de N² MACs por borda com advance. O preenchimento inicial e o esvaziamento reduzem a utilização de um trabalho isolado. Em nosso modelo sem pausas, de bloco completo e encaminhamento de uma borda, o trabalho útil é N²K e as posições disponíveis são N²(K+2N−2), dando utilização no intervalo de cálculo de K/(K+2N−2).

Para N=4, K=16, a grade executa 256 MACs em vinte e duas bordas com advance. A utilização é 256/352=8/11, aproximadamente 72.73%. Em uma frequência presumida de 100MHz, a capacidade máxima é 1.6 GMAC/s e a taxa no intervalo de cálculo isolado é de cerca de 1.164 GMAC/s. Contar multiplicação e soma separadamente dobra o número de operações. Essas são estimativas em uma frequência presumida, não resultados medidos de síntese.

Calcule o tráfego em cada fronteira

Injetar A e B exige 2NK valores: 128 bytes para operandos de oito bits. Os PEs consomem 512 valores de operandos, mostrando reutilização de quatro vezes de cada entrada da fronteira. O intervalo de injeção sobreposta pode exigir oito bytes por borda, ou 0.8GB/s em 100MHz. A demanda máxima de fornecimento difere da demanda média durante preenchimento e esvaziamento.

Suponha que dezesseis resultados usem posições de armazenamento de trinta e dois bits, apesar da largura de vinte bits do acumulador. As escritas de resultados acrescentam sessenta e quatro bytes, portanto o tráfego externo totaliza 192 bytes sem reutilização entre blocos, sobrecarga de comandos ou desperdício de alinhamento. A intensidade aritmética é 256/192=4/3 MAC por byte.

Em 0.4GB/s, apenas a transferência precisa de pelo menos 480ns; o cálculo precisa de 220ns. Mesmo a sobreposição perfeita não pode superar o intervalo mais longo, limitando a taxa a aproximadamente 0.533 GMAC/s. Esse é um limite superior, não desempenho garantido. Sem sobreposição, o carregamento leva trinta e duas bordas, o cálculo vinte e duas e o armazenamento dezesseis, totalizando setenta bordas e cerca de 0.366 GMAC/s antes da inicialização ou de outras esperas.

O exemplo 3×3 com preenchimento em N=2 tem vinte e sete MACs úteis em oitenta posições de PEs: 33.75% de utilização útil. Contar os MACs de preenchimento zero dá 60%, uma medição diferente. O artigo de Jouppi e colaboradores sobre a TPU é uma referência de pesquisa para separar capacidade máxima do acelerador e desempenho da carga; nossos exemplos numéricos derivam de nosso próprio cronograma.

Experimente

Para um bloco completo N=2, K=8, encontre MACs, bordas de cálculo, utilização e bytes de entrada na fronteira para oito bits.

Ler a explicação

Há 32 MACs, dez bordas de cálculo e quarenta posições de PEs, portanto a utilização é 80%. A entrada na fronteira é 2×2×8=32 bytes. A utilização de cálculo exclui carregamento e escritas de resultados.

Sua escolha vale neste navegador. Altere-a a qualquer momento no rodapé.