Altifigence Academy
Hardware de IAGratuito · Avançado

Projeto RTL: Aceleradores de CNN

Aprenda a indexação da convolução e os contratos numéricos de inteiros; depois, janelas em fluxo, mapeamento de PEs e divisão em blocos. Verifique uma referência executável e um pequeno caminho de inferência separando valores, estimativas de cronograma e tráfego.

Inferência de CNNConvolução e quantizaçãoJanelas em fluxoPEs e divisão em blocosVerificação por modelo de referência
Meu aprendizado

O que você vai aprender

  • Calcular dimensões e índices de convolução incluindo passo, preenchimento, dilatação e canais
  • Especificar unidades de ponto fixo, escalas, pontos zero, largura do acumulador, arredondamento e saturação
  • Comparar convolução direta com um modelo de referência im2col
  • Gerar janelas com buffers de linha e aceitação de transferências que preserve o estado em pausa
  • Calcular reutilização de PEs, armazenamento de blocos, tráfego e premissas de cronograma
  • Informar resultados numéricos e limites das evidências de um pequeno caminho de inferência

Antes de começar

Os exercícios no navegador usam modelos educacionais; não compilam nem executam HDL. Para executar o código separadamente, siga o guia do Digital Design Studio para seu sistema operacional e entre na conta quando a operação exigir.

Instalação e primeiro uso ↗ · Downloads ↗

Programa

  1. O contrato de inferência
    • Inferência e treinamentoConceito

      Se apenas os canais de saída aumentarem de três para seis, como mudarão a quantidade de MACs e a quantidade de vieses armazenados?

    • Convolução e correlação cruzadaConceito

      Quais são os resultados da correlação cruzada e do kernel invertido para [1,2;4,5] com kernel [1,0;0,-1]?

    • Dimensões, passo, preenchimento e dilataçãoConceito

      Para H=7,R=3,passo 2,preenchimento superior 0,inferior 1,dilatação 2, calcule Ho e a coordenada de entrada para h=1,r=2.

    • Verificação: dimensões e quantidade de MACsVerificação

      Use N=1,C=2,H=W=5,M=3,kernel 3×3,passo 2,preenchimento um em todos os lados,dilatação um. Quais são a dimensão da saída e a quantidade de MACs?

  2. O contrato numérico
    • Bits e unidades de ponto fixoConceito

      Multiplique 0.5 e −1.25 em F=4 e depois some o viés 0.25 em F=8. Quais são o código do acumulador e o valor real?

    • Escala e ponto zeroConceito

      Para sx=0.25,zx=128, quais são o código de preenchimento e o valor real de q=132? Qual código de viés representa 0.75 com sw=0.5?

    • Largura do acumulador, arredondamento e saturaçãoConceito

      Dezoito bits com sinal são suficientes para nove produtos int8 com sinal e viés zero?

    • Laboratório: execute o contrato de quantizaçãoPrática

      Quantize −40 com as mesmas configurações uint8. Quais são seu código e valor desquantizado, e qual asserção você acrescentaria?

  3. Operadores de referência
    • Referência de convolução diretaConceito

      Para entradas [2,3], pesos [4,−1] e viés um, qual resultado errado ocorre se o viés for somado uma vez por iteração de canal de entrada?

    • im2col e multiplicação de matrizesConceito

      Para H=W=4,C=1 e um kernel 3×3 sem preenchimento, calcule os elementos originais da entrada, P,K e os elementos expandidos dos recortes.

    • Conexão de ReLU e max poolingConceito

      Com ponto zero de saída uint8 igual a 100, aplique ReLU e max pooling 2×2 a [98,103;101,97].

    • Verificação: ordem do processamento de saídaVerificação

      Aplique multiplicador 0.5,zy=0,arredondamento para o par mais próximo,saturação int8,ReLU e max pooling 2×2 aos acumuladores [−1,2;3,−4]. Qual é o código final?

  4. Geração de janelas em fluxo
    • Buffers de linha e janelas 3×3Conceito

      Para W=8,H=6, calcule as posições de armazenamento, o primeiro índice válido de entrada aceita e o total de janelas.

    • Ready/valid e estado em pausaConceito

      O estágio de saída mantém A com out_ready=0 enquanto a entrada B é válida. O que o estágio e o produtor devem fazer na próxima borda?

    • Laboratório: janelas que sobrevivem a pausasPrática

      Se, em vez disso, os ciclos zero,um,dois forem pausados e todas as entradas forem eventualmente aceitas, os valores ou a quantidade de janelas mudam? Qual é a quantidade total de ciclos?

    • Verificação: temporização da primeira janelaVerificação

      Um gerador 4×4, de largura quatro e janelas 3×3 sem preenchimento, não aceita entrada nos quatro primeiros ciclos e depois aceita um pixel por ciclo. Quais são o índice de entrada aceita e o ciclo decorrido da primeira janela, ambos começando em zero?

  5. Mapeamento para PEs e memória
    • PEs, fluxo de dados e reutilização de MACsConceito

      Mapeie P=3,M=2,K=8 para quatro PEs com saídas estacionárias. Quais são os ciclos MAC e a utilização útil das posições MAC, excluindo escritas?

    • Blocos, halos e somas parciaisConceito

      Para Th=Tw=2,Tc=1,Tm=2,kernel 3×3,passo dois,dilatação um, calcule os bytes de entrada/pesos/somas de 32 bits/viés com buffer único.

    • Limites de largura de banda e de cálculoConceito

      Para 1152 MACs e 224 bytes, use oito PEs, mas mantenha a largura de banda em 0.5 bytes/ciclo. Qual é o limite inferior com sobreposição perfeita?

    • Cronogramas, caudas e buffers duplosConceito

      Para K=10,quatro saídas,três PEs e um ciclo extra por saída, calcule os ciclos modelados e a utilização apenas de MACs.

  6. Verificação e projeto final mensurável
    • Modelos de referência e classificação de falhasConceito

      A referência [37,47;67,77] difere de [38,48;68,78]. O que você inspecionaria primeiro e o que registraria?

    • Laboratório: desafie os casos de bordaPrática

      No caso de teste de preenchimento, substitua cada peso do kernel por um. Qual é a primeira saída e por que um teste apenas no centro é insuficiente?

    • Projeto final: pequeno caminho de inferência e relatórioPrática

      Mantenha K=9,quatro saídas e um ciclo extra por saída, mas use três PEs. Quais são os ciclos totais modelados e a utilização das posições apenas de MACs?

    • Verificação final: afirmações e evidênciasVerificação

      A execução em Node do projeto final verifica concordância numérica, 36 MACs, um modelo de cronograma de 24 ciclos e 90% de uso das posições MAC. Qual afirmação de conclusão é precisa?

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