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

# openTPU 시뮬레이터 실행 및 FPGA 요구 사항 평가 방법

> openTPU는 언어 모델 추론을 위한 Python 시뮬레이터와 Inspur Kintex-7 카드용 별도 경로를 문서화합니다. 이 가이드는 저장소의 명령, 예상 출력, 하드웨어 요구 사항을 정리합니다.

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.

이 [openTPU 저장소](https://github.com/FeSens/openTPU/tree/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93)에는 Python 명령어 집합 시뮬레이터, 컴파일러, SystemVerilog 설계 및 FPGA 호스트 도구가 하나의 프로젝트로 담겨 있습니다. 작성자는 Inspur Kintex-7 카드에서 언어 모델을 실행했다고 보고합니다. ML 시스템 또는 FPGA 개발자가 쉽게 시작할 수 있는 첫 단계는 실제 모델 가중치를 사용한 소프트웨어 채팅 실행입니다. 같은 프로젝트를 카드로 옮기려면 특정 보드, 라이선스가 필요한 빌드 도구, Linux 호스트 설정이 추가로 필요합니다. 이 가이드는 저장소의 커밋 `b9a3f3b` 를 기준으로 하며 2026년 10월 7일 현재 BIG CHANGE는 이를 설치하거나 시뮬레이션 또는 테스트하지 않았습니다.

## 큰 변화

- **무엇이 바뀌었나:** openTPU는 가속기의 명령어 집합, 시뮬레이터, 컴파일러, RTL 및 보드 통합을 함께 공개합니다. 엔지니어는 지원되는 카드를 구입하기 전에 모델 연산에서 시뮬레이션된 명령어까지의 경로를 살펴볼 수 있습니다.
- **왜 중요한가:** 문서화된 시뮬레이터를 이용하면 하드웨어 학습자가 구체적인 설계를 살펴보고 일반 호스트 소프트웨어로 소형 언어 모델을 실행할 수 있습니다. 프로젝트는 AI 에이전트가 하드웨어 스택 제작을 도왔다고 말합니다. 공개된 산출물은 이 개발 주장을 검토할 근거가 되지만, 카드에서 얻었다는 결과는 여전히 프로젝트 자체의 측정치입니다.
- **앞으로 볼 점:** 실제 하드웨어 결과를 재현하려면 Kintex-7 보드, 라이선스가 있는 Vivado 빌드, 작동하는 PCIe 초기화가 필요합니다. 저장소는 이를 위한 명령과 자체 테스트를 제공합니다. 고정된 리비전에서 독립적으로 실행해 보면 다른 엔지니어가 얼마나 쉽게 재현할 수 있는지 확인할 수 있습니다.

## 소스를 고정하고 소프트웨어 경로 선택하기

아래 단계는 `main`의 저장소를 기준으로 합니다. 커밋은 [커밋 `b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93`](https://github.com/FeSens/openTPU/commit/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93), 10월 7일에 이루어졌습니다. 저장소에는 `v0.5` 태그가 있지만, 이 가이드는 README에 새 [Hugging Face 검증 섹션](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/README.md#validating-against-hugging-face)이 추가된 이후의 고정 커밋을 사용합니다. Python 패키지는 여전히 버전 `0.1.0`로 표시되어 있으며 [`pyproject.toml`](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/pyproject.toml)에 기록되어 있습니다. 이 패키지 번호만으로는 소스 스냅샷을 식별할 수 없습니다. 저장소는 Apache 2.0 라이선스를 사용합니다.

Python 3.10 이상이 필요합니다. 패키지는 `numpy` 및 `textual`를 선언합니다. README는 테스트와 모델 사용을 위해 `pytest`, `torch` 및 `transformers` 도 별도로 설치합니다. README에는 Hugging Face의 `hf` 명령으로 체크포인트를 `models/LFM2.5-230M`에 내려받는 방법이 나옵니다. 다운로드 전에 Python 환경에서 `hf`를 사용할 수 있는지 확인하세요. 체크포인트는 채팅 명령에 입력되는 파일이며 소스에 포함된 모델이 아닙니다. 이 경로의 총 다운로드 크기, 호스트 메모리 요구량 또는 고정된 시뮬레이터 실행 시간은 프로젝트가 밝히지 않습니다.

저장소 루트에서 [문서화된 순서](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
```

체크아웃 명령은 조사한 리비전을 고정합니다. 설치, 테스트, 다운로드 및 채팅 명령은 README에 나온 내용입니다. `--backend isa`는 Python 명령어 집합 시뮬레이터를 선택합니다. 전체 `pytest` 테스트 모음에는 Verilator 5가 필요한 RTL 테스트도 포함되어 있으므로, 이 도구가 없는 시스템에서는 전체 테스트를 소프트웨어 전용 성공 기준으로 사용할 수 없습니다. 문서에 나온 가장 간단한 대화형 실행의 완료 신호는 LFM2.5-230M 체크포인트가 로드된 뒤 프롬프트를 받고 모델 텍스트를 반환하는 채팅 인터페이스입니다. 생성되는 답변의 정확한 문구는 프롬프트와 샘플링 설정에 따라 달라집니다. [채팅 CLI 소스](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/opentpu/host/chat.py)에는 터미널 REPL용 `--plain` 및 한 번만 답변하는 `--prompt` 도 있습니다. 후자는 답변과 턴 통계를 출력합니다. 이는 문서화된 인터페이스이지 BIG CHANGE가 직접 관찰한 출력은 아닙니다.

README는 주요 채팅 모델로 Qwen3-0.6B, LFM2.5-230M, Qwen3.5-0.8B와 더 큰 모델 몇 가지를 나열합니다. 각 모델에는 예상 디렉터리에 자체 체크포인트가 있거나 명시적인 체크포인트 경로가 필요합니다. 위의 LFM2 경로는 저장소에서 가장 짧게 소개한 모델 다운로드 예시입니다. README의 더 폭넓은 결과에는 카드에서 측정한 10개 모델이 포함되며, Gemma 4와 전문가 오프로딩이 필요한 모델도 있습니다. 일부 모델은 여러 가중치 형식으로 측정되었습니다. 이 표는 작성자가 측정한 결과이며, 모든 모델이 이 한 줄 LFM2 설정으로 실행된다는 보장은 아닙니다.

## 시뮬레이터가 확인하는 것

프로젝트 설명에 따르면 커널 언어와 컴파일러가 가속기용 명령어를 생성합니다. Python ISA 시뮬레이터는 해당 명령을 실행하고 SystemVerilog RTL은 하드웨어 구현을 나타냅니다. [README의 시스템 개요](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/README.md#how-it-works)와 [`opentpu/isasim.py`](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/opentpu/isasim.py)를 통해 독자는 이 경계를 따라갈 수 있습니다. `otpu-chat`를 `isa`와 함께 실행하면 소프트웨어 명령어 경로로 모델 추론을 수행합니다. 이는 FPGA를 프로그래밍하거나 카드의 처리량을 측정하지 않습니다.

유지관리자는 카드에서 시뮬레이터와 비트 단위로 동일한 토큰이 나온다고 보고하며 선택한 장치 실행을 CPU Hugging Face 기준 결과와 비교하는 [검증 스크립트](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/tools/validate.py)를 제공합니다. 고정된 README에는 기본 프롬프트, 토큰 및 로짓 비교, 10월 7일 카드 실행이 설명되어 있습니다. 이러한 보고와 코드는 검토할 수 있습니다. BIG CHANGE는 이를 재현하지 않았으므로 독립적인 정확도나 속도 증거로 볼 수 없습니다.

## 실제 카드에서 달라지는 점

보드 [설명서](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/docs/board.md)는 **Inspur YPCB-00338**와 Xilinx Kintex-7 `xc7k480t-ffg1156-2`, 2GiB DDR3 채널 2개, 호스트 PC와 연결하는 PCIe를 대상으로 합니다. 기본 비트스트림 빌드에는 Vivado 2026.1이 사용됩니다. 설명서는 무료 에디션에서 해당 장치를 제외한다고 적고 유료 라이선스나 30일 평가판을 제안합니다. [AMD의 2026.1 장치 표](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Device-Availability-by-Subscription-Tier?contentId=FXBYqlfi_pd_k5OTkJcJ1A)는 이 장치 관련 주장을 반박합니다: **Basic에는 모든 Kintex 7 장치가 포함됩니다**.

[AMD의 현재 라이선스 옵션](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/vivado/vivado-licensing-options.html)에 따르면 Basic은 0달러이며 Linux를 지원하고 매년 무료로 갱신할 수 있습니다. [라이선스 FAQ](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/licensing-faq.html)는 Basic도 유효한 연간 라이선스 파일이 필요하다고 설명하며, 별도의 전체 기능 평가판은 **60일** 동안 제공됩니다. [AMD의 2026.1 기능 표](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Supported-Devices-and-Features)에는 Basic의 JTAG 프로그래밍 지원이 나와 있지만 XSIM 시뮬레이션과 일부 디버그 기능에는 제한이 있습니다. 상위 유료 등급은 기능을 추가하며 AMD는 IP 라이선스는 바뀌지 않는다고 설명합니다. BIG CHANGE는 Basic으로 openTPU를 빌드하지 않았습니다. 이 비트스트림 경로에서 필요한 도구 및 IP 권한을 확인하기 전에는 무료 빌드라고 단정할 수 없습니다. 보드 설명서는 `make bit`에 기계에 따라 1.5\~3시간이 걸린다고 추정합니다. 설명서와 AMD 등급 표 모두 이 카드의 구매 가격이나 전체 재현 비용을 제시하지 않습니다.

보드와 도구 체인을 확보한 뒤 문서화된 보드 경로는 `boards/ypcb-00338`에서 비트스트림을 빌드하고, JTAG로 FPGA를 프로그래밍한 다음 Linux 호스트를 설정하는 것입니다. 보드의 [`Makefile`](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/boards/ypcb-00338/Makefile)는 `make bit` 출력을 `build/vivado/otpu.bit`로 보냅니다. `make program`는 기본적으로 openFPGALoader를 사용하며 설명서는 Vivado 하드웨어 관리자도 소개합니다. JTAG 로드는 전원을 껐다 켜면 유지되지 않습니다.

```shell
cd boards/ypcb-00338
make lint
make bit
make program
```

위의 하드웨어 단계는 보드 설명서에 나온 것이며 여기서 테스트한 순서가 아닙니다. Linux 호스트의 초기화 체크리스트에는 Python 패키지와 체크포인트, XDMA 드라이버 및 장치 규칙을 설치하는 `sudo otpu-setup`, JTAG 로드 후 PCIe 재검색, `otpu-setup --check`가 포함됩니다. 드라이버, 카드, 링크, 장치 노드 및 ID 레지스터가 올바르면 후자는 “all in place”를 출력하고 정상 종료한다고 문서화되어 있습니다. 그다음 `otpu-selftest`로 카드를 확인한 후 `otpu-chat --backend board --model lfm2`를 실행합니다. 보드 진단은 `otpu-diag --json diag.json`에 저장할 수 있습니다. 이러한 검사가 카드 경로의 구체적인 완료 신호이며 ISA 채팅만으로 이를 대신할 수 없습니다.

공개된 성능 수치도 신중히 해석해야 합니다. README는 저자들의 카드에서 4비트 가중치와 int8 헤드를 사용한 LFM2.5-230M의 **초당 82.1토큰(벽시계 기준)**을 예로 듭니다. 측정 방법은 512토큰 프롬프트 다음에 탐욕적 디코딩으로 64토큰을 생성하며, 표는 장치 사이클과 호스트 시간을 포함한 벽시계 시간을 구분합니다. 다른 호스트, 비트스트림, 가중치 형식 또는 프롬프트는 다른 측정 결과입니다. 10월 7일 커밋 메시지에는 카드에서 수행한 추가 검증이 기록되어 있지만 여전히 유지관리자의 기록입니다. 이 가이드에서 검토한 출처에는 독립적으로 재현된 벤치마크가 없습니다.

## 출처 및 추가 읽을거리

- [조사한 커밋의 openTPU 저장소](https://github.com/FeSens/openTPU/tree/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93), 2026년 10월 7일. README에는 시스템 개요, 시뮬레이터 명령, 모델 목록 및 작성자가 자체 보고한 보드 측정치가 있습니다. 결과는 프로젝트의 주장입니다. BIG CHANGE는 저장소를 실행하지 않았습니다.
- [Python 패키지 메타데이터](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/pyproject.toml) 및 [Apache 2.0 라이선스](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/LICENSE). Python 버전, 선언된 의존성, CLI 진입점, 패키지 버전 및 소스 라이선스의 근거입니다. 모델 체크포인트와 Vivado에는 별도의 약관과 요구 사항이 적용됩니다.
- [보드 및 호스트 초기화 설명서](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/docs/board.md), 2026년 10월 7일 확인. 지원 카드, 비트스트림 단계, Linux 설정, JTAG 프로그래밍 및 자체 테스트를 명시합니다. 유료 라이선스 및 30일 평가판 설명은 AMD의 현재 2026.1 라이선스 문서와 상충합니다. 일부 과거 비트스트림 예시는 이전 빌드를 가리키므로 재현할 때는 고정된 트리와 현재 빌드 지침을 사용하세요.
- [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) 및 [지원 장치와 기능](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Supported-Devices-and-Features), 모두 2026년 6월 23일자, 그리고 [라이선스 옵션](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/vivado/vivado-licensing-options.html), 10월 7일 확인. 이 자료들은 모든 Kintex 7 장치가 무료 Basic에 포함되고 Linux 및 JTAG 지원이 있음을 보여주며 Basic의 시뮬레이션 및 디버그 제한도 설명합니다. [AMD 라이선스 FAQ](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/licensing-faq.html)에는 Basic의 연간 라이선스 파일과 60일 평가판이 명시되어 있습니다. 장치 지원만으로 이 프로젝트의 전체 비트스트림 경로가 Basic에서 작동한다고 검증되지는 않습니다.
- [채팅 CLI](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/opentpu/host/chat.py) 및 [LFM2 가이드](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/docs/lfm2.md). 백엔드 선택, 모델 경로, 대화형 및 단일 실행 출력 방식, 소형 체크포인트 예시를 확인할 수 있습니다.
- [GIGAZINE의 10월 7일 보도](https://gigazine.net/gsc_news/en/20261007-opentpu)는 프로젝트에 대한 대중의 관심을 이해하는 참고 자료입니다. 이 가이드의 설정 및 성능 세부 사항은 해당 보도가 아니라 저장소를 기준으로 확인했습니다.

## Sources

- [조사한 커밋의 openTPU README](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/README.md) — 주요 개요, 시뮬레이터 명령, 모델 목록, 보고된 카드 측정치 및 방법론. 결과와 AI 보조 설계 설명은 프로젝트의 주장입니다.
- [openTPU 보드 설명서](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/docs/board.md) — 지원되는 Inspur 카드, 장치, DDR3, Vivado 2026.1, 빌드/프로그래밍/호스트 설정 및 점검. 유료 전용 및 30일 라이선스 안내는 AMD 2026.1 등급 문서와 상충합니다. 과거 섹션에는 이전 이미지가 포함됩니다.
- [openTPU 패키지 메타데이터 및 채팅 소스](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/pyproject.toml) — Python 최소 버전, 선언된 의존성, 패키지 버전, 라이선스 선언 및 CLI 진입점. 채팅 소스는 백엔드 선택지와 예상 출력 인터페이스를 보여줍니다.
- [openTPU Apache 2.0 라이선스](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/LICENSE) — 프로젝트 소스 코드 라이선스이며 모델 및 Vivado의 별도 약관까지 의미하지는 않습니다.
- [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) — AMD의 2026.1 장치 표에는 모든 Kintex 7 장치가 Basic에 명시적으로 포함됩니다. 장치 지원이 openTPU의 전체 비트스트림/IP 경로를 독립적으로 검증하지는 않습니다.
- [AMD Vivado 2026.1 지원 장치 및 기능(UG973)](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Supported-Devices-and-Features) — 실행 시 유효한 라이선스 파일이 필요합니다. Basic은 JTAG 프로그래밍을 포함하지만 XSIM 시뮬레이션과 일부 디버그 기능을 제한합니다. Basic에서 openTPU 빌드가 되는지 검증하지는 않습니다.
- [AMD Vivado 라이선스 옵션](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/vivado/vivado-licensing-options.html) — 현재 Basic은 0달러이며 매년 무료 갱신, Linux 지원, 등급별 기능 차이 및 변경되지 않은 IP 라이선스를 제공합니다. 2026.1부터 등급 모델이 시작됩니다.
- [AMD 라이선스 FAQ](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/licensing-faq.html) — 2026.1 이상 Basic에는 무료로 받을 수 있는 유효한 연간 라이선스 파일이 필요합니다. 별도의 전체 기능 평가판은 60일입니다.
- [GIGAZINE: openTPU 보도](https://gigazine.net/gsc_news/en/20261007-opentpu) — 보조 보도 자료입니다. 설정과 성능 관련 사실은 기본 출처인 저장소를 통해 확인했습니다.
