Первая часть обзора включала распаковку и первичную загрузку Mixtile Core 3588E – совместимого с NVIDIA Jetson Nano/TX2 NX/Xavier NX/Orin Nano системного модуля Rockchip RK3588 в формате SO-DIMM с предустановленной Ubuntu 22.04 OEM.
Дополнительное время работы с комплектом разработчика (модуль Core 3588 16GB/128GB + базовая плата Leetop A206) позволило провести тесты низкоуровневых функций, бенчмарки, мультимедийные проверки с ускорением 3D-графики и воспроизведением видео, ИИ-тесты с использованием встроенного 6 TOPS NPU и инструментария RKNPU2, а также испытание системного модуля с базовой платой от комплекта разработчика NVIDIA Jetson Nano .
Системная информация Ubuntu 22.04
Часть системных данных уже рассматривалась в первой части обзора Mixtile Core 3588E, но приведём ключевые параметры:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
jaufranc@Mixtile–RK3588E:~$ uname –a
Linux Mixtile–RK3588E 5.10.160–rockchip #18 SMP Wed Dec 6 15:11:42 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
jaufranc@Mixtile–RK3588E:~$ cat /etc/lsb–release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION=“Ubuntu 22.04.3 LTS”
jaufranc@Mixtile–RK3588E:~$ df –h
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.6G 2.7M 1.6G 1% /run
/dev/mmcblk0p2 113G 7.5G 101G 7% /
tmpfs 7.7G 0 7.7G 0% /dev/shm
tmpfs 5.0M 8.0K 5.0M 1% /run/lock
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
/dev/mmcblk0p1 512M 101M 411M 20% /boot/firmware
tmpfs 1.6G 60K 1.6G 1% /run/user/0
tmpfs 1.6G 76K 1.6G 1% /run/user/130
tmpfs 1.6G 68K 1.6G 1% /run/user/1000
jaufranc@Mixtile–RK3588E:~$ free –mh
total used free shared buff/cache available
Mem: 15Gi 601Mi 13Gi 47Mi 1.4Gi 14Gi
Swap: 2.0Gi 0B 2.0Gi
|
Дополнительные детали проверены утилитой inxi.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
jaufranc@Mixtile–RK3588E:~$ sudo inxi –Fc0
System:
Host: Mixtile–RK3588E Kernel: 5.10.160–rockchip aarch64 bits: 64
Console: pty pts/1 Distro: Ubuntu 22.04.3 LTS (Jammy Jellyfish)
Machine:
Type: ARM System: Mixtile Core 3588E details: N/A serial: cf7045b2d349673e
CPU:
Info: 3x 4–core model: N/A variant–1: cortex–a55 variant–2: cortex–a76
bits: 64 type: MCP AMP cache: L2: 3x 512 KiB (1.5 MiB)
Speed (MHz): avg: 2076 min/max: 408/1800:2352 cores: 1: 1800 2: 1800
3: 1800 4: 1800 5: 2352 6: 2352 7: 2352 8: 2352
Graphics:
Device–1: display–subsystem driver: rockchip_drm v: N/A
Device–2: mali–bifrost driver: mali v: N/A
Device–3: rk3588–dw–hdmi driver: dwhdmi_rockchip v: N/A
Display: server: X.org v: 1.21.1.4 with: Xwayland v: 22.1.1 driver: X:
loaded: modesetting gpu: rockchip_drm,mali,dwhdmi_rockchip tty: 80×24
resolution: 1920×1080
Message: GL data unavailable in console for root.
Audio:
Device–1: rk3588–dw–hdmi driver: dwhdmi_rockchip
Device–2: hdmi driver: rk_hdmi_sound
Sound Server–1: ALSA v: k5.10.160–rockchip running: yes
Sound Server–2: PulseAudio v: 15.99.1 running: yes
Sound Server–3: PipeWire v: 0.3.48 running: yes
Network:
Device–1: rk3588–gmac driver: rk_gmac_dwmac
IF: eth0 state: up speed: 1000 Mbps duplex: full mac: 66:fc:eb:b8:d9:4d
Drives:
Local Storage: total: 115.25 GiB used: 7.87 GiB (6.8%)
ID–1: /dev/mmcblk0 model: AKJ21X size: 115.25 GiB
Partition:
ID–1: / size: 112.81 GiB used: 7.77 GiB (6.9%) fs: ext4 dev: /dev/mmcblk0p2
Swap:
ID–1: swap–1 type: file size: 2 GiB used: 0 KiB (0.0%) file: /swapfile
Sensors:
System Temperatures: cpu: 39.8 C mobo: N/A
Fan Speeds (RPM): cpu: 0
Info:
Processes: 276 Uptime: 6m Memory: 15.35 GiB used: 790.8 MiB (5.0%)
Init: systemd runlevel: 5 Shell: Sudo inxi: 3.3.13
|
Полный журнал загрузки через последовательную консоль доступен на pastebin . Видно, что Mixtile Core 3588E оснащён процессором Rockchip RK3588 (восемь ядер: Cortex-A55 1800 МГц, Cortex-A76 2352 МГц), 16 ГБ ОЗУ, 128 ГБ eMMC (устройство AKJ21X), подключён к HDMI и Gigabit Ethernet. Температура системы в простое – 39.8°C благодаря ШИМ-вентилятору, работающему почти постоянно, но шумовые характеристики приемлемы.
[Обновление от 9 января 2024: Mixtile выпустила новую прошивку с активированными по умолчанию Wayland и GPIO, что должно исправить часть упомянутых проблем. См. примечания к выпуску и ссылку для загрузки]
Тестирование аппаратных возможностей Mixtile Core 3588E в Ubuntu 22.04
Компания Mixtile предоставляет документацию , раздел “Аппаратные руководства” использован для проверки большинства функций. Тест MIPI CSI камер пропущен из-за требования модулей IMX219, отсутствующих в наличии.
Слоты M.2 с NVMe SSD и модулем WiFi 6
Установлены 256 ГБ NVMe SSD ( Apacer AS2280P4 : скорость чтения до 1800 МБ/с, записи – 1100 МБ/с) и модуль Realtek RTL8852BE (WiFi 6 + Bluetooth 5.2), извлечённый из одноплатника Radxa ROCK 5B , в нижний слот M.2 платы Leetop A206.

