AMD Ryzen Embedded SBC Review with Ubuntu 20.04

Last June, we reviewed DFI GHF51 Ryzen Embedded R1606G SBC with Windows 10 Enterprise LTSC. We had to send back the board to Taiwan, as the company wanted to double-check some of the issues we reported, and we got the board to review it with Ubuntu 20.04.

So I downloaded Ubuntu 20.04.1 ISO flashed it to a USB flash drive, and could install it on the eMMC flash drive without issue. I selected to keep Windows 10, so I have a dual-boot system on a 32GB eMMC flash. Yes, I do like a challenge! 🙂

DFI GHF51 Ubuntu 20.04 System Info

We can check some of the information from the system in the terminal:


So I have a 7.9GB partition to play with Ubuntu 20.04.1, but I could do all tests without issues, although I had to remove Phoronix benchmark program and data after completing the benchmark.

Features Testing

There may also be some issues with drivers, so I tested the main hardware features from the board:

  • HDMI 1 – Video OK, Audio OK
  • HDMI 2 – Video OK, Audio OK
  • USB-C port (data only) – Good with various USB-C hubs such as Dodocool DC30S and MINIX NEO Storage Plus
  • Gigabit Ethernet – OK (iperf full-duplex: 937Mbps/833Mbps)

Everything works. I did not test dual-display setup, since I only have on Micro HDMI cable to play with.

AMD Ryzen Embedded R1606F Ubuntu 20.04 Benchmarks

Phoronix Benchmarks

To find out about the system performs in Ubuntu 20.04, I installed Phoronix test suite trying to run the same benchmarks as in Linux mini PC reviews from Linuxium, but some would not install due to limited storage. Here are the results.


If you want to compare those results to your own, you’ll find those on OpenBenchMarking website.

Let’s compare some of the results against MINIX NEO J50C-4 mini PC equipped with a 10W Intel Pentium J5005 quad-core Gemini Lake processor. All results are of the “higher is better” type.

DeviceDFI DHF51
MINIX NEO J50C-4 with SSD
Processor
AMD Ryzen Embedded R1606G
dual-core/quad-thread 2.6 / 3.5 GHz
12-25W TDP
Intel Pentium J5005
quad-core 1.5 / 2.3 GHz
10W TDP
CLOMP 3.3
OpenMP benchmark
2.94
2.36
TSCP 1.81
AI Chess Performance
683,862677,631
7-Zip Compression7,2727,598
PHPBench342,215287,503

The dual-core AMD Embedded system is always faster than the Gemini Lake mini PC, except for 7-Zip compression where the faster SSD may have played a role.

Storage Performance

I’ll use iozone3 to test performance, starting with the eMMC flash:


At around 240MB/s read speed and 135MB/s write speed, the eMMC flash is fairly slower than in our Windows 10 review, where it achieved respectively 320MB/s and 160MB/s in CrystalDiskMark.

If you’ve read the Windows 10 review, you’ll know I had a USB Hard drive that did not work well at all with stalled transfers. That’s the main reason why it was sent back to Taiwan. Initially, we thought this could be because of the USB-C hubs used, but after testing the drive again in Ubuntu 20.04 with iozone I had the same problem.

Click to Enlarge

So it’s not a driver issue, somewhat there’s some hardware issue causing this particular hard drive to misbehave with DFI GHF51 SBC. [Update: a workaround is to disable UAS for the drive. See comments to find out how it’s done]

The 480GB SSD inside MINIX NEO Storage Plus USB-C adapter was properly detected:


So I ran iozone to check the performance with another USB storage device:


That’s about 379MB/s for sequential read speed, and 240+MB/s sequential read speed, so no big problem here, although the write speed is quite slower than the 336+MB/s I got in Windows 10.  Maybe the exFAT file system cause the slower transfer rate.

3D Graphics Benchmark

Let’s see how the AMD Radeon Vega 3 GPU inside Ryzen Embedded R1606G SoC perform against Intel UHD 605 graphics by running Unigine Heaven Benchmark 4.0 and compare the results to MINIX NEO J50C-4 score.

MINIX NEO J50C-4 (left) vs DFI GHF51 (right)

Both platforms have pretty similar graphics performance, but the Radeon Vega 3 still gets the crown by being about 14% faster. However, I did notice some artifacts in the AMD board, especially in some scenes were parts were black and mauve.

The scene above looks really horrible, and it was not that bad in most scenes. I tried to play with the settings of the benchmark, and the trick to make those disappear was to enable anti-aliasing.

Click to Enlarge

But this introduced some serious blur, and other types of artifacts (see the village in the background).

