WebAssembly SIMD improvements - free discussion


Release 1.8.0 of Web SDK includes changes to support latest WebAssembly SIMD feature on Chrome 84+
This is supposed to bring improvements on CPU usage as well as probably improve video quality (we still have to determinate what we understand & mean by quality)

What is SIMD ?
For those who are not familiar with, here is a good technical explanation about what it is and what we can expect in term of improvement.

After performing few tests on our platform (with SIMD feature activated on all our web pages using Zoom), we could not notice any improvements.
Did we test it correctly ? Did we measure and monitor correctly ? Did Zoom really use SIMD in a correct way, did Zoom change the way to use CPU with the Web SDK or not ?
Many questions and that’s why i want to open that discussion here.

In particular i would like to clarify the following points with you (community & users as well as Zoom developers)

For Zoom developers:

  • What kind of improvement this feature is supposed to bring for the zoom Web SDK ? (performances, support for 720p, etc.) (please let’s stay honest, the point of this thread is not to just promote new things by throwing a smoke screen but really help us to understand where you are going with the Web SDK)
  • How can we - as users of Zoom Web SDK - monitor these improvements ? Clearly current Zoom Meeting Dashboard metrics are not working very well (it show video streaming for minutes even after a use left and its connection has been terminated for example) - not talking about the fact that we cannot monitor CPU usage there.
  • What kind of tests did you perform ? Can we have access to them and their results ?
  • SIMD itself enable to improve things, but only if you adapt your video encoder. So what did you do to be able to use SIMD and bring the improvement you mentioned ?

For Zoom community:

  • Have you already tested SIMD improvements ?
  • If so, how did you monitor it and what is your Zoom Web SDK use case(s) ?
  • What do you expect as improvements ? (lower CPU usage due to better resource usage, still same CPU burst but enable to encode in 720p soon, no CPU usage improvement but more video stability, etc.)

About CPU usage improvements

As stated by @Michael_Purnell (replied here) :

For instance, the High CPU usage issue is dependent on Chrome releasing the WebAssembly SIMD feature for Chrome 84 on July 14th. This helps drastically reduce the CPU usage for meetings. We are still performing internal testing to make sure the SIMD feature meets Zooms standard, once we’re finish testing we will release a new version.

CPU usage should drastically be reduced. I was really happy to see that announcement since we face some difficulties when users run Zoom Web SDK on low CPU spec machines.

Our expectation were big, as our deception after testing. CPU usage remain the same (high and bursting as hell)
Let’s be clear, just enabling the SIMD support and upgrading to the latest Chrome version is not enough. It also depends on how the encoder has been implemented.

Here are my questions:

  • what did you change on the encoder to support and use SIMD capacities ?
  • how can we monitor the improvement compare to let say version 1.7.10 without SIMD support ?
  • could you describe what how CPU is used in the Web SDK ? (use as many threads as you can, use only 1 thread for video encoding but full resources without any pause, etc.)

Hey @nvivot,

Thanks for starting this discussion. Let me gather some information I can share to help answer your questions and concerns. :slight_smile: