Server requirements issue

I am not a developer. I’m just a regular user like you.

I am conceeding defeat ^:)^ … I will fork out yet another amount of $$ for a power-hungry X86 machine, for a new server, because of this ridiculous policy on ARM devices … especially as my 8-core Odroid will do the job just fine.

My latest “blustering” is noted on this thread.

Since you guys have been wanting a cross-platform benchmark that you can use, how about nbench.

I compiled version nbench-byte-2.2.3-2 for my Odroid-XU3 “without” any special compile optimizations and got a score of:

MEMORY INDEX        : 10.707
INTEGER INDEX       : 13.923
FLOATING-POINT INDEX: 18.229

Same compiler CFLAGS I used to compile PMS (optimized for Samsung):

MEMORY INDEX        : 11.537
INTEGER INDEX       : 13.970
FLOATING-POINT INDEX: 18.946

According to the table here: http://www.tux.org/~mayer/linux/results2.html

That puts it about the similar performance of AMD Athlon 64 Processor 2800+ 1809MHz and far better than my 1.6G quad-core Atom that probably would pass on your server performance test.
(When you consider that the Atom is 64 bits and the ARM is 32 bit … well you do the math …)

My Quad-core Atom results where:

MEMORY INDEX        : 14.157
INTEGER INDEX       : 9.629
FLOATING-POINT INDEX: 13.215

Apologize for the blatant cross-post, but it was relevant to both threads.

**** Ends my Case for fairness & equality ****

EDIT: Note: nbench does not share across cores, so this test is on ONE core only

The Athlon 64 2800+ has a passmark score of 444, http://www.cpubenchmark.net/cpu.php?cpu=AMD+Athlon+64+2800%2B&id=65, so if the Oxynos 5422 in your Odroid is comparable, that is not going to help in your argument for getting the transcoder turned on.

You mentioned you managed to get the server to transcode some videos. Can you provide the server log when the transcoder is working, including the start of the transcode process so I can see all the parameters involved?

Well you have to realize that benchmark was on only ONE of it’s cores …
(You can multiply that by at least 6…8 … if you want one with all cores running)

Regarding the logs, where are they again, I always have trouble locating them … I will do as you say
when I get home tonight …

PS: The Atom I refer to above has a passmark of 905 and it beats that … again on single core.
(The XU3 has 8, the Atom 4)

The Athlon 2800+ only has 1 core. I’m not familiar with nbench, but if your 8 core Oxynos’s score is that of a single core of the 2800+, that’s not a good result.

You are not getting it. Only ONE of the cores of my 8-cores is running the benchmark, the others are idle … how much clearer can I say it.

(nbench runs on one core only !!)

I quote from the wiki:
NBench is single-threaded. Currently, each benchmark test uses only a single execution thread.

So on your number of passmark 444, then the Odroid would be the equivalent of 444x8 = 3552 , is that not a pass?

@MovieFan.Plex

I have uploaded the debug output for two sample HD movies which were streamed to the web client on my core-duo laptop over WiFi.

The 1st segment (approx 1min) is a 720P segment, the 2nd is the worse media I could find, a DivXPlus 19Mb encoded 1080P. As you see it has a couple of transcode errors early on, then it settles down … there is no visable effect …

Log is here: https://drive.google.com/file/d/0B8M0Ic6LRtOzT2REWkZSN3hTQjQ/view?usp=sharing

Thanks for the logs. Unfortunately neither files are being transcoded. They are both being direct streamed so all PMS is doing is repackaging the file. This will use very little CPU power so this was not a very good indication of it’s transcoding power. Oh, and that second video, even though it says DivX, it is actually an H264 video stream. I think DivXPlus is the name of the encoder. If you can try again but force a transcode by either setting the playback quality to a lower value than the original file or by forcing burning in of a subtitle.

The cores in the Exynos are not identical so the overall score would not be 444x8. There’s also diminishing returns as you go up in cores so I would estimate the total passmark score to be between 2000 and 2500. Still, not bad for an ARM device and you possible could get transcoding out of it. If you can provide me new logs showing actual transcoding and it works well, I can pass the results along to the devs.

Update: The normal XU3/4 (2Ghz/1.5Ghz) results are below: My results above are for the freq limited XU3-light (1.8Ghz/1.3Ghz)…

