0006 MPTPU(M.2 E):修订间差异

来自Mcuzone Wiki
(创建页面,内容为“关键词 树莓派5、PCIE、TPU、DTPU、驱动安装、操作演示、AI、google、Coral 一、简介 MPW7/TPU是一款专为树莓派5设计的TPU扩展板,通过PCIE 1x Gen2驱动来自Coral的TPU模组。树莓派系统下使用TPU模块需要安装驱动以及操作环境配置,本文操作演示基于MPW7/TPU扩展板,对于双TPU的驱动安装也适用。 注意:此操作演示需要确保能连通外网(需自备方法),否则许…”)
 
 
(未显示3个用户的41个中间版本)
第1行: 第1行:
关键词
[[0006 MPTPU(M.2 E) EN|Change the language to English]]


树莓派5、PCIE、TPU、DTPU、驱动安装、操作演示、AI、google、Coral
== '''关键词''' ==
树莓派5、PCIe、TPU、DTPU、驱动安装、操作演示、AI、google、Coral


一、简介
== '''一、简介''' ==
MPTPU是一款专为树莓派5设计的TPU扩展板,通过PCIe 1x Gen2驱动来自Coral的TPU模组。树莓派系统下使用TPU模块需要安装驱动以及操作环境配置,本文操作演示基于MPTPU扩展板(单TPU),对于双TPU的驱动安装也适用。


MPW7/TPU是一款专为树莓派5设计的TPU扩展板,通过PCIE 1x Gen2驱动来自Coral的TPU模组。树莓派系统下使用TPU模块需要安装驱动以及操作环境配置,本文操作演示基于MPW7/TPU扩展板,对于双TPU的驱动安装也适用。
'''''注意:此操作演示需要确保能稳定连通外网(需自备方法),否则许多文件无法下载或下载不全,最后可能会造成代码运行失败。'''''


注意:此操作演示需要确保能连通外网(需自备方法),否则许多文件无法下载。
== '''二、硬件资源''' ==
1 专为树莓派5的PCIe接口设计;


二、硬件资源
2 采用M.2 E-KEY接口,支持Google Coral Edge TPU;


关于双TPU的官方描述(本文档所演示的单TPU也可参考此描述):
3 预留CSI/DSI穿线槽:支持0.5mm间距的22Pin线缆和1mm间距的15Pin线缆;


PRODUCT DETAILS
4 板载一路电源指示灯("PWR");


The Coral M.2 Accelerator with Dual Edge TPU is an M.2 module that brings two Edge TPU coprocessors to existing systems and products with an available M.2 E-key slot.
5 采用优质电子元件,无铅生产,沉金工艺,PCB板通过UL认证和RoHS认证;


Features
6 四个M2.5固定孔,板子上方内凹设计,方便40Pin GPIO的操作使用,不影响树莓派5的40Pin GPIO使用;


Performs high-speed ML inferencing: Each Edge TPU coprocessor is capable of performing 4 trillion operations per second (4 TOPS), using 2 watts of power. For example, it can execute state-of-the-art mobile vision models such as MobileNet v2 at almost 400 FPS, in a power-efficient manner. With the two Edge TPUs in this module, you can double the inferences per second (8 TOPS) in several ways, such as by running two models in parallel or pipelining one model across both Edge TPUs.
7 可选配铝合金外壳。


Works with Debian Linux and Windows: Integrates with Debian-based Linux or Windows 10 systems with a compatible card module slot.
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_41.jpg


Supports TensorFlow Lite: No need to build models from the ground up. TensorFlow Lite models can be compiled to run on the Edge TPU.
== '''三、系统烧写''' ==
3.1 本文档使用的镜像为2024-07-04-raspios-bookworm-arm64.img.xz(树莓派OS,Raspberry Pi OS with desktop)。


Supports AutoML Vision Edge: Easily build and deploy fast, high-accuracy custom image classification models to your device with AutoML Vision Edge.
树莓派OS下载地址:
 
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit
 