Проверим обнаружение NVMe SSD и модуля WiFi после загрузки:
1
2
3
4
5
6
7
8
9
|
jaufranc@Mixtile–RK3588E:~$ inxi —disk
Drives:
Local Storage: total: 353.72 GiB used: 16.45 GiB (4.7%)
ID–1: /dev/mmcblk0 model: AKJ21X size: 115.25 GiB
ID–2: /dev/nvme0n1 vendor: Apacer model: AS2280P4 256GB size: 238.47 GiB
jaufranc@Mixtile–RK3588E:~$ inxi —network
Network:
Device–1: Realtek driver: rtl8852be
Device–2: rk3588–gmac driver: rk_gmac_dwmac
|
Оценим производительность NVMe SSD:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
jaufranc@Mixtile–RK3588E:~$ pmount /dev/nvme0n1p1
jaufranc@Mixtile–RK3588E:~$ pushd /media/nvme0n1p1/
jaufranc@Mixtile–RK3588E:/media/nvme0n1p1$ mount | grep nvme
/dev/nvme0n1p1 on /media/nvme0n1p1 type ext4 (rw,nosuid,nodev,noexec,relatime,errors=remount–ro,user)
jaufranc@Mixtile–RK3588E:/media/nvme0n1p1$ sudo iozone –e –I –a –s 100M –r 4k –r 16k –r 512k –r 1024k –r 16384k –i 0 –i 1 –i 2
Iozone: Performance Test of File I/O
Version $Revision: 3.489 $
Compiled for 64 bit mode.
Build: linux
Output is in kBytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 kBytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
random random bkwd record stride
kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
102400 4 166031 246955 44753 44442 44269 91564
102400 16 396742 683760 145979 143805 142192 286068
102400 512 1485157 1751026 825953 829397 835134 1822126
102400 1024 1834305 1979094 1246027 1260139 1248966 1943258
102400 16384 2272509 2360523 2229826 2280516 2265492 1997196
iozone test complete.
|
Показатели – до 2272 МБ/с записи и 2229 МБ/с чтения – превышают заявленные возможности SSD, несмотря на использование EXT4 с прямым I/O. Изменение размеров теста не повлияло на результат. Альтернативная проверка через FIO:
1
2
3
4
5
6
7
8
|
jaufranc@Mixtile–RK3588E:/media/nvme0n1p1$ sudo apt install fio
jaufranc@Mixtile–RK3588E:/media/nvme0n1p1$ sudo mkdir fiotest
jaufranc@Mixtile–RK3588E:/media/nvme0n1p1$ sudo fio —directory=/media/nvme0n1p1/fiotest —direct=1 —rw=read —bs=1024k —ioengine=libaio —iodepth=64 —size=4G —runtime=10 —numjobs=4 —group_reporting —name=fio–rand–read–sequential —eta–newline=1 | grep READ
READ: bw=1743MiB/s (1828MB/s), 1743MiB/s–1743MiB/s (1828MB/s–1828MB/s), io=16.0GiB (17.2GB), run=9398–9398msec
jaufranc@Mixtile–RK3588E:/media/nvme0n1p1$ sudo fio —directory=/media/nvme0n1p1/fiotest —direct=1 —rw=write —bs=1024k —ioengine=libaio —iodepth=64 —size=4G —runtime=10 —numjobs=4 —group_reporting —name=fio–rand–write–sequential —eta–newline=1 | grep WRITE
WRITE: bw=867MiB/s (909MB/s), 867MiB/s–867MiB/s (909MB/s–909MB/s), io=8780MiB (9206MB), run=10132–10132msec
|
Результаты ближе к теоретическим: 1828 МБ/с чтения, 909 МБ/с записи. Разъём M.2 PCIe функционирует корректно.
Дополнительно протестирована флеш-память eMMC через iozone:
1
2
3
4
5
6
7
8
9
10
11
12
|
jaufranc@Mixtile–RK3588E:/media/nvme0n1p1$ popd
~
jaufranc@Mixtile–RK3588E:~$ sudo iozone –e –I –a –s 100M –r 4k –r 16k –r 512k –r 1024k –r 16384k –i 0 –i 1 –i 2
random random bkwd record stride
kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
102400 4 66310 42131 26857 25340 21680 38597
102400 16 74582 91848 56797 56601 49706 96617
102400 512 211969 221025 233683 228160 206900 213009
102400 1024 236763 228521 269734 261192 235478 230699
102400 16384 258144 255958 301140 288659 285248 263243
iozone test complete.
|
Скорость последовательного чтения 301 МБ/с и записи 258 МБ/с – отличный показатель для 128 ГБ eMMC.
Перейдём к модулю WiFi. Подключение прошло успешно, хотя обнаружены два беспроводных устройства Realtek, что характерно для данной модели.
Подключение через 5 ГГц WiFi показало скорость соединения 1.201 Гбит/с:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
jaufranc@Mixtile–RK3588E:~$ iwconfig wlan1
wlan1 IEEE 802.11AX ESSID:“CNX_Software_Xiaomi_5G” Nickname:“<WIFI@REALTEK>”
Mode:Managed Frequency:5.18 GHz Access Point: 3C:CD:57:F5:AF:91
Bit Rate:1.201 Gb/s Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Power Management:off
Link Quality=86/100 Signal level=86/100 Noise level=0/100
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
jaufranc@Mixtile–RK3588E:~$ iwconfig wlP2p33s0
wlP2p33s0 IEEE 802.11AX ESSID:“CNX_Software_Xiaomi_5G” Nickname:“<WIFI@REALTEK>”
Mode:Managed Frequency:5.18 GHz Access Point: 3C:CD:57:F5:AF:91
Bit Rate:1.201 Gb/s Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Power Management:off
Link Quality=86/100 Signal level=86/100 Noise level=0/100
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
|
Проверка скорости загрузки/выгрузки через iperf3 с использованием 2.5 GbE интерфейса мини-ПК UP Xtreme i11 на принимающей стороне:
- Отправка
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
jaufranc@Mixtile–RK3588E:~$ iperf3 –t 60 –c 192.168.31.12 –i 10
Connecting to host 192.168.31.12, port 5201
[ 5] local 192.168.31.148 port 53782 connected to 192.168.31.12 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00–10.00 sec 768 MBytes 645 Mbits/sec 5 3.15 MBytes
[ 5] 10.00–20.00 sec 640 MBytes 537 Mbits/sec 118 3.58 MBytes
[ 5] 20.00–30.00 sec 705 MBytes 591 Mbits/sec 51 3.58 MBytes
[ 5] 30.00–40.00 sec 729 MBytes 611 Mbits/sec 142 3.01 MBytes
[ 5] 40.00–50.00 sec 630 MBytes 528 Mbits/sec 146 3.27 MBytes
[ 5] 50.00–60.00 sec 724 MBytes 607 Mbits/sec 96 3.07 MBytes
– – – – – – – – – – – – – – – – – – – – – – – – –
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00–60.00 sec 4.10 GBytes 587 Mbits/sec 558 sender
[ 5] 0.00–60.05 sec 4.10 GBytes 586 Mbits/sec receiver
iperf Done.
|
- Загрузка
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
jaufranc@Mixtile–RK3588E:~$ iperf3 –t 60 –c 192.168.31.12 –i 10 –R
Connecting to host 192.168.31.12, port 5201
Reverse mode, remote host 192.168.31.12 is sending
[ 5] local 192.168.31.148 port 42178 connected to 192.168.31.12 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00–10.00 sec 630 MBytes 528 Mbits/sec
[ 5] 10.00–20.00 sec 477 MBytes 400 Mbits/sec
[ 5] 20.00–30.00 sec 832 MBytes 698 Mbits/sec
[ 5] 30.00–40.00 sec 784 MBytes 658 Mbits/sec
[ 5] 40.00–50.00 sec 866 MBytes 726 Mbits/sec
[ 5] 50.00–60.00 sec 431 MBytes 361 Mbits/sec
– – – – – – – – – – – – – – – – – – – – – – – – –
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00–60.04 sec 3.93 GBytes 562 Mbits/sec 798 sender
[ 5] 0.00–60.00 sec 3.93 GBytes 562 Mbits/sec receiver
iperf Done.
|
Результаты: 586 Мбит/с (отправка) и 562 Мбит/с (загрузка) – удовлетворительно, хотя при загрузке наблюдались колебания от 400 до 726 Мбит/с. Тот же модуль в Radxa ROCK 5B в аналогичных условиях показал среднюю скорость загрузки 821 Мбит/с и отправки 420 Мбит/с.
Дополнительно проверен Gigabit Ethernet в двунаправленном (дуплексном) режиме:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
jaufranc@Mixtile–RK3588E:~$ iperf3 –t 60 –c 192.168.31.12 –i 10 —bidir
Connecting to host 192.168.31.12, port 5201
[ 5] local 192.168.31.212 port 55602 connected to 192.168.31.12 port 5201
[ 7] local 192.168.31.212 port 55618 connected to 192.168.31.12 port 5201
[ ID][Role] Interval Transfer Bitrate Retr Cwnd
[ 5][TX–C] 0.00–10.00 sec 1.08 GBytes 929 Mbits/sec 0 604 KBytes
[ 7][RX–C] 0.00–10.00 sec 1.09 GBytes 938 Mbits/sec
[ 5][TX–C] 10.00–20.00 sec 1.08 GBytes 930 Mbits/sec 0 918 KBytes
[ 7][RX–C] 10.00–20.00 sec 1.09 GBytes 938 Mbits/sec
[ 5][TX–C] 20.00–30.00 sec 1.09 GBytes 932 Mbits/sec 0 918 KBytes
[ 7][RX–C] 20.00–30.00 sec 1.09 GBytes 938 Mbits/sec
[ 5][TX–C] 30.00–40.00 sec 1.09 GBytes 932 Mbits/sec 0 918 KBytes
[ 7][RX–C] 30.00–40.00 sec 1.09 GBytes 938 Mbits/sec
[ 5][TX–C] 40.00–50.00 sec 1.09 GBytes 932 Mbits/sec 0 918 KBytes
[ 7][RX–C] 40.00–50.00 sec 1.09 GBytes 938 Mbits/sec
[ 5][TX–C] 50.00–60.00 sec 1.08 GBytes 931 Mbits/sec 0 1.33 MBytes
[ 7][RX–C] 50.00–60.00 sec 1.09 GBytes 938 Mbits/sec
– – – – – – – – – – – – – – – – – – – – – – – – –
[ ID][Role] Interval Transfer Bitrate Retr
[ 5][TX–C] 0.00–60.00 sec 6.50 GBytes 931 Mbits/sec 0 sender
[ 5][TX–C] 0.00–60.04 sec 6.50 GBytes 930 Mbits/sec receiver
[ 7][RX–C] 0.00–60.00 sec 6.55 GBytes 938 Mbits/sec 0 sender
[ 7][RX–C] 0.00–60.04 sec 6.55 GBytes 937 Mbits/sec receiver
iperf Done.
|
Проблем не выявлено. Тестирование комплекта разработчика Mixtile Core 3588E в Ubuntu проходит успешно.
Проверка RTC и последовательного отладочного порта
Тест RTC проведён без сменной батарейки-таблетки.
1
2
3
4
5
|
jaufranc@Mixtile–RK3588E:~$ date
อา. 24 ธ.ค. 2566 11:20:01 +07
jaufranc@Mixtile–RK3588E:~$ sudo hwclock
2023–12–24 11:20:03.310212+07:00
jaufranc@Mixtile–RK3588E:~$ sudo hwclock –w
|
Результат корректен с учётом локали для Таиланда (буддийский год 2566 соответствует 2023 международному).
Последовательный отладочный порт использован для доступа к плате без Ethernet/дисплея, как показано выше.
После отключения кабеля Ethernet (WiFi отсутствовал) система перезагружена. Для доступа к последовательной консоли Mixtile Core 3588E использован BootTerm на ноутбуке Ubuntu со скоростью 1 500 000 бод:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
jaufranc@CNX–LAPTOP–5:~$ bt –b 1500000
No port specified, using ttyUSB0 (last registered). Use –l to list ports.
Trying port ttyUSB0... Connected to ttyUSB0 at 1500000 bps.
Escape character is ‘Ctrl-]’. Use escape followed by ‘?’ for help.
root@Mixtile–RK3588E:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO–CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 66:fc:eb:b8:d9:4d brd ff:ff:ff:ff:ff:ff
root@Mixtile–RK3588E:~# date
อา. 24 ธ.ค. 2566 11:58:10 +07
root@Mixtile–RK3588E:~# hwclock
2023–12–24 11:58:14.668220+07:00
|
Системное время и RTC слегка рассинхронизированы. Ожидалось, что система считает время из RTC без батарейки, но этого не произошло. После двухчасового отключения питания (без батарейки и интернета) получен результат:
Системная дата восстановилась на момент последнего выключения, RTC отображал 1 января 2021. Это ожидаемо; после подключения Ethernet оба показателя автоматически синхронизировались.
Тестирование I2C с OLED-дисплеем
Базовая плата Leetop A206 имеет 40-контактный GPIO-разъём со следующей распиновкой.
Руководство предлагает тест I2C с OLED-дисплеем. Использован дисплей из комплекта ANAVI Thermometer , подключённый к I2C1 (контакты GPIO 3 и 5), 3.3V и GND.
Изначально подключение не сработало:
1
2
3
4
5
6
7
8
9
10
11
12
|
jaufranc@Mixtile–RK3588E:~$ sudo ./oled–i2c /dev/i2c–1
打开设备失败: No such file or directory
ioctl error1: Bad file descriptor
ioctl error1: Bad file descriptor
ioctl error1: Bad file descriptor
ioctl error1: Bad file descriptor
ioctl error1: Bad file descriptor
ioctl error1: Bad file descriptor
ioctl error1: Bad file descriptor
jaufranc@Mixtile–RK3588E:~$ sudo i2cdetect –y 1
Error: Could not open file
/dev/i2c-1' or /dev/i2c/1′: No such file or directory |
Причина – неактивированный интерфейс I2C1 (исправлено ниже). После перемещения дисплея на I2C0 (контакты 27 и 28) утилита oled-i2c отобразила строку “Core3588E”. Для интерактивного теста установлен проект SSD1306
1
2
3
|
git clone https://github.com/armlabs/ssd1306_linux
cd ssd1306–linux
make –j 8
|
… с выводом пользовательских строк:
1
2
3
|
sudo ./ssd1306_bin –I 128×32
sudo ./ssd1306_bin –c
sudo ./ssd1306_bin –m “CNX Software\nCore 3588E\nReview”
|
Успешно! После сообщения о проблеме с I2C1 компания Mixtile рекомендовала отредактировать /boot/firmware/ubuntuEnv.txt , обновив строку “overlays”:
1
|
overlays=mixtile–core3588e–40pins
|
После перезагрузки проверка:
1
2
3
|
jaufranc@Mixtile–RK3588E:~/ssd1306_linux$ sudo ./ssd1306_bin –I 128×32 –n 1
jaufranc@Mixtile–RK3588E:~/ssd1306_linux$ sudo ./ssd1306_bin –c –n 1
jaufranc@Mixtile–RK3588E:~/ssd1306_linux$ sudo ./ssd1306_bin –m “CNX Software\nI2C-1 test” –n 1
|
Проблема устранена. Компания пояснила, что это активирует специальные режимы GPIO, и изменение войдёт в будущие образы.
Тестирование последовательного интерфейса UART
Мы уже использовали интерфейс UART для последовательной консоли, но заголовок GPIO также имеет собственный интерфейс UART для подключения различных периферийных устройств. Его также можно протестировать с помощью отладочной платы USB serial для отправки и приема сообщений. Первоначально это не работало из-за отсутствия строки “overlays” в файле /boot/firmware/ubuntuEnv.txt, поэтому при ее отсутствии необходимо предварительно обновить этот файл.
План заключается в выполнении петлевого теста путем передачи данных с UART1 (Tx на выводе 8, Rx на выводе 10) на USB-последовательный порт отладочной платы, подключенной к одному из USB-портов несущей платы Leeptop A206.
Поскольку плата работает под Ubuntu 22.04, сначала потребуется выполнить подготовительные действия :
1
|
sudo apt remove brltty
|
после чего станут доступны три последовательных интерфейса:
1
2
3
4
5
6
|
jaufranc@Mixtile–RK3588E:~$ bt –l
port | age (sec) | device | driver | description
——+————+————+——————+———————-
0 | 9850 | ttyS1 | dw–apb–uart | rockchip,rk3588–uart
1 | 9850 | ttyS7 | dw–apb–uart | rockchip,rk3588–uart
* 2 | 6 | ttyUSB0 | ch341–uart | USB2.0–Serial
|
Предполагается, что ttyS1 соответствует UART1 на заголовке GPIO, а ttyUSB0 — подключенной отладочной плате USB serial. Откроем два терминальных окна, каждое с подключением на скорости 9600 бод, и третье для отправки команд.
Удалось отправить сообщение “hello” с ttyUSB0 на ttyS1 без проблем, но обратная передача с ttyS1 на ttyUSB0 не работала. Попытки заменить провода и переключиться на утилиту Picocom, как указано в руководстве, дали тот же результат… Причина неясна.
Результаты тестирования производительности Mixtile Core 3588E под Ubuntu 22.04
Поскольку несколько платформ на Rockchip RK3588 уже были рассмотрены ранее, производительность процессора хорошо известна. Для проверки соответствия модуля Mixtile Core 3588E ожиданиям под Ubuntu 22.04 было запущено несколько тестов. Первым использовался скрипт sbc-bench.sh.
1
2
3
|
wget https://github.com/ThomasKaiser/sbc-bench/raw/master/sbc-bench.sh
chmod +x sbc–bench.sh
sudo ./sbc–bench.sh –r
|
Результат:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
Starting to examine hardware/software for review purposes...
sbc–bench v0.9.60
Installing needed tools, tinymembench, ramlat, mhz, cpufetch, cpuminer. Done.
Checking cpufreq OPP. Done.
Executing tinymembench. Done.
Executing RAM latency tester. Done.
Executing OpenSSL benchmark. Done.
Executing 7–zip benchmark. Done.
Throttling test: heating up the device, 5 more minutes to wait. Done.
Checking cpufreq OPP again. Done (20 minutes elapsed).
Results validation:
* Advertised vs. measured max CPU clockspeed: –3.1% before, –3.1% after –> https://tinyurl.com/32w9rr94
* No swapping
* Background activity (%system) OK
* No throttling
# Mixtile Core 3588E
Tested with sbc–bench v0.9.60 on Sat, 23 Dec 2023 15:20:14 +0700.
### General information:
Information courtesy of cpufetch:
SoC: Rockchip RK3588S
Technology: 8nm
CPU 1:
Microarchitecture: Cortex–A55
Max Frequency: 1.800 GHz
Cores: 4 cores
Features: NEON,SHA1,SHA2,AES,CRC32
CPU 2:
Microarchitecture: Cortex–A76
Max Frequency: 2.352 GHz
Cores: 4 cores
Features: NEON,SHA1,SHA2,AES,CRC32
Peak Performance: 208.13 GFLOP/s
The CPU features 3 clusters consisting of 2 different core types:
Rockchip RK3588 (35881000), Kernel: aarch64, Userland: arm64
CPU sysfs topology (clusters, cpufreq members, clockspeeds)
cpufreq min max
CPU cluster policy speed speed core type
0 0 0 408 1800 Cortex–A55 / r2p0
1 0 0 408 1800 Cortex–A55 / r2p0
2 0 0 408 1800 Cortex–A55 / r2p0
3 0 0 408 1800 Cortex–A55 / r2p0
4 1 4 408 2352 Cortex–A76 / r4p0
5 1 4 408 2352 Cortex–A76 / r4p0
6 2 6 408 2352 Cortex–A76 / r4p0
7 2 6 408 2352 Cortex–A76 / r4p0
15715 KB available RAM
### Governors/policies (performance vs. idle consumption):
Original governor settings:
cpufreq–policy0: performance / 1800 MHz (conservative ondemand userspace powersave performance schedutil / 408 600 816 1008 1200 1416 1608 1800)
cpufreq–policy4: performance / 2352 MHz (conservative ondemand userspace powersave performance schedutil / 408 600 816 1008 1200 1416 1608 1800 2016 2208 2352)
cpufreq–policy6: performance / 2352 MHz (conservative ondemand userspace powersave performance schedutil / 408 600 816 1008 1200 1416 1608 1800 2016 2208 2352)
fb000000.gpu: performance / 1000 MHz (rknpu_ondemand userspace powersave performance simple_ondemand / 300 400 500 600 700 800 900 1000)
fdab0000.npu: performance / 1000 MHz (rknpu_ondemand userspace powersave performance simple_ondemand / 300 400 500 600 700 800 900 1000)
Tuned governor settings:
cpufreq–policy0: performance / 1800 MHz
cpufreq–policy4: performance / 2352 MHz
cpufreq–policy6: performance / 2352 MHz
fb000000.gpu: performance / 1000 MHz
fdab0000.npu: performance / 1000 MHz
Status of performance related policies found below /sys:
/sys/devices/platform/fb000000.gpu/power_policy: [coarse_demand] always_on
/sys/module/pcie_aspm/parameters/policy: default [performance] powersave powersupersave
### Clockspeeds (idle vs. heated up):
Before at 40.7°C:
cpu0–cpu3 (Cortex–A55): OPP: 1800, Measured: 1786
cpu4–cpu5 (Cortex–A76): OPP: 2352, Measured: 2285 (–2.8%)
cpu6–cpu7 (Cortex–A76): OPP: 2352, Measured: 2279 (–3.1%)
After at 49.0°C:
cpu0–cpu3 (Cortex–A55): OPP: 1800, Measured: 1786
cpu4–cpu5 (Cortex–A76): OPP: 2352, Measured: 2284 (–2.9%)
cpu6–cpu7 (Cortex–A76): OPP: 2352, Measured: 2279 (–3.1%)
### Performance baseline
* cpu0 (Cortex–A55): memcpy: 5644.9 MB/s, memchr: 2701.9 MB/s, memset: 21690.3 MB/s
* cpu4 (Cortex–A76): memcpy: 10003.5 MB/s, memchr: 13192.3 MB/s, memset: 27101.6 MB/s
* cpu6 (Cortex–A76): memcpy: 9998.8 MB/s, memchr: 13138.1 MB/s, memset: 26563.3 MB/s
* cpu0 (Cortex–A55) 16M latency: 121.6 122.2 119.0 122.1 120.7 128.1 217.4 386.4
* cpu4 (Cortex–A76) 16M latency: 122.5 112.1 120.3 111.7 120.7 119.3 115.8 118.4
* cpu6 (Cortex–A76) 16M latency: 133.4 133.9 133.2 133.6 135.6 128.6 123.0 128.2
* cpu0 (Cortex–A55) 128M latency: 146.8 148.0 146.6 148.0 146.1 151.8 232.0 412.4
* cpu4 (Cortex–A76) 128M latency: 139.0 140.2 138.6 140.1 138.1 133.4 129.9 138.4
* cpu6 (Cortex–A76) 128M latency: 136.4 137.4 136.2 137.5 136.2 132.3 129.5 137.3
* 7–zip MIPS (3 consecutive runs): 15789, 15936, 15971 (15900 avg), single–threaded: 3038
*
aes-256-cbc 146280.66k 384411.09k 647286.95k 781691.56k 832263.51k 836283.05k (Cortex-A55) *
aes-256-cbc 582339.40k 1005131.37k 1214187.86k 1275972.27k 1299854.68k 1302173.01k (Cortex-A76) *
aes-256-cbc 580963.36k 998935.25k 1209651.11k 1271505.58k 1295392.77k 1297803.95k (Cortex-A76)### Storage devices:
* 115.3GB “AKJ21X” HS400 Enhanced strobe eMMC 5.1 card as /dev/mmcblk0: date 06/2023, manfid/oemid: 0x0000f4/0x0122, hw/fw rev: 0x0/0x0000000000561222
### Swap configuration:
* /swapfile on /dev/mmcblk0p2: 2.0G (0K used) on MMC storage
### Software versions:
* Ubuntu 22.04.3 LTS
* Compiler: /usr/bin/gcc (Ubuntu 11.4.0–1ubuntu1~22.04) 11.4.0 / aarch64–linux–gnu
* OpenSSL 3.0.2, built on 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
### Kernel info:
*
/proc/cmdline: root=UUID=14d9c0e2-3152-4361-a514-22285e98a8be rootfstype=ext4 rootwait rw console=ttyS2,1500000 console=tty1 cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 systemd.unified_cgroup_hierarchy=0 quiet splash plymouth.ignore-serial-consoles * Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
* Vulnerability Spectre v1: Mitigation; __user pointer sanitization
* Vulnerability Spectre v2: Vulnerable: Unprivileged eBPF enabled
* Kernel 5.10.160–rockchip / CONFIG_HZ=300
Kernel 5.10.160 is not latest 5.10.205 LTS that was released on 2023–12–20.
See https://endoflife.date/linux for details. It is somewhat likely that some
exploitable vulnerabilities exist for this kernel as well as many unfixed bugs.
But this version string doesn‘t matter since this is not an official LTS Linux
from kernel.org. This device runs a Rockchip vendor/BSP kernel.
This kernel is based on a mixture of Android GKI and other sources. Also some
community attempts to do version string cosmetics might have happened, see
https://tinyurl.com/2p8fuubd for example. To examine how far away this 5.10.160
is from an official LTS of same version someone would have to reapply Rockchip’s
thousands of patches to a clean 5.10.160 LTS.
All known settings adjusted for performance. Device now ready for benchmarking.
Once finished stop with [ctrl]–[c] to get info about throttling, frequency cap
and too high background activity all potentially invalidating benchmark scores.
All changes with storage and PCIe devices as well as suspicious dmesg contents
will be reported too.
Time cpu0/cpu4/cpu6 load %cpu %sys %usr %nice %io %irq Temp
15:20:17: 1800/2352/2352MHz 6.60 30% 0% 29% 0% 0% 0% 41.6°C
15:21:18: 1800/2352/2352MHz 2.45 0% 0% 0% 0% 0% 0% 39.8°C
|
Тест 7-zip показал в среднем 15 900 баллов, что сравнимо с ~16 200 у Rock 5B и 16 400 у Khadas Edge2 Pro . Результат незначительно ниже. Изначально предполагалось, что причина в зафиксированных частотах ~2285/2279 МГц на кластерах Cortex-A76, но Edge2 Pro демонстрирует еще меньшие значения: 2257 МГц для первого кластера Cortex-A76 и 2259 МГц для второго. Пропускная способность памяти для ядер Cortex-A76 на Mixtile Core 3588E составила около 10 000 МБ/с (memcpy), тогда как Rock 5B показал 10457.5 МБ/с, а Edge2 Pro — 10855.0 МБ/с. Разница снова присутствует, но несущественна. Результаты AES-256 для трех упомянутых плат Rockchip RK3588 также находятся в сопоставимом диапазоне.
Затем был запущен Speedometer 2.0 в предустановленном браузере Chromium…

