O MUNDO NÃO ESTÁ PARADO.RSS
BIG CHANGE.

Edição Markdown

AI-translated from English; not yet reviewed by a fluent editor.

# Como executar o simulador do openTPU e avaliar os requisitos de FPGA

> O openTPU documenta um simulador Python para inferência de modelos de linguagem e um caminho separado para uma placa Inspur Kintex-7. Este guia reúne os comandos, as saídas esperadas e os requisitos de hardware descritos no repositório.

By BIG CHANGE Editorial

Published: 2026-10-07T13:36:01.795Z
Updated: 2026-10-07T13:36:01.795Z
Canonical: https://bigchange.ai/blog/opentpu-simulator-fpga-requirements-guide

![Conceptual charcoal illustration of one engineer holding and examining a PCIe FPGA accelerator card above an electronics work mat.](https://bigchange.ai/api/media/file/opentpu-fpga-card-hero-v2.png)
AI-generated conceptual illustration by BIG CHANGE, based on a reference photograph of the Inspur YPCB-00338 board. It does not depict a BIG CHANGE test or observed openTPU run.

O [repositório openTPU](https://github.com/FeSens/openTPU/tree/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93) 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 compilação 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 compilação do Vivado licenciado e de uma inicialização PCIe funcional. O repositório fornece comandos e testes automáticos 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`](https://github.com/FeSens/openTPU/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](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/README.md#validating-against-hugging-face). O pacote Python ainda se identifica como versão `0.1.0` em [`pyproject.toml`](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/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](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/README.md#try-it) é:

```shell
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](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/opentpu/host/chat.py) 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](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/README.md#how-it-works) e [`opentpu/isasim.py`](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/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](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/tools/validate.py) 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](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/docs/board.md) 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 compilação 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](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Device-Availability-by-Subscription-Tier?contentId=FXBYqlfi_pd_k5OTkJcJ1A) contradiz essa alegação sobre o dispositivo: **O Basic inclui todos os dispositivos Kintex 7**.

[As opções atuais de licenciamento da AMD](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/vivado/vivado-licensing-options.html) listam o Basic a US$ 0, com suporte a Linux e renovação anual gratuita. O [FAQ de licenciamento](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/licensing-faq.html) diz que o Basic ainda exige um ficheiro 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](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Supported-Devices-and-Features) 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 compilação 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`](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/boards/ypcb-00338/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.

```shell
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 cauecrã. 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](https://github.com/FeSens/openTPU/tree/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93), 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](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/pyproject.toml) e [licença Apache 2.0](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/LICENSE). 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](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/docs/board.md), 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 testes automáticos. 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 compilaçãos anteriores; use a árvore fixada e as instruções atuais de compilação para reproduzir.
- [Disponibilidade de dispositivos AMD Vivado 2026.1, UG973](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Device-Availability-by-Subscription-Tier?contentId=FXBYqlfi_pd_k5OTkJcJ1A) e [dispositivos e recursos compatíveis](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Supported-Devices-and-Features), ambos de 23 de junho de 2026, além de [opções de licenciamento](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/vivado/vivado-licensing-options.html), 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](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/licensing-faq.html) especifica o ficheiro 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](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/opentpu/host/chat.py) e [guia LFM2](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/docs/lfm2.md). 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](https://gigazine.net/gsc_news/en/20261007-opentpu) é 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.

## Sources

- [README do openTPU no commit examinado](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/README.md) — Visão geral primária, comandos do simulador, lista de modelos, medições relatadas na placa e metodologia. Resultados e descrição de design assistido por IA são alegações do projeto.
- [Manual da placa openTPU](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/docs/board.md) — Placa Inspur compatível, dispositivo, DDR3, Vivado 2026.1, configuração de compilação/programação/host e verificações. A orientação de licença somente paga/avaliação de 30 dias conflita com os documentos de níveis AMD 2026.1. As seções históricas incluem imagens antigas.
- [Metadados do pacote e código de chat do openTPU](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/pyproject.toml) — Versão mínima do Python, dependências declaradas, versão do pacote, declaração de licença e pontos de entrada da CLI; o código de chat estabelece opções de backend e a interface de saída esperada.
- [Licença Apache 2.0 do openTPU](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/LICENSE) — Licença do código-fonte do projeto; não implica termos iguais para modelos ou Vivado.
- [Disponibilidade de dispositivos AMD Vivado 2026.1 por nível de assinatura (UG973)](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Device-Availability-by-Subscription-Tier?contentId=FXBYqlfi_pd_k5OTkJcJ1A) — A tabela de dispositivos da AMD para 2026.1 lista explicitamente todos os dispositivos Kintex 7 no Basic; essa cobertura não verifica de forma independente todo o fluxo de bitstream/IP do openTPU.
- [Dispositivos e recursos compatíveis com AMD Vivado 2026.1 (UG973)](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Supported-Devices-and-Features) — Exige um ficheiro de licença válido na inicialização; o Basic inclui programação JTAG e limita a simulação XSIM e alguns recursos de depuração. Não verifica um compilação do openTPU no Basic.
- [Opções de licenciamento do AMD Vivado](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/vivado/vivado-licensing-options.html) — O Basic custa atualmente US$ 0, tem renovação anual gratuita e suporte a Linux; os recursos variam conforme o nível e o licenciamento de IP não muda. O modelo de níveis começa na versão 2026.1.
- [FAQ de licenciamento da AMD](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/licensing-faq.html) — O Basic 2026.1 ou posterior precisa de um ficheiro de licença anual válido, disponível gratuitamente; a avaliação separada com todos os recursos dura 60 dias.
- [GIGAZINE: reportagem sobre o openTPU](https://gigazine.net/gsc_news/en/20261007-opentpu) — Apenas contexto de cobertura secundária. Os fatos de configuração e desempenho foram conferidos nas fontes primárias do repositório.
Newsletter BIG CHANGE

A perspetiva geral, ao seu ritmo.

Histórias recentes sobre IA e robótica, mudanças que vale a pena acompanhar e ideias práticas para utilizar. Escolha um briefing diário, um resumo semanal ou uma perspetiva mensal.