3.2 系统烧写在SD(TF)卡上,[[0005 MPS2242 2280 2280P(单SSD扩展板)#3.2 从TF卡启动|点击直达烧写方法说明]]。
 
'''''注意:烧写系统用的TF卡的容量至少为16G,否则可能会在安装配置过程中报空间不足!'''''
 
== '''四、树莓派OS的操作演示''' ==
 
=== 4.1 配置config.txt ===
系统启动后打开树莓派终端输入命令:
 
<code>sudo nano /boot/firmware/config.txt</code>
 
或者:
 
<code>sudo mousepad /boot/firmware/config.txt</code>
 
在文件最下方添加以下代码:
 
<code>dtparam=pciex1</code>
 
<code>kernel=kernel8.img</code>
 
<code>dtoverlay=pineboards-hat-ai</code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_01.jpg
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_02.jpg
 
代码添加成功后,保存并重启系统:
 
<code>sudo reboot</code>
 
=== 4.2 确认软件环境 ===
系统重启后打开打开树莓派终端输入命令:
 
<code>uname -r</code>
 
确保内核版本大于4.18后输入:
 
<code>lsmod | grep apex</code>
 
确保没有输出则可以开始安装TPU驱动。
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_03.jpg
 
=== 4.3 安装必要软件 ===
确保网络能连通外网(需自备方法)后,添加Google TPU软件库:
 
<code>echo "deb <nowiki>https://packages.cloud.google.com/apt</nowiki> coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list</code>
 
<code>curl <nowiki>https://packages.cloud.google.com/apt/doc/apt-key.gpg</nowiki> | sudo apt-key add -</code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_04.jpg
 
添加完成后更新软件列表:
 
<code>sudo apt-get update</code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_06.jpg
 
更新完成后安装必要的软件:
 
<code>sudo apt-get install cmake libedgetpu1-std devscripts debhelper dkms dh-dkms</code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_07.jpg
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_08.jpg
 
=== 4.4 安装Gasket Driver ===
依次输入以下命令安装Gasket Driver:
 
<code>git clone <nowiki>https://github.com/google/gasket-driver.git</nowiki></code>
 
<code>cd gasket-driver</code>
 
<code>sudo debuild -us -uc -tc -b</code>
 
<code>cd ..</code>
 
<code>sudo dpkg -i gasket-dkms_1.0-18_all.deb</code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_09.jpg
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_10.jpg
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_11.jpg
 
安装完成后输入以下命令确保驱动以及软件安装成功:
 
<code>sudo apt-get install gasket-dkms libedgetpu1-std</code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_12.jpg
 
接下来添加udev rule去获得设备操作权限:
 
<code>sudo sh -c "echo 'SUBSYSTEM==\"apex\", MODE=\"0660\", GROUP=\"apex\"' >> /etc/udev/rules.d/65-apex.rules"</code>
 
添加用户到apex:
 
<code>sudo groupadd apex</code>
 
<code>sudo adduser $USER apex</code>


Description
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_13.jpg


The Coral M.2 Accelerator with Dual Edge TPU is an M.2 module (E-key) that includes two Edge TPU ML accelerators, each with their own PCIe Gen2 x1 interface.
设置完成后重启系统:


The Edge TPU is a small ASIC designed by Google that accelerates TensorFlow Lite models in a power efficient manner: each one is capable of performing 4 trillion operations per second (4 TOPS), using 2 watts of power—that's 2 TOPS per watt. For example, one Edge TPU can execute state-of-the-art mobile vision models such as MobileNet v2 at almost 400 frames per second. This on-device ML processing reduces latency, increases data privacy, and removes the need for a constant internet connection.
<code>sudo reboot</code>


With the two Edge TPUs in this module, you can double the inferences per second (8 TOPS) in several ways, such as by running two models in parallel or pipelining one model across both Edge TPUs.
=== 4.5 验证模块检测以及驱动安装 ===
系统启动后验证模块检测以及驱动安装:


三、系统烧写
<code>lspci -nn | grep 089a</code>


3.1 本文档使用的镜像为2024-07-04-raspios-bookworm-arm64-full.img.xz(树莓派OS,Raspberry Pi OS with desktop and recommended software)。
<code>ls /dev/apex_0</code>


树莓派OS下载地址:
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_14.jpg
 
这里板载单TPU,因此可以看到一个TPU模块。
 
输入<code>sudo lspci -v</code>可以看到驱动加载:
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_15.jpg
 
=== 4.6 代码运行环境配置 ===
Google TPU模块代码运行需要在Python3.6-3.9之间,而树莓派最新系统的Python版本为3.11,因此我们需要使用Pyenv来下载老版本Python。
 
首先进行依赖安装:
 
<code>sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl</code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_17.jpg
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_18.jpg
 
依赖安装完成后进行pyenv的安装:
 
<code>curl <nowiki>https://pyenv.run</nowiki> | bash</code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_19.jpg
 
输入:
 
<code>sudo nano ~/.bashrc</code>
 
或者:
 
<code>sudo mousepad ~/.bashrc</code>
 
在文件最下面添加以下代码:
 
<code>export PYENV_ROOT="$HOME/.pyenv"</code>
 
<code>[[</code><code> -d $PYENV_ROOT/bin </code><code>]]</code><code> && export PATH="$PYENV_ROOT/bin:$PATH"</code>
 
<code>eval "$(pyenv init -)"</code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_36.jpg
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_21.jpg
 
添加完成后保存退出并重新加载shell:
 
<code>exec "$SHELL"</code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_22.jpg
 
接下来我们可以利用pyenv安装老系统版本Python:
 
<code>pyenv install -v 3.8.8</code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_23.jpg
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_24.jpg
 
等待安装成功后我们将系统Python版本更改为3.8.8:
 
<code>pyenv global 3.8.8</code>
 
更改成功后可以查看当前Python使用版本为3.8.8:
 
<code>pyenv versions</code>
 
<code>python3 -V</code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_25.jpg
 
=== 4.7 下载代码和运行模组 ===
依次输入以下命令进行下载:
 
<code>mkdir coral && cd coral</code>
 
<code>git clone <nowiki>https://github.com/google-coral/pycoral.git</nowiki></code>
 
<code>cd pycoral</code>
 
<code>cd test_data</code>
 
<code>git clone <nowiki>https://github.com/google-coral/test_data.git</nowiki></code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_26.jpg
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_27.jpg
 
接下来下载代码运行模组
 
<code>pip3 install numpy</code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_28.jpg
 
<code>pip3 install Pillow</code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_29.jpg
 
<code>pip3 install --extra-index-url <nowiki>https://google-coral.github.io/py-repo/</nowiki> pycoral</code>
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_30.jpg
 
=== 4.8 运行代码 ===
模组下载完成后返回 coral/pycoral路径下
 
<code>cd ..</code>
 
输入以下代码进行代码运行
 
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_39.jpg
 
注意:我们可以复制下列代码,但是请先粘贴到文本软件中,按照上图的格式,删除多余的回车符,再复制然后粘贴到终端中运行:
 
<code>python3 examples/classify_image.py \</code>
 
<code>--model test_data/test_data/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \</code>
 
<code>--labels test_data/test_data/inat_bird_labels.txt \</code>


https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit
<code>--input test_data/test_data/parrot.jpg</code>


3.2 系统烧写在SD(TF)卡上,[http://wiki.mcuzone.com/index.php?title=0005_MPS2242_2280%EF%BC%88%E5%8D%95SSD%E6%89%A9%E5%B1%95%E6%9D%BF%EF%BC%89#%E4%B8%89%E3%80%81%E7%B3%BB%E7%BB%9F%E7%83%A7%E5%86%99%E5%8F%8A%E8%AE%BE%E7%BD%AE 点击直达烧写方法说明]。
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_31.jpg


四、驱动安装与配置
'''<big>鉴于本转接板的测试需要在外网下载大量数据,为了方便用户进行测试,用户在购买本转接板后,可以联系我司获取已经配置完毕的树莓派OS镜像。</big>'''


4.1
{{联系我们_图标}}

2024年10月16日 (三) 21:31的最新版本

Change the language to English

关键词

树莓派5、PCIe、TPU、DTPU、驱动安装、操作演示、AI、google、Coral

一、简介

MPTPU是一款专为树莓派5设计的TPU扩展板,通过PCIe 1x Gen2驱动来自Coral的TPU模组。树莓派系统下使用TPU模块需要安装驱动以及操作环境配置,本文操作演示基于MPTPU扩展板(单TPU),对于双TPU的驱动安装也适用。

注意:此操作演示需要确保能稳定连通外网(需自备方法),否则许多文件无法下载或下载不全,最后可能会造成代码运行失败。

二、硬件资源

1 专为树莓派5的PCIe接口设计;

2 采用M.2 E-KEY接口,支持Google Coral Edge TPU;

3 预留CSI/DSI穿线槽:支持0.5mm间距的22Pin线缆和1mm间距的15Pin线缆;

4 板载一路电源指示灯("PWR");

5 采用优质电子元件,无铅生产,沉金工艺,PCB板通过UL认证和RoHS认证;

6 四个M2.5固定孔,板子上方内凹设计,方便40Pin GPIO的操作使用,不影响树莓派5的40Pin GPIO使用;

7 可选配铝合金外壳。

0006_MPW7_TPU_41.jpg

三、系统烧写

3.1 本文档使用的镜像为2024-07-04-raspios-bookworm-arm64.img.xz(树莓派OS,Raspberry Pi OS with desktop)。

树莓派OS下载地址:

https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit

3.2 系统烧写在SD(TF)卡上,点击直达烧写方法说明

注意:烧写系统用的TF卡的容量至少为16G,否则可能会在安装配置过程中报空间不足!

四、树莓派OS的操作演示

4.1 配置config.txt

系统启动后打开树莓派终端输入命令:

sudo nano /boot/firmware/config.txt

或者:

sudo mousepad /boot/firmware/config.txt

在文件最下方添加以下代码:

dtparam=pciex1

kernel=kernel8.img

dtoverlay=pineboards-hat-ai

0006_MPW7_TPU_01.jpg

0006_MPW7_TPU_02.jpg

代码添加成功后,保存并重启系统:

sudo reboot

4.2 确认软件环境

系统重启后打开打开树莓派终端输入命令:

uname -r

确保内核版本大于4.18后输入:

lsmod | grep apex

确保没有输出则可以开始安装TPU驱动。

0006_MPW7_TPU_03.jpg

4.3 安装必要软件

确保网络能连通外网(需自备方法)后,添加Google TPU软件库:

echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

0006_MPW7_TPU_04.jpg

添加完成后更新软件列表:

sudo apt-get update

0006_MPW7_TPU_06.jpg

更新完成后安装必要的软件:

sudo apt-get install cmake libedgetpu1-std devscripts debhelper dkms dh-dkms

0006_MPW7_TPU_07.jpg

0006_MPW7_TPU_08.jpg

4.4 安装Gasket Driver

依次输入以下命令安装Gasket Driver:

git clone https://github.com/google/gasket-driver.git

cd gasket-driver

sudo debuild -us -uc -tc -b

cd ..

sudo dpkg -i gasket-dkms_1.0-18_all.deb

0006_MPW7_TPU_09.jpg

0006_MPW7_TPU_10.jpg

0006_MPW7_TPU_11.jpg

安装完成后输入以下命令确保驱动以及软件安装成功:

sudo apt-get install gasket-dkms libedgetpu1-std

0006_MPW7_TPU_12.jpg

接下来添加udev rule去获得设备操作权限:

sudo sh -c "echo 'SUBSYSTEM==\"apex\", MODE=\"0660\", GROUP=\"apex\"' >> /etc/udev/rules.d/65-apex.rules"

添加用户到apex:

sudo groupadd apex

sudo adduser $USER apex

0006_MPW7_TPU_13.jpg

设置完成后重启系统:

sudo reboot

4.5 验证模块检测以及驱动安装

系统启动后验证模块检测以及驱动安装:

lspci -nn | grep 089a

ls /dev/apex_0

0006_MPW7_TPU_14.jpg

这里板载单TPU,因此可以看到一个TPU模块。

输入sudo lspci -v可以看到驱动加载:

0006_MPW7_TPU_15.jpg

4.6 代码运行环境配置

Google TPU模块代码运行需要在Python3.6-3.9之间,而树莓派最新系统的Python版本为3.11,因此我们需要使用Pyenv来下载老版本Python。

首先进行依赖安装:

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl

0006_MPW7_TPU_17.jpg

0006_MPW7_TPU_18.jpg

依赖安装完成后进行pyenv的安装:

curl https://pyenv.run | bash

0006_MPW7_TPU_19.jpg

输入:

sudo nano ~/.bashrc

或者:

sudo mousepad ~/.bashrc

在文件最下面添加以下代码:

export PYENV_ROOT="$HOME/.pyenv"

[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"

eval "$(pyenv init -)"

0006_MPW7_TPU_36.jpg

0006_MPW7_TPU_21.jpg

添加完成后保存退出并重新加载shell:

exec "$SHELL"

0006_MPW7_TPU_22.jpg

接下来我们可以利用pyenv安装老系统版本Python:

pyenv install -v 3.8.8

0006_MPW7_TPU_23.jpg

0006_MPW7_TPU_24.jpg

等待安装成功后我们将系统Python版本更改为3.8.8:

pyenv global 3.8.8

更改成功后可以查看当前Python使用版本为3.8.8:

pyenv versions

python3 -V

0006_MPW7_TPU_25.jpg

4.7 下载代码和运行模组

依次输入以下命令进行下载:

mkdir coral && cd coral

git clone https://github.com/google-coral/pycoral.git

cd pycoral

cd test_data

git clone https://github.com/google-coral/test_data.git

0006_MPW7_TPU_26.jpg

0006_MPW7_TPU_27.jpg

接下来下载代码运行模组

pip3 install numpy

0006_MPW7_TPU_28.jpg

pip3 install Pillow

0006_MPW7_TPU_29.jpg

pip3 install --extra-index-url https://google-coral.github.io/py-repo/ pycoral

0006_MPW7_TPU_30.jpg

4.8 运行代码

模组下载完成后返回 coral/pycoral路径下

cd ..

输入以下代码进行代码运行

0006_MPW7_TPU_39.jpg

注意:我们可以复制下列代码,但是请先粘贴到文本软件中,按照上图的格式,删除多余的回车符,再复制然后粘贴到终端中运行:

python3 examples/classify_image.py \

--model test_data/test_data/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \

--labels test_data/test_data/inat_bird_labels.txt \

--input test_data/test_data/parrot.jpg

0006_MPW7_TPU_31.jpg

鉴于本转接板的测试需要在外网下载大量数据,为了方便用户进行测试,用户在购买本转接板后,可以联系我司获取已经配置完毕的树莓派OS镜像。

联系我们

4f7e81daf8791971.jpg 79c020da7ad0af9b.jpg 2851e01a0549e6f7.gif 0003_bb.jpg 0005_qq.jpg QQ:8204136

邮件:mcuzone@vip.qq.com

电话:13957118045

如本页面有任何疏漏、错误或者侵权,请通过上述途径联系我们,谢谢!

Copyright 2004-2024 野芯科技