MEMORY INDEX        : 15.556                                                   
INTEGER INDEX       : 14.962                                                   
FLOATING-POINT INDEX: 20.808 

Which puts each core equivelent of an Intel Core2 Duo 1.8Ghz core. PassMark = 649 for one thread.
http://www.cpubenchmark.net/cpu.php?cpu=Intel+Core2+Duo+T5670+%40+1.80GHz&id=988

Which means the XU3/4 would have an approx Passmark of 649*6=3894
(assumes that the A7 cores are 50% of the performance of the A15, which they are not…)

You could further reduce that score for “diminishing returns” to 3000, and that is still a respectable score.

Here is my log file from a 6Mbps DVD being transcoded down to ~1Mbps.
https://drive.google.com/file/d/0B8M0Ic6LRtOzWjlLZ1RqcGFiOW8/view?usp=sharing

Your log shows transcoding a 7.5 Mbps mpeg2 video down to 1.5 Mbps H264. The speeds shown are just around 1.0 +/-. So this appears to be the maximum capability of the device. I don’t know the criteria used to allow transcoding, but I will pass your results along. Thanks for testing.

All I’m asking for is a “transcode normally off for ARM” setting somewhere in advanced settings that I, or anyone else, can turn on to see if the ARM based server is powerful enough, is that so much to ask? …

There will be a number of powerful ARM devices continuously coming on the market(including 64bit), so this will eventually have to be addressed … preferably sooner … :wink:

@ebike said:

There will be a number of powerful ARM devices continuously coming on the market(including 64bit), so this will eventually have to be addressed … preferably sooner … :wink:

Not really. “Powerful” here is relative. ARM CPUs are meant more for lesser-demanding mobile and embedded applications. Plex Media Server is not in that category and was never meant to run on such hardware. As much of an ARM fan as you might be.

ARM works great in my cell phone. But for my server I use something else. The right tool for the task. I’d prefer the Plex team focus their limited development resources on more-pressing, in-scope issues.

@sremick said:

Not really. “Powerful” here is relative. ARM CPUs are meant more for lesser-demanding mobile and embedded applications. Plex Media Server is not in that category and was never meant to run on such hardware. As much of an ARM fan as you might be.

“Powerful” to me means performance/per/watt !

You might want to catch up with the times, your comment above USED to be the situation, but even Intel and AMD are adding ARM devices to their range for Desktop and Server applications …

Companies can see the benefit of having Server Farms drawing hundreds of watts, instead of kilo/megawatts …
I for one prefer to have my 24/7 server drawing 4W instead of >200W … IF it was doing the same job, who wouldn’t.

… (but then, I am talking to a person who is warming up the planet with their 400W Xeon heater :stuck_out_tongue: )

… PS: I am not an ARM fan, I would actually prefer MIPS as an architecture :slight_smile:

I’ve passed your results along. I don’t know what will come of it.

@MovieFan.Plex said:
I’ve passed your results along. I don’t know what will come of it.

Many Thanks, that is appreciated …

@ebike said:

… (but then, I am talking to a person who is warming up the planet with their 400W Xeon heater :stuck_out_tongue: )

More like 40W idle, maxing out at about 105W when being fully stressed (rare). And our house is 100%+ solar-powered.

Plex Devs,

Since the only armv7h binary you guys supply obviously would give sub-optimal performance for the odroid, as you won’t have compiled with neon or hard float flags, or support for the a15/a7. Then It would be great if you could do a build with the following flags, so I can repeat the benchmarks and transcoding tests …

CFLAGS="-mcpu=cortex-a15.cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4 -O2 -pipe -ffast-math -ftree-vectorize -mvectorize-with-neon-quad -fstack-protector --param=ssp-buffer-size=4"

Cheers,

EDIT: Actually, i see there is now an “alpine-armv7h” that seems to have at least neon support, maybe I will try that as well.

Nice to see client and server support for Plex on Nvidia Shield … ARM is alive! (Nvidia ARM core)
(Server handles at least 2 1080p transcodes while still running the client, I know I have tested … ) :stuck_out_tongue:

PS: Draws 4W “while” transcoding two videos …