Reland: SIMD the main loop for k-rate Oscillator
The main processing loop for the k-rate Oscillator is updated to use SSE2 instructions to speed up processing. Four tests fail because we have slightly reduced accuracy. Testing shows that the loss of accuracy is due to using a float for virtual_read_index in the loop instead of a double as previously. A implementation using a double passes all the original tests but does show that it does lose performance. I think the change in accuracy is acceptable. WebAudio Bench results from a linux machine. In summary, the SIMD version is about 60% as much time (about 1.75 times faster). Without CL: TEST μs MIN Q1 MEDIAN Q3 MAX MEAN STDDEV Baseline 713 713 748 757 766 877 760.25 18.35 Oscillator 949 949 972 990 1005 1132 990.78 24.35 With CL: TEST μs MIN Q1 MEDIAN Q3 MAX MEAN STDDEV Baseline 728 728 747 756 763 908 757.46 16.81 Oscillator 521 521 549 564 581 874 566.87 27.77 Bug: 1013118 Change-Id: Ic5445cc152e960b41817f245ac306691f7c57f90 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2246831Reviewed-by:Hongchan Choi <hongchan@chromium.org> Commit-Queue: Raymond Toy <rtoy@chromium.org> Cr-Commit-Position: refs/heads/master@{#778579}
Showing
This diff is collapsed.
Please register or sign in to comment