Chromium… и повторен в Firefox.

FirefoxНеожиданно Firefox оказался быстрее Chromium в этом тесте: 78.84 балла у Chromium против 53.14 у Firefox (сентябрь 2022) на Khadas Edge2 Pro. Веб-браузеры постоянно развиваются, а производители могут устанавливать различные параметры, поэтому сравнение затруднено. Однако модуль Mixtile функционирует корректно.
Мультимедийные возможности — 3D-графика и воспроизведение видео
Планировалось начать тестирование 3D-графики с помощью бенчмарка glmark2-es2-wayland. Однако он завершился ошибкой, поскольку оконная система настроена на X11, тогда как большинство современных плат используют Ubuntu 22.04 с Wayland. Аналогичная ситуация наблюдалась на Khadas Edge2 Pro под Ubuntu 22.04 . Возможно, это частично объясняет более низкий результат Chromium.
Тест 3D-графики все же удалось провести с использованием glmark2-es2.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
jaufranc@Mixtile–RK3588E:~/Desktop$ glmark2–es2
=======================================================
glmark2 2021.02
=======================================================
OpenGL Information
GL_VENDOR: Panfrost
GL_RENDERER: Mali–G610 (Panfrost)
GL_VERSION: OpenGL ES 3.1 Mesa 23.0.0–devel
=======================================================
[build] use–vbo=false: FPS: 1129 FrameTime: 0.886 ms
[build] use–vbo=true: FPS: 1203 FrameTime: 0.831 ms
[texture] texture–filter=nearest: FPS: 1349 FrameTime: 0.741 ms
[texture] texture–filter=linear: FPS: 1299 FrameTime: 0.770 ms
[texture] texture–filter=mipmap: FPS: 1161 FrameTime: 0.861 ms
[shading] shading=gouraud: FPS: 1255 FrameTime: 0.797 ms
[shading] shading=blinn–phong–inf: FPS: 1219 FrameTime: 0.820 ms
[shading] shading=phong: FPS: 1144 FrameTime: 0.874 ms
[shading] shading=cel: FPS: 1138 FrameTime: 0.879 ms
[bump] bump–render=high–poly: FPS: 881 FrameTime: 1.135 ms
[bump] bump–render=normals: FPS: 1461 FrameTime: 0.684 ms
[bump] bump–render=height: FPS: 1420 FrameTime: 0.704 ms
[effect2d] kernel=0,1,0;1,–4,1;0,1,0;: FPS: 1094 FrameTime: 0.914 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 1029 FrameTime: 0.972 ms
[pulsar] light=false:quads=5:texture=false: FPS: 1174 FrameTime: 0.852 ms
[desktop] blur–radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 431 FrameTime: 2.320 ms
[desktop] effect=shadow:windows=4: FPS: 972 FrameTime: 1.029 ms
[buffer] columns=200:interleave=false:update–dispersion=0.9:update–fraction=0.5:update–method=map: FPS: 485 FrameTime: 2.062 ms
[buffer] columns=200:interleave=false:update–dispersion=0.9:update–fraction=0.5:update–method=subdata: FPS: 480 FrameTime: 2.083 ms
[buffer] columns=200:interleave=true:update–dispersion=0.9:update–fraction=0.5:update–method=map: FPS: 541 FrameTime: 1.848 ms
[ideas] speed=duration: FPS: 896 FrameTime: 1.116 ms
[jellyfish] <default>: FPS: 1087 FrameTime: 0.920 ms
[terrain] <default>: FPS: 90 FrameTime: 11.111 ms
[shadow] <default>: FPS: 867 FrameTime: 1.153 ms
[refract] <default>: FPS: 304 FrameTime: 3.289 ms
[conditionals] fragment–steps=0:vertex–steps=0: FPS: 1338 FrameTime: 0.747 ms
[conditionals] fragment–steps=5:vertex–steps=0: FPS: 1283 FrameTime: 0.779 ms
[conditionals] fragment–steps=0:vertex–steps=5: FPS: 1289 FrameTime: 0.776 ms
[function] fragment–complexity=low:fragment–steps=5: FPS: 1298 FrameTime: 0.770 ms
[function] fragment–complexity=medium:fragment–steps=5: FPS: 1212 FrameTime: 0.825 ms
[loop] fragment–loop=false:fragment–steps=5:vertex–steps=5: FPS: 1298 FrameTime: 0.770 ms
[loop] fragment–steps=5:fragment–uniform=false:vertex–steps=5: FPS: 1300 FrameTime: 0.769 ms
[loop] fragment–steps=5:fragment–uniform=true:vertex–steps=5: FPS: 1264 FrameTime: 0.791 ms
=======================================================
glmark2 Score: 1042
=======================================================
|
Образ Ubuntu использует открытый драйвер Panfrost, как и большинство систем на Arm SoC с поддерживаемым GPU Mali. Результат составил 1042 балла, что несопоставимо с glmark2-es2-wayland. Для справки: Khadas Edge2 Pro показал 4005 баллов в glmark2. Из-за различий оконных систем X11 и Wayland прямое сравнение некорректно, но можно рекомендовать Mixtile перейти на более современную систему Wayland в будущих версиях (при условии отсутствия побочных эффектов).
Затем было воспроизведено видео 1080p60 на YouTube через Chromium с плавным воспроизведением и потерей всего 6 кадров в начале.

