O repositório openTPU reúne um simulador de conjunto de instruções em Python, um compilador, um projeto SystemVerilog e ferramentas de host para FPGA em um único projeto. Os autores relatam ter executado modelos de linguagem em uma placa Inspur Kintex-7. Para quem desenvolve sistemas de ML ou FPGA, o primeiro passo mais acessível é executar um chat em software com pesos reais de um modelo. Levar o mesmo projeto para uma placa exige um modelo específico, ferramentas de build licenciadas e configuração de um host Linux. Este guia acompanha o repositório no commit b9a3f3b de 7 de outubro de 2026; o BIG CHANGE não o instalou, simulou nem testou.

A grande mudança

  • O que mudou: O openTPU publica em conjunto o conjunto de instruções do acelerador, o simulador, o compilador, o RTL e a integração com a placa. Um engenheiro pode examinar o caminho entre uma operação do modelo e as instruções simuladas antes de adquirir a placa compatível.
  • Por que isso importa:O simulador documentado oferece a quem estuda hardware uma forma concreta de analisar o projeto e executar um modelo de linguagem pequeno usando software comum no host. O projeto afirma que agentes de IA ajudaram a produzir a pilha de hardware; os artefatos disponíveis para inspeção permitem examinar essa alegação, enquanto os resultados relatados na placa continuam sendo medições do próprio projeto.
  • O que observar:Reproduzir o resultado físico depende de uma placa Kintex-7, de um build do Vivado licenciado e de uma inicialização PCIe funcional. O repositório fornece comandos e autotestes para esse trabalho. Uma execução independente em uma revisão fixada mostraria com que facilidade outros engenheiros conseguem repeti-la.

Fixe o código-fonte e escolha o caminho de software

As etapas abaixo seguem o repositório main no commit b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93, feito em 7 de outubro. O repositório tem uma tag v0.5, mas este guia usa o commit posterior fixado porque o README inclui uma nova seção de validação do Hugging Face. O pacote Python ainda se identifica como versão 0.1.0 em pyproject.toml; esse número, por si só, não identifica o snapshot do código-fonte. O repositório usa a licença Apache 2.0.

Você precisa do Python 3.10 ou posterior. O pacote declara numpy e textual; o README instala separadamente pytest, torch e transformers para testes e uso do modelo. Ele mostra o comando do Hugging Face hf baixando um checkpoint para models/LFM2.5-230M. Antes do download, confira se hf está disponível no seu ambiente Python. O checkpoint é uma entrada para o comando de chat, não um modelo incluído no código-fonte. O projeto não informa o tamanho total do download, a memória necessária no host nem um tempo fixo do simulador para esse caminho.

Na raiz do repositório, a sequência documentada é:

Terminal
git clone https://github.com/FeSens/openTPU.git
cd openTPU
git checkout b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93
pip install -e .
pip install pytest torch transformers
python3 -m pytest -q
hf download LiquidAI/LFM2.5-230M --local-dir models/LFM2.5-230M
otpu-chat --model lfm2 --backend isa

Os comandos de checkout fixam a revisão examinada; os comandos de instalação, teste, download e chat vêm do README. --backend isa seleciona o simulador Python de conjunto de instruções. A suíte completa de pytest também inclui testes RTL que exigem o Verilator 5, então uma máquina sem essa ferramenta não pode usar toda a suíte como verificação de sucesso apenas por software. Na execução interativa mais simples documentada, o sinal de conclusão é um checkpoint LFM2.5-230M carregado, seguido de uma interface de chat que aceita um prompt e retorna texto do modelo. As palavras exatas de uma resposta gerada dependem do prompt e da amostragem. O código-fonte da CLI de chat também oferece --plain para um REPL no terminal e --prompt para uma resposta única; a segunda opção imprime a resposta e as estatísticas do turno. Essas são interfaces documentadas, não saídas observadas pelo BIG CHANGE.

O README lista Qwen3-0.6B, LFM2.5-230M e Qwen3.5-0.8B entre as principais opções de chat, além de vários modelos maiores. Cada um precisa de um checkpoint próprio no diretório de modelos esperado ou de um caminho explícito. O caminho LFM2 acima é o exemplo mais curto de download de modelo no repositório. Os resultados mais amplos do README cobrem dez modelos na placa, incluindo Gemma 4 e modelos que precisam de expert offloading, com vários formatos de peso para alguns deles. A tabela reúne medições dos autores, não uma promessa de que todos os modelos seguem essa configuração LFM2 de um único comando.

O que o simulador verifica

O projeto descreve uma linguagem de kernel e um compilador que produzem instruções para seu acelerador. O simulador ISA em Python executa essas instruções; o RTL em SystemVerilog é a implementação de hardware. O diagrama do sistema no README e opentpu/isasim.py permitem acompanhar essa separação. Executar otpu-chat com isa exercita a inferência do modelo pelo caminho de instruções em software. Isso não programa uma FPGA nem mede a taxa de transferência da placa.

Os mantenedores dizem que a placa produz tokens idênticos bit a bit aos do simulador e fornecem um script de validação para comparar determinadas execuções no dispositivo com uma referência de CPU do Hugging Face. O README fixado descreve prompts padrão, comparações de tokens e logits e uma execução na placa em 7 de outubro. Os relatos e o código permitem inspecionar as verificações. O BIG CHANGE não as repetiu, portanto elas não comprovam precisão ou velocidade de forma independente.