So just to make sure this did not happen on all 3D graphics applications I started a WebGL Aquarium sample in Firefox, and everything looks good.

Click to Enlarge

Video Playback in YouTube and Kodi 18.8

Time to test video playback in Firefox and Chrome using YouTube. Both browsers had similar performances.

The system can easily handle 1080p YouTube videos with no dropped frames.

Click to Enlarge

The CPU usage is around 45% on all four cores, and the CPU temperature is around 90°C. Note the board is passively cooled with a large heatsink, but if you really had to do lots of media playback (in a web browser) some active cooling may be desirable. [Update from DFI:

When applying our motherboard in industrial applications, the board will normally be integrated into a chassis, and that also helps cool down the processor. Therefore, in practical applications, heat dissipation will not be a problem, in which active cooling won’t be required.

]

Click to Enlarge

Let’s switch to 1440p. It can still play smoothly (most of the time), but we start to reach limits with CPU temperature getting to 94°C and CPU usage around 67%. Bear in mind, I’m using 1080p60 video output here, as at higher output resolutions the system would struggle.

Click to Enlarge

If we switch to 4K (2160p) resolution, dropped frames really make for a poor viewing experience. CPU temperature went up to 100°C with CPU usage at 94+%  on all cores.

It should be noted that web browsers provide a poorly efficient way to play video, as this week-end, Ian noticed – to his surprise – that more powerful AMD Ryzen 5 3350H based Beelink GT-R mini PC also struggled with some 4K videos in YouTube due to software video decoding.

4K Kodi Playback in Ubuntu

Whenever possible, you should always use a program that can make use of the video hardware decoding capabilities of the processor. Kodi 18.8 does that pretty well, as 4K 8-bit/10-bit H.265, 4K 8-bit H.264, and 4K VP9 videos all played fairly smoothly with hardware video decoding, and the screenshot below shows a 4Kp30 H.265 video played by using only around 15% CPU usage.

But somehow output seemed to be stuck to 2160p24 even for video using other framerates, and automatic framerate switching enabled in the settings. Contrary to Windows, Dolby Digital 5.1 HDMI audio passthrough did not work, and could not be enabled/disabled in the settings. I’m using the default PulseAudio mode, but switching to Alsa mode may yield better results.

I looped the 4K video for about one hour in a room with 30°C ambient temperature, and the CPU temperature was around 90°C.

Conclusion

DFI GHF51 Ryzen Embedded SBC runs about as well in Ubuntu 20.04 as it does in Windows 10. Everything basically works and performs well. Our testing shows AMD Ryzen Embedded R1606G processor to offer slightly better performance than the top of the line Intel Gemini Lake Pentium J5005 processor.

I also had one of the same issues as in Windows: one Seagate USB hard drive would not work reliability at all with transfer stalled. That’s probably just a hardware incompatibility, as the drive works with other platforms, and other USB storage devices achieve normal performance when connected to DFI SBC. I also noticed some artifacts with one 3D graphics benchmark, but those did not show up in other 3D accelerated programs.

DFI GHF51 is an impressive piece of hardware as it packs lots of CPU and GPU power in a form factor similar to Raspberry Pi 4 SBC. I’d like to thank DFI for sending a review sample. If you plan to buy in large quantities to integrate the board into your product, you could contact the company. To get a single sample, the kit can be purchased for $378 on DFI-ITOX online store. They also sell GHF51 board with AMD Ryzen Embedded R1505G processor for $333 on the same page.

Support CNX Software - Donate via PayPal, become a Patron on Patreon, or buy review samples
Subscribe
Notify of
guest
23 Comments
oldest
newest most voted
f.s.e
f.s.e
2 months ago

Thanks, I miss the IDLE power numbers …

tkaiser
tkaiser
2 months ago

> The dual-core AMD Embedded system is always faster than the Gemini Lake mini PC, except for 7-Zip compression where the faster SSD may have played a role. Close to impossible for storage speed to influence anything with 7-zip’s benchmark. More likely a matter of memory speed. The AMD tested here has one memory module vs. 2 DIMMs in the Gemini Lake thingy. Since no tinymembench numbers have been done it’s only speculation how single vs. dual channel memory influences numbers. This is also something to keep in mind since other designs relying on the same AMD CPU with 2… Read more »

Fossxplorer
Fossxplorer
2 months ago

If time allows, i will test 7-zip compression on an HP t640 i am waiting for with dual channel memory. It has r1505g that is a bit slower than this, but should quickly reveal whether it’s memory b/w issue or not..

Anthony Brooks
2 months ago