1080p60Смена разрешения на 2160p60 (4Kp60) также впечатлила.

4K 60 кадров/сТолько при переходе на 4320p60 (8Kp60) воспроизведение стало прерывистым из-за потери кадров.

8K 60 кадров/сДалее протестировано локальное воспроизведение видео с помощью ffplay из библиотеки ffmpeg.
Файл Sintel-2010-4k.mkv (H.264, 4K 24 кадра/с) воспроизводился плавно с аппаратным декодированием и низкой загрузкой CPU.

4K H.264 аппаратное декодирование видеоВидеофайл Fifa_WorldCup2014_Uruguay-Colombia_4K-x265.mp4 (H.265, 4K 60 кадр/с) также корректно обрабатывался с использованием аппаратного декодирования видео.

4K H.265 аппаратное декодирование видеоПроцессоры Rockchip обычно обладают уникальной возможностью аппаратного декодирования 10-битного видео H.264, отсутствующей у большинства других брендов. Rockchip RK3588 также реализует эту функцию, что подтверждается работой с файлом 暗流涌动-4K.mp4 в разрешении 4K через ffplay.

4K 10-битное H.264 аппаратное декодирование видеоАналогичный результат получен для Blackmagic Pocket Cinema Camera 4K ‘Balloons’-mIAfxj7nd9k.mp4 (AV1, 4K 23.98 кадр/с).

