28.05.2017 Views

APC_Australia_Issue_442_June_2017

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

a modern AMD card meant that we<br />

could benefit from the new AMDGPU<br />

driver model, which allows you to<br />

have entirely open-source video<br />

drivers. To ensure this card got the<br />

support it deserved, we upgraded<br />

Mesa to the version 17 (or 13.1 in the<br />

old versioning scheme) stack from the<br />

xorg-edgers PPA.<br />

A great deal of early Linux Ryzen<br />

1800X benchmarks were released on<br />

Michael Larabel’s Phoronix site, based<br />

on their test suite, and for the most<br />

part, these showed an eminently<br />

capable processor that certainly gave<br />

Intel a run for its money. We started<br />

by rerunning a selection of these, and<br />

our results more or less tallied with<br />

Michael’s. Check out the table to see<br />

the exact values, and check out<br />

openbenchmarking.com for details<br />

of what the tests involve.<br />

As highlighted by Phoronix, the<br />

general picture is of a chip that does<br />

well at workloads that scale<br />

efficiently over multiple cores and<br />

threads, but struggles at certain<br />

single-core workloads. The most<br />

glaring disappointments were the<br />

Himeno Poisson pressure solver<br />

(which was less than half as<br />

performant as on the 7700K), and<br />

FFmpeg which took longer to decode<br />

h.264 video than the i5 4670 chip,<br />

which was Intel’s sweet spot two<br />

generations ago.<br />

Chess isn’t really taken seriously<br />

as a benchmark, but the Stockfish<br />

engine actually provides a reasonable<br />

workout for a CPU. It analyses game<br />

trees, which branch plentifully (there<br />

are often lots of moves to choose from)<br />

and evolve in a non-uniform manner.<br />

So there’s plenty of opportunity for<br />

parallelisation, but a given position<br />

may lead to checkmate quickly, or may<br />

open many more doors.<br />

Essentially, there are lots of<br />

differently shaped and sized<br />

workloads, and getting through them<br />

all will be a challenge for any CPU.<br />

As it turns out, the ancient game of<br />

chess is not some weird Achilles’ heel<br />

of the Ryzen architecture — the chip<br />

This is what 16 threads all<br />

buzzing away at the same time<br />

to solve complicated chess<br />

problems look like.<br />

Freedom over the horizon?<br />

The Ryzen release gave tech pundits<br />

a lot to, uh... process, in terms of<br />

decoding the marketing speak,<br />

running independent benchmarks<br />

to compare with those promulgated<br />

by AMD, and — most importantly —<br />

deciding whether they should invest<br />

in the new chippery. But for opensource<br />

denizens, there was another<br />

surprise: AMD representatives on<br />

Reddit acknowledged the possibility<br />

that they might eventually release<br />

the necessary bits that would enable<br />

free firmware, such as Libreboot, to<br />

run on Ryzen-powered machines. The<br />

Free Software Foundation is especially<br />

concerned by AMD’s Platform Security<br />

performed marginally worse than<br />

the i5 4670 in Phoronix’s<br />

benchmarks and ours corroborated<br />

this. However, the problem lies in<br />

the benchmark itself, which doesn’t<br />

feed Stockfish suitable parameters<br />

for a many-cored processor, and<br />

ought to measure the rate of the test<br />

(nodes/s) rather than the overall<br />

time taken, since the number of<br />

nodes (positions) changes with each<br />

run. Some details are available in<br />

this post http://bit.ly/2o5aFK4.<br />

Ultimately, the benchmark is just<br />

measuring single-core performance.<br />

As it turns out, Ryzen is a fine<br />

platform for playing chess. We saw it<br />

peak at 8.8Mnodes/s using a hash<br />

size of 512, 12 threads and a depth<br />

of 20, which is pretty meaningless<br />

without context (other Stockfish<br />

benchmarks use different settings),<br />

so we tested it on the FX8350, the<br />

one-time top dog of the previous<br />

Piledriver architecture. It peaked at<br />

5.5MNnodes/s. It is interesting to<br />

see how it scales with thread count.<br />

As you can see, throwing more cores<br />

at a problem is not always the best<br />

way to solve it quicker.<br />

Processor (PSP), as well as the rival Intel<br />

Management Engine. This code runs<br />

on independent ARM processors that<br />

initialise the x86 cores and potentially<br />

has transparent access to anything that<br />

system is doing henceforth. But there<br />

are other components and keys that<br />

would need to be released before a<br />

free boot process can be had, (see<br />

Libreboot’s call to AMD at https://<br />

libreboot.org/amd-libre), and if there<br />

is any progress here, it will likely be<br />

slow and convoluted. Up until 2014,<br />

AMD released the source for their<br />

AGESA firmware, so perhaps we can<br />

hope for a return to at least this kind of<br />

partial openness.<br />

Ryzen is a new architecture and it<br />

would be foolhardy to just assume<br />

that all existing binaries out there<br />

will understand the platform and be<br />

able to make best use of it. It’s been<br />

noted the ALC1220 audio codec found<br />

on a number of AM4 boards will not be<br />

supported until Kernel 4.11. That said,<br />

the required code will be easily<br />

backported, so users of fixed release<br />

distros won’t have to wait too long<br />

after the 4.11 release in order to have<br />

functioning audio. Likewise, at time<br />

of writing, the chip’s thermal sensors<br />

weren’t yet available in lm_sensors,<br />

so we don’t have evidence of how hot<br />

under the collar the chip gets.<br />

Also there are some other platform<br />

components that lspci can’t identify,<br />

describing them only as<br />

“Non-Essential Instrumentation”.<br />

This we found amusing.<br />

In the weeks following Ryzen’s<br />

release, reports began to circulate<br />

that Windows 10’s scheduler was not<br />

being kind to Ryzen, and that<br />

disabling Symmetric Multi-Threading<br />

(SMT) features actually improved<br />

performance. These rumours have<br />

since been firmly debunked by AMD,<br />

but do provide this tenuous segue into<br />

a kernel patch signed off in early<br />

February (http://bit.ly/2mRbh53).<br />

Here, we see an AMD employee<br />

contributing kernel code to fix SMT<br />

scheduling topology. They probably<br />

do this on Windows too, but the<br />

process has to take place behind<br />

closed doors — with Linux, it all<br />

happens in the open. Ryzen-specific<br />

optimisations first appeared in GCC<br />

6.1, so those who aren’t afraid of<br />

compiling their own programs can<br />

try the -march=zn1ver switch<br />

for extra performance.<br />

www.apcmag.com 83

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!