CPU Transcoding Benchmarks

Howdy y’all-

NicoV asked me to start a topic here on the forum about CPU transcoding in Livepool that originally came up on Discord. Since I have a few transcoders successfully running in the pool running CPU clients I ran the Livepeer benchmark on a couple of them to see how real world performance compared to the benchmark results. Below is summary of the initial results.

i9 9900K 8 Core @ 3.6GHz
1 Session

  • Real-Time Duration Ratio * | 0.5223
    2 Sessions
  • Real-Time Duration Ratio * | 0.5761
    3 Sessions
  • Real-Time Duration Ratio * | 0.6324

Snippet from a Livepool log transcoding a single concurrent stream
12:48.093280 14620 ot_rpc.go:183] Transcoding done for taskId=158054 url=https://143.110.211.203:8935/stream/5c6d14b8/10690.tempfile dur=1.0139934s err=
I0725 15:12:48.172289 14620 ot_rpc.go:237] Transcoding done results sent for taskId=158054 url=https://143.110.211.203:8935/stream/5c6d14b8/10690.tempfile dur=79.0091ms err=<nil`

i7 1165G7 4 Core @ 2.8GHz (Mobile)
1 Session

  • Real-Time Duration Ratio * | 0.7332

I0725 15:19:06.186837 19744 ot_rpc.go:183] Transcoding done for taskId=159371 url=https://143.110.211.203:8935/stream/0d94cf07/2407.tempfile dur=1.4070058s err=
I0725 15:19:06.266061 19744 ot_rpc.go:237] Transcoding done results sent for taskId=159371 url=https://143.110.211.203:8935/stream/0d94cf07/2407.tempfile dur=78.7ms err=

Makalore ran the following benchmark
AMD Ryzen 7 3700X 8-Core Processor
1 Session

  • Real-Time Duration Ratio * | 0.5488

I noticed that real world performance appeared better than the benchmark results and hypothesized that the streams I received in the pool were not multi resolution transcodes like the default settings in the benchmark tool so I ran the i7 with just the 480p setting from the default .json profile.

Here are the results of that test.

i7 1165G7 4 Core @ 2.8GHz (Mobile)
Single resolution 480p
1 Session

  • Real-Time Duration Ratio * | 0.3045
    2 Sessions
  • Real-Time Duration Ratio * | 0.3453
    3 Sessions
  • Real-Time Duration Ratio * | 0.3912

This is preliminary data and I plan to run more benchmarks with different configurations in the future. I think it would be interesting if we can get more people to test a variety of CPUs and see how they compare. If there is interest in this topic it would probably be a good idea if we come up with a standardized method and set of config files to run the benchmarks and keep an updated spreadsheet with the results.