4K AV1 аппаратное декодирование видеоБыли загружены два тестовых 8K видео с YouTube с частотой 30 и 60 кадр/с.

Неудачное 8K аппаратное декодирование видеоПредставленный скриншот может создавать впечатление работы с av1_rkmpp_decoder и низкой загрузкой CPU, однако изображение обновляется редко — примерно раз в 30 секунд…
Использование 6 TOPS NPU на Rockchip RK3588 с инструментарием RKNPU2
Благодаря наличию 6 TOPS NPU в Rockchip RK3588 проведено тестирование с инструментарием RKNPU2, аналогично подходу Арнона в его обзоре одноплатного компьютера Youyeetoo YY3568 на Rockchip RK3568 с NPU 1 TOPS .
Требуется установить зависимости, получить код и собрать демонстрацию YOLOV5:
1
2
3
4
|
sudo apt install cmake
git clone https://github.com/rockchip-linux/rknpu2
cd rknpu2/examples/rknn_yolov5_demo/
./build–linux_RK3588.sh
|
Конец вывода:
1
2
3
4
5
|
v5_demo_Linux/.//model/RK3588/yolov5s-640-640.rknn
— Installing: /home/jaufranc/rknpu2/examples/rknn_yolov5_demo/install/rknn_yolov5_demo_Linux/./rknn_yolov5_video_demo
— Installing: /home/jaufranc/rknpu2/examples/rknn_yolov5_demo/install/rknn_yolov5_demo_Linux/lib/librockchip_mpp.so
— Installing: /home/jaufranc/rknpu2/examples/rknn_yolov5_demo/install/rknn_yolov5_demo_Linux/lib/libmk_api.so
/home/jaufranc/rknpu2/examples/rknn_yolov5_demo
|
Запуск демонстрации:
1
2
|
pushd /home/jaufranc/rknpu2/examples/rknn_yolov5_demo/install/rknn_yolov5_demo_Linux/
./rknn_yolov5_demo ./model/RK3588/yolov5s–640–640.rknn traffic.jpg
|
Вывод:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
post process config: box_conf_threshold = 0.25, nms_threshold = 0.45
Loading mode...
sdk version: 1.5.2 (c6b7b351a@2023–08–23T15:28:22) driver version: 0.9.2
model input num: 1, output num: 3
index=0, name=images, n_dims=4, dims=[1, 640, 640, 3], n_elems=1228800, size=1228800, w_stride = 640, size_with_stride=1228800, fmt=NHWC, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003922
index=0, name=output, n_dims=4, dims=[1, 255, 80, 80], n_elems=1632000, size=1632000, w_stride = 0, size_with_stride=1638400, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003860
index=1, name=283, n_dims=4, dims=[1, 255, 40, 40], n_elems=408000, size=408000, w_stride = 0, size_with_stride=491520, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003922
index=2, name=285, n_dims=4, dims=[1, 255, 20, 20], n_elems=102000, size=102000, w_stride = 0, size_with_stride=163840, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003915
model is NHWC input fmt
model input height=640, width=640, channel=3
Read traffic.jpg ...
img width = 1200, img height = 810
resize image with letterbox
once run use 20.714000 ms
loadLabelName ./model/coco_80_labels_list.txt
person @ (273 491 416 791) 0.895037
person @ (434 508 581 783) 0.883741
car @ (579 369 804 562) 0.881610
car @ (429 363 605 528) 0.880092
car @ (161 290 369 487) 0.850051
car @ (888 258 1063 374) 0.828512
person @ (594 506 691 781) 0.822708
person @ (659 481 789 778) 0.785600
person @ (88 459 185 768) 0.759585
car @ (431 241 592 399) 0.754103
car @ (772 208 888 322) 0.738178
car @ (0 541 142 802) 0.733012
car @ (466 133 594 241) 0.681969
car @ (103 258 258 395) 0.654690
car @ (718 189 819 283) 0.622837
car @ (223 103 301 161) 0.618237
car @ (521 296 697 378) 0.610271
backpack @ (590 549 639 641) 0.584575
car @ (412 166 478 228) 0.536548
car @ (361 155 436 219) 0.523183
car @ (682 148 823 249) 0.432711
car @ (862 219 1003 356) 0.430942
car @ (131 232 268 298) 0.420546
backpack @ (322 553 358 626) 0.419835
handbag @ (129 513 183 611) 0.393449
car @ (631 144 725 236) 0.382930
stop sign @ (20 168 56 258) 0.382099
car @ (84 151 189 206) 0.335825
fire hydrant @ (13 442 56 541) 0.322854
car @ (331 89 423 144) 0.249350
car @ (288 95 395 151) 0.221453
save detect result to ./out.jpg
loop count = 10 , average run 20.387900 ms
|
Выполнение заняло около 20 мс. Результаты сохранены в файле out.jpg с выделением обнаруженных объектов рамками. Не были распознаны один человек в необычной одежде на переднем плане и несколько автомобилей на заднем, но в целом результат удовлетворителен.
Производительность NPU оценена с помощью примера rknn_benchmark, запускающего модель YOLOv5 10 раз:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
pushd /home/jaufranc/rknpu2/examples/rknn_benchmark/install/rknn_benchmark_Linux/
chmod +x ./build–linux_RK3588.sh
./build–linux_RK3588.sh
./rknn_benchmark /home/jaufranc/rknpu2/examples/rknn_yolov5_demo/model/RK3588/yolov5s–640–640.rknn traffic.jpg 10
rknn_api/rknnrt version: 1.5.2 (c6b7b351a@2023–08–23T15:28:22), driver version: 0.9.2
total weight size: 7312128, total internal size: 7782400
total dma used size: 24784896
model input num: 1, output num: 3
input tensors:
index=0, name=images, n_dims=4, dims=[1, 640, 640, 3], n_elems=1228800, size=1228800, w_stride = 640, size_with_stride=1228800, fmt=NHWC, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003922
output tensors:
index=0, name=output, n_dims=4, dims=[1, 255, 80, 80], n_elems=1632000, size=1632000, w_stride = 0, size_with_stride=1638400, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003860
index=1, name=283, n_dims=4, dims=[1, 255, 40, 40], n_elems=408000, size=408000, w_stride = 0, size_with_stride=491520, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003922
index=2, name=285, n_dims=4, dims=[1, 255, 20, 20], n_elems=102000, size=102000, w_stride = 0, size_with_stride=163840, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003915
custom string:
Warmup ...
0: Elapse Time = 16.08ms, FPS = 62.20
1: Elapse Time = 15.97ms, FPS = 62.63
2: Elapse Time = 15.96ms, FPS = 62.64
3: Elapse Time = 15.98ms, FPS = 62.58
4: Elapse Time = 15.98ms, FPS = 62.60
Begin perf ...
0: Elapse Time = 16.11ms, FPS = 62.06
1: Elapse Time = 16.27ms, FPS = 61.44
2: Elapse Time = 16.21ms, FPS = 61.68
3: Elapse Time = 16.14ms, FPS = 61.94
4: Elapse Time = 16.13ms, FPS = 61.99
5: Elapse Time = 16.27ms, FPS = 61.48
6: Elapse Time = 16.26ms, FPS = 61.49
7: Elapse Time = 16.28ms, FPS = 61.43
8: Elapse Time = 16.26ms, FPS = 61.51
9: Elapse Time = 16.26ms, FPS = 61.52
Avg Time 16.22ms, Avg FPS = 61.653
Save output to rt_output0.npy
Save output to rt_output1.npy
Save output to rt_output2.npy
—- Top5 —-
0.984223 – 34116
0.984223 – 34659
0.984223 – 34660
0.984223 – 34734
0.984223 – 34735
—- Top5 —-
1.000000 – 9251
1.000000 – 9291
1.000000 – 281251
1.000000 – 281252
1.000000 – 281256
—- Top5 —-
0.998327 – 2312
0.998327 – 2325
0.998327 – 2326
0.998327 – 2328
0.998327 – 36307
|
Модуль Mixtile Core 3588E обеспечил детектирование объектов со средней скоростью 61.65 кадр/с при обработке сложного изображения, что достаточно для большинства приложений реального времени. Для сравнения: Youyeetoo YY3568 показал 21.5 кадр/с в аналогичном тесте с другим изображением. Такой результат подходит для некоторых задач, но может вызывать чрезмерную задержку в робототехнических приложениях.
Тестирование модуля Mixtile Core 3588E с платой разработки NVIDIA Jetson Nano
Mixtile заявляет о совместимости модуля Core 3588E с Jetson TX2 NX. Учитывая совместимость последнего с Jetson Nano, Xavier NX и Orin Nano, была предпринята попытка использовать старую плату разработки NVIDIA Jetson Nano (A02) …
После извлечения модулей Mixtile Core 3588E и Jetson Nano с соответствующих плат-носителей, модуль Core 3588E успешно установлен на плату-носитель Jetson Nano. При подключении питания от 12V power bank было учтено, что разработка NVIDIA требует 5V DC вместо 12V для Leetop A206, что позволило избежать проблем благодаря использованию блока питания 5V/3A.
Индикатор питания активировался, но изображение на HDMI-дисплее отсутствовало, а Ethernet не функционировал. Было подключено последовательное консольное соединение:
Загрузка Ubuntu при подключении Core 3588E к плате-носителю Jetson подтверждена. Устройство Ethernet определяется, но соединение не устанавливается, несмотря на подключенный кабель. Дополнительное изучение показало несовместимость Jetson TX2 NX с платой разработки Jetson Nano A02, тогда как более новая плата разработки Jetson Nano B01 работает корректно. Поскольку Mixtile Core 3588E позиционируется как замена Jetson TX2 NX, перспективы работы со старой платой-носителем невелики. Ввиду отсутствия других плат эксперимент прекращен.
Заключение
Модуль Mixtile Core 3588E демонстрирует высокую производительность с предустановленным образом Ubuntu 22.04 и платой-носителем Leetop A206. Результаты соответствуют ожиданиям от платформы Rockchip RK3588: успешно протестированы 3D-ускорение (с драйвером Panfrost), аппаратное декодирование 4Kp60 для различных кодеков, интерфейсы I2C/UART через GPIO, два слота M.2 с NVMe SSD и модулем Wi-Fi 6. NPU 6 TOPS обеспечил 60 кадр/с при обработке модели YOLOv5, что позволяет реализовать обработку изображений в реальном времени.
Требуется дальнейшая доработка образа Ubuntu 22.04: воспроизведение 8K AV1 видео на YouTube и через ffplay с локальными файлами происходит нестабильно, тогда как 4Kp60 работает корректно. Образ использует графическую систему X11, и переход на Wayland может улучшить поддержку и производительность. Необходимость ручного редактирования конфигурации для активации I2C/UART должна быть устранена включением этих функций по умолчанию.
Mixtile официально не рекомендует и не продает какие-либо конкретные платы расширения Jetson TX2 NX для Core 3588E, но поскольку их документация основана на плате расширения Leetop A206, может иметь смысл приобрести эту модель в качестве «рабочего демонстрационного образца», в дополнение к использованию с вашими собственными или другими платами расширения, которые теоретически должны работать…
Благодарим Mixtile за предоставление модуля Core 3588E с 16 ГБ оперативной памяти и быстрой флеш-памятью eMMC объемом 128 ГБ, а также платы Leetop A205 для обзора. Компания реализует модуль Core 3588E от $109 до $278 в зависимости от конфигурации памяти и накопителя, наличия радиатора, позволяя клиентам выбирать предпочитаемую плату расширения из других источников или разрабатывать собственную. Как упоминалось ранее, Leetop A206 является вариантом, но отсутствует в наличии в большинстве мест, включая Seeed Studio, где он указан за $199. , и его можно было найти только в магазине на Aliexpress, продающем его почти за $400 .
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.