O que muda com a placa física

O manual da placa tem como alvo a Inspur YPCB-00338 com uma Xilinx Kintex-7 xc7k480t-ffg1156-2, dois canais DDR3 de 2 GiB e conexão PCIe com um PC host. O build padrão do bitstream usa Vivado 2026.1. O manual diz que a edição gratuita não inclui esse dispositivo e sugere uma licença paga ou avaliação de 30 dias. A tabela de dispositivos da AMD para 2026.1 contradiz essa alegação sobre o dispositivo: O Basic inclui todos os dispositivos Kintex 7.

As opções atuais de licenciamento da AMD listam o Basic a US$ 0, com suporte a Linux e renovação anual gratuita. O FAQ de licenciamento diz que o Basic ainda exige um arquivo de licença anual válido; a avaliação separada com todos os recursos dura 60 dias. A tabela de recursos da AMD para 2026.1 lista programação JTAG no Basic, mas limita a simulação XSIM e alguns recursos de depuração. Níveis pagos superiores acrescentam recursos, e a AMD diz que o licenciamento de IP não muda. O BIG CHANGE não compilou o openTPU no Basic. É preciso verificar os direitos das ferramentas e da propriedade intelectual nesse fluxo de bitstream antes de chamá-lo de build sem custo. O manual estima que make bit leve de 1,5 a 3 horas, dependendo da máquina. Nem o manual nem a tabela de níveis da AMD informam o preço de compra dessa placa ou o custo total da reprodução.

Depois de obter a placa e a cadeia de ferramentas, o caminho documentado é compilar um bitstream em boards/ypcb-00338, programar a FPGA por JTAG e configurar o host Linux. O Makefile da placa envia a saída de make bit para build/vivado/otpu.bit. make program usa openFPGALoader por padrão; o manual também descreve o gerenciador de hardware do Vivado. Uma carga via JTAG não persiste após desligar e ligar o equipamento.

Terminal
cd boards/ypcb-00338
make lint
make bit
make program

As etapas de hardware acima vêm do manual da placa e não foram testadas aqui. No host Linux, a lista de bring-up pede o pacote Python e o checkpoint, sudo otpu-setup para instalar o driver XDMA e as regras de dispositivos, uma nova busca PCIe após a carga por JTAG e otpu-setup --check. Esse último comando, segundo a documentação, termina com sucesso e mostra “all in place” quando o driver, a placa, o link, os nós do dispositivo e o registrador de ID estão corretos. Depois, otpu-selftest verifica a placa antes de otpu-chat --backend board --model lfm2. Os diagnósticos da placa podem ser salvos com otpu-diag --json diag.json. Essas verificações são sinais concretos de conclusão do caminho da placa; um chat ISA sozinho não as substitui.

Os números de desempenho publicados também exigem cautela. O README relata, por exemplo, 82,1 tokens por segundo em tempo de parede para o LFM2.5-230M com pesos de 4 bits e uma saída int8 na placa dos autores. O método usa 64 tokens de decodificação greedy após um prompt de 512 tokens, e a tabela diferencia ciclos do dispositivo do tempo de parede que inclui o host. Outro host, bitstream, formato de peso ou prompt produz uma medição diferente. A mensagem do commit de 7 de outubro registra qualificações adicionais na placa, mas continua sendo um registro dos mantenedores. As fontes analisadas para este guia não têm um benchmark reproduzido de forma independente.

Fontes e leituras adicionais

  • Repositório openTPU no commit examinado, 7 de outubro de 2026. O README fornece o diagrama do sistema, os comandos do simulador, a lista de modelos e medições da placa relatadas pelos próprios autores. Os resultados são alegações do projeto; o BIG CHANGE não executou o repositório.
  • Metadados do pacote Python e licença Apache 2.0. Esses materiais estabelecem a versão do Python, as dependências declaradas, os pontos de entrada da CLI, a versão do pacote e a licença do código-fonte. Checkpoints de modelos e Vivado têm termos e requisitos separados.
  • Manual de bring-up da placa e do host, consultado em 7 de outubro de 2026. Especifica a placa compatível, as etapas do bitstream, a configuração do Linux, a programação JTAG e os autotestes. As afirmações sobre licença paga e avaliação de 30 dias conflitam com os documentos atuais de licenciamento da AMD para 2026.1. Alguns exemplos históricos de bitstream se referem a builds anteriores; use a árvore fixada e as instruções atuais de build para reproduzir.
  • Disponibilidade de dispositivos AMD Vivado 2026.1, UG973 e dispositivos e recursos compatíveis, ambos de 23 de junho de 2026, além de opções de licenciamento, consultadas em 7 de outubro. Esses documentos incluem todos os dispositivos Kintex 7 no Basic gratuito, listam suporte a Linux e JTAG e mostram os limites de simulação/depuração do Basic. O FAQ de licenciamento da AMD especifica o arquivo anual de licença do Basic e a avaliação de 60 dias. A compatibilidade do dispositivo, por si só, não verifica o fluxo completo de bitstream deste projeto no Basic.
  • CLI de chat e guia LFM2. Esses materiais mostram a seleção do backend, o caminho do modelo, o comportamento de saída interativa e única e o exemplo de checkpoint pequeno.
  • A reportagem da GIGAZINE de 7 de outubro é um contexto útil sobre a atenção pública ao projeto. Os detalhes de configuração e desempenho deste guia foram conferidos no repositório, não retirados da reportagem.