MPTPU 使用教程

一、简介

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 可选配铝合金外壳。


三、系统烧写

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


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

sudo reboot

4.2 确认软件环境

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

uname -r

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

lsmod | grep apex

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


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 -


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

sudo apt-get update


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

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


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


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

sudo apt-get install gasket-dkms libedgetpu1-std


接下来添加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


设置完成后重启系统:

sudo reboot

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

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

lspci -nn | grep 089a

ls /dev/apex_0


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

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


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



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

curl https://pyenv.run | bash


输入:

sudo nano ~/.bashrc

或者:

sudo mousepad ~/.bashrc

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

export PYENV_ROOT="$HOME/.pyenv"

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

eval "$(pyenv init -)"


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

exec "$SHELL"


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

pyenv install -v 3.8.8


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

pyenv global 3.8.8

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

pyenv versions

python3 -V


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


接下来下载代码运行模组

pip3 install numpy

pip3 install Pillow

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


4.8 运行代码

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

cd ..

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

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

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


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

联系我们

周一-周五(9:30-6:30)周六(9:30-5:30)

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841