I like Linux. I just think it is time to end the multiple-version ‘mine is better than yours.’ Probably the biggest reason Linux never gains acceptance.

Horst
Horst
2 months ago

Is the TDP/maximum power draw configurable in the BIOS? If the CPU and GPU benchmarks are for a 12 W Ryzen compared to the 10 W J5005, I do not find the slightly faster Ryzen worth the price. The Intel NUC Kit NUC7PJYH with J5005 can be had for 150 EUR where I live. And that includes a case, PSU, and active cooling. Active cooling seems very necessary if it hits 100 °C just watching a video. Yes, the GHF51 is smaller at 84 mm x 55 mm x 17.4 mm versus the NUC (in case) at 115 mm x 111 mm x… Read more »

Jean-Luc Aufranc (CNXSoft)

Answer from DFI

Our BIOS is currently offering 12W(TDP), and it is not manually adjustable. We are recently planning on testing the thermal solution for bios with non-restricted TDP. Before that, the TDP configuration will remain 12W.

Willy
Willy
2 months ago

Thanks Jean-Luc. Thus better let them finish their R&D before buying that board.

tkaiser
tkaiser
2 months ago

> compared to the 10 W J5005

BTW: the sbc-bench results Jean-Luc revealed above show that the J5005 Minix Mini PC has a throttling threshold of just 60°C configured.

numero53
numero53
2 months ago

I had similar USB transfer speed problems with many usb-sata adapters. It turned out that it was caused by some incompatibility between the SCSI (UAS) driver and the adapters. I solved those problems in linux forcing the “classic” usb-storage driver (Read more https://www.raspberrypi.org/forums/viewtopic.php?t=245931)
However I am still looking for a solution in Windows…

tkaiser
tkaiser
2 months ago

Maybe some host controller quirks…

At least it’s a good idea to UAS blacklist everything Seagate and WD by default which is the reason I added exactly that to Armbian few years ago 🙂

@lex
@lex
2 months ago

Can you run 7z b? Just to compare to my cheap J1900, BTW if you would like to check CPU Freq / Temp for each core this modified htop might work if you build from source for the UBUNTU 20.04 LTS. To build for 20.04 you need to change the Build-Depends in the file debian/control, from Build-Depends: debhelper-compat (= 11) to Build-Depends: debhelper-compat (= 12) and build it. You may need to update the handlers if hwmon path differs and usually is. I does not take much space to build and if you don’t want to install it you can… Read more »

Jean-Luc Aufranc (CNXSoft)

Results for 7z b (which are the same as sbc-bench.sh results above): Shell 7z b 7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs AMD Ryzen Embedded R1606G with Radeon Vega Gfx  (810F81),ASM,AES-NI) AMD Ryzen Embedded R1606G with Radeon Vega Gfx  (810F81) CPU Freq: 64000000 - - - - - - 1024000000 - RAM size:    3387 MB,  # CPU hardware threads:   4 RAM usage:    882 MB,  # Benchmark threads:      4                        Compressing  |                  Decompressing Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating          KiB/s     %   MIPS   MIPS  |      KiB/s     %  … Read more »

Jean-Luc Aufranc (CNXSoft)

I’ve built the program but the temperature does not show the temperature at all. just like in sbc-bench.

@lex
@lex
2 months ago

I think you should have something like this:
cat /sys/class/hwmon/hwmon*/name 
acpitz
coretemp
soc_dts0
soc_dts1

and you wold find in the coretemp the readings.
Seems not set in this kernel.

@lex
@lex
2 months ago

Explore the content of k10temp but it does not look good, unfortunately.

type: cat /sys/class/hwmon/hwmon*/temp*_label
CPU Temperature
MB Temperature
Core 0
Core 1

I think you should have temp2_input  and temp3_input  or something there, if not the only way is lm-sensors i think.

Jean-Luc Aufranc (CNXSoft)

That’s what I have

and

@lex
@lex
2 months ago

https://www.kernel.org/doc/html/latest/hwmon/k10temp.html Shell Tctl is the processor temperature control value, used by the platform to control cooling systems. On some AMD CPUs, there is a difference between the die temperature (Tdie) and the reported temperature (Tctl). Tdie is the real measured temperature, and Tctl is used for fan control. While Tctl is always available as temp1_input, the driver exports Tdie temperature as temp2_input for those CPUs which support it. 1234 Tctl is the processor temperature control value, used by the platform tocontrol cooling systems. On some AMD CPUs, there is a difference between the die temperature (Tdie) and the reported temperature (Tctl).… Read more »

Advertisements