New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 778262 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Sep 3
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 779049
issue 788043



Sign in to add a comment

blink platform audio vector math functions should be AVX optimized

Project Member Reported by eero.hak...@intel.com, Oct 25 2017

Issue description

blink platform audio vector math functions in blink::VectorMath should be AVX optimized.
 

Comment 1 by rbyers@chromium.org, Oct 26 2017

Components: -Blink Blink>WebAudio

Comment 2 by rtoy@chromium.org, Oct 26 2017

I look forward to having AVX optimization for these, but how would that work?  Chrome doesn't build with AVX enabled, so these optimizations won't get used until AVX can be enabled everywhere.

Or are you going to do run-time detection and select the appropriate optimized routines?  That would be awesome.
Yes, the plan is to use run-time detection. 
Project Member

Comment 4 by bugdroid1@chromium.org, Oct 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ea2db6b78d813aa00492846478811eab71815487

commit ea2db6b78d813aa00492846478811eab71815487
Author: Eero Häkkinen <eero.hakkinen@intel.com>
Date: Fri Oct 27 09:30:32 2017

Implement test cases for blink::VectorMath functions

This is a preparation for AVX optimization of blink::VectorMath
functions.

Bug:  778262 
Change-Id: I57a61fa991f0c44b5f3fa4d97ca5afe4ebdd81f6
Reviewed-on: https://chromium-review.googlesource.com/737877
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
Cr-Commit-Position: refs/heads/master@{#512132}
[modify] https://crrev.com/ea2db6b78d813aa00492846478811eab71815487/third_party/WebKit/Source/platform/BUILD.gn
[add] https://crrev.com/ea2db6b78d813aa00492846478811eab71815487/third_party/WebKit/Source/platform/audio/VectorMathTest.cpp

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/53b2317dba6778b9f7af53a444f51771dee0741a

commit 53b2317dba6778b9f7af53a444f51771dee0741a
Author: Tim Schumann <tschumann@chromium.org>
Date: Fri Oct 27 12:34:17 2017

Revert "Implement test cases for blink::VectorMath functions"

This reverts commit ea2db6b78d813aa00492846478811eab71815487.

Reason for revert: breaks blink_platform_unittests
Details: https://bugs.chromium.org/p/chromium/issues/detail?id=779049

Original change's description:
> Implement test cases for blink::VectorMath functions
> 
> This is a preparation for AVX optimization of blink::VectorMath
> functions.
> 
> Bug:  778262 
> Change-Id: I57a61fa991f0c44b5f3fa4d97ca5afe4ebdd81f6
> Reviewed-on: https://chromium-review.googlesource.com/737877
> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
> Reviewed-by: Raymond Toy <rtoy@chromium.org>
> Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
> Cr-Commit-Position: refs/heads/master@{#512132}

TBR=kinuko@chromium.org,kbr@chromium.org,rtoy@chromium.org,hongchan@chromium.org,eero.hakkinen@intel.com

Change-Id: I874f5e00fb0543fda2c5b21cf2fc1f4f45b0d665
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  778262 
Reviewed-on: https://chromium-review.googlesource.com/741502
Reviewed-by: Tim Schumann <tschumann@chromium.org>
Commit-Queue: Tim Schumann <tschumann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#512158}
[modify] https://crrev.com/53b2317dba6778b9f7af53a444f51771dee0741a/third_party/WebKit/Source/platform/BUILD.gn
[delete] https://crrev.com/d41c35832870b62e499aafbae7b543fdbc3b4d4f/third_party/WebKit/Source/platform/audio/VectorMathTest.cpp

Comment 6 by kbr@chromium.org, Oct 27 2017

Blockedon: 779049
Project Member

Comment 7 by bugdroid1@chromium.org, Oct 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2ec883baa185dd4ed877fbbfeaaa7aea51385b02

commit 2ec883baa185dd4ed877fbbfeaaa7aea51385b02
Author: Eero Häkkinen <eero.hakkinen@intel.com>
Date: Mon Oct 30 23:37:01 2017

[Reland] Implement test cases for blink::VectorMath functions

Original CL: https://chromium-review.googlesource.com/737877

This CL avoids erroneous array bound checks in the standard algorithm
library.

This is a preparation for AVX optimization of blink::VectorMath
functions.

Bug:  778262 
Change-Id: Ifc8465644a048cd0815c993dd824bdf62d04415a
Reviewed-on: https://chromium-review.googlesource.com/744005
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
Cr-Commit-Position: refs/heads/master@{#512674}
[modify] https://crrev.com/2ec883baa185dd4ed877fbbfeaaa7aea51385b02/third_party/WebKit/Source/platform/BUILD.gn
[add] https://crrev.com/2ec883baa185dd4ed877fbbfeaaa7aea51385b02/third_party/WebKit/Source/platform/audio/VectorMathTest.cpp

Project Member

Comment 8 by bugdroid1@chromium.org, Oct 31 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a61604478fbacd5d6bf7b7c600578d5970b95417

commit a61604478fbacd5d6bf7b7c600578d5970b95417
Author: Makoto Shimazu <shimazu@chromium.org>
Date: Tue Oct 31 03:05:24 2017

Revert "[Reland] Implement test cases for blink::VectorMath functions"

This reverts commit 2ec883baa185dd4ed877fbbfeaaa7aea51385b02.

Reason for revert: VectorMathTest.Vsma and VectorMathTest.Zvmul
 are failing on Mac. See https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.11%20%28retina%29/builds/19138/steps/blink_platform_unittests for detail.

Original change's description:
> [Reland] Implement test cases for blink::VectorMath functions
> 
> Original CL: https://chromium-review.googlesource.com/737877
> 
> This CL avoids erroneous array bound checks in the standard algorithm
> library.
> 
> This is a preparation for AVX optimization of blink::VectorMath
> functions.
> 
> Bug:  778262 
> Change-Id: Ifc8465644a048cd0815c993dd824bdf62d04415a
> Reviewed-on: https://chromium-review.googlesource.com/744005
> Reviewed-by: Raymond Toy <rtoy@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
> Cr-Commit-Position: refs/heads/master@{#512674}

TBR=kbr@chromium.org,rtoy@chromium.org,eero.hakkinen@intel.com

Change-Id: Ife91931cd9b3f309bd75eeb0ba6525a013f67817
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  778262 
Reviewed-on: https://chromium-review.googlesource.com/745921
Reviewed-by: Makoto Shimazu <shimazu@chromium.org>
Commit-Queue: Makoto Shimazu <shimazu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#512726}
[modify] https://crrev.com/a61604478fbacd5d6bf7b7c600578d5970b95417/third_party/WebKit/Source/platform/BUILD.gn
[delete] https://crrev.com/fc9df5d5ac34fb5c4f706745b4d0dc7172d2ddd6/third_party/WebKit/Source/platform/audio/VectorMathTest.cpp

Project Member

Comment 9 by bugdroid1@chromium.org, Nov 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e7f2d4d2667b46e160f7415b8d59b9c1c371ad23

commit e7f2d4d2667b46e160f7415b8d59b9c1c371ad23
Author: Eero Häkkinen <eero.hakkinen@intel.com>
Date: Tue Nov 21 03:52:34 2017

Reland "[Reland] Implement test cases for blink::VectorMath functions"

Previous CLs: https://chromium-review.googlesource.com/737877
              https://chromium-review.googlesource.com/744005

This CL loosens float equality tests so that results with different
rounding errors caused by different optimization paths pass the tests.

This is a preparation for AVX optimization of blink::VectorMath
functions.

Bug:  778262 
Change-Id: Ied5fab6dbc42d6ae206bfed253684f6998c00a2c
Reviewed-on: https://chromium-review.googlesource.com/749221
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
Cr-Commit-Position: refs/heads/master@{#518100}
[modify] https://crrev.com/e7f2d4d2667b46e160f7415b8d59b9c1c371ad23/third_party/WebKit/Source/platform/BUILD.gn
[add] https://crrev.com/e7f2d4d2667b46e160f7415b8d59b9c1c371ad23/third_party/WebKit/Source/platform/audio/VectorMathTest.cpp

Comment 10 by ukai@chromium.org, Nov 21 2017

failing on CrWinClexeGoma

https://build.chromium.org/p/chromium.fyi/builders/CrWinClexeGoma/builds/904
https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.fyi%2FCrWinClexeGoma%2F904%2F%2B%2Frecipes%2Fsteps%2Fcompile%2F0%2Fstdout

AILED: obj/third_party/WebKit/Source/platform/blink_platform_unittests_sources/VectorMathTest.obj 
ninja -t msvc -e environment.x86 -- E:\b\c\goma_client/gomacc.exe "e:\b\c\win_toolchain\vs_files\a9e1098bba66d2acccc377d5ee81265910f29272\vc\tools\msvc\14.11.25503\bin\hostx64\x86/cl.exe" /nologo /showIncludes  @obj/third_party/WebKit/Source/platform/blink_platform_unittests_sources/VectorMathTest.obj.rsp /c ../../third_party/WebKit/Source/platform/audio/VectorMathTest.cpp /Foobj/third_party/WebKit/Source/platform/blink_platform_unittests_sources/VectorMathTest.obj /Fd"obj/third_party/WebKit/Source/platform/blink_platform_unittests_sources_cc.pdb"
../..\base/logging.h(760): error C2220: warning treated as error - no 'object' file generated
../../third_party/WebKit/Source/platform/audio/VectorMathTest.cpp(202): note: see reference to function template instantiation 'std::string *logging::CheckLTImpl<::size_t,>(const t1 &,const t2 &,const char *)' being compiled
        with
        [
            t1=::size_t,
            t2=
        ]
../..\base/logging.h(760): warning C4018: '<': signed/unsigned mismatch

Project Member

Comment 11 by bugdroid1@chromium.org, Nov 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fc32e0990e359e182211b2df5772e2aeadca1670

commit fc32e0990e359e182211b2df5772e2aeadca1670
Author: Mostyn Bramley-Moore <mostynb@vewd.com>
Date: Tue Nov 21 08:24:52 2017

[jumbo] fixup after 'Reland "[Reland] Implement test cases for blink::VectorMath functions"'

Followup to https://chromium-review.googlesource.com/749221 which fixes
the following errors in jumbo builds:

./../../third_party/WebKit/Source/platform/audio/VectorMathTest.cpp:188:31: error: unknown class name 'Test'; did you mean '::testing::Test'?

./../../third_party/WebKit/Source/platform/audio/VectorMathTest.cpp:282:39: error: no member named 'PrintToString' in namespace 'blink::testing'; did you mean '::testing::PrintToString'?

TBR=kbr@chromium.org

Bug:  778262 
Change-Id: Ibb616691ee3a5d79fdc08c4154ab00ea1a15fc79
Reviewed-on: https://chromium-review.googlesource.com/781459
Reviewed-by: Mostyn Bramley-Moore <mostynb@vewd.com>
Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com>
Cr-Commit-Position: refs/heads/master@{#518180}
[modify] https://crrev.com/fc32e0990e359e182211b2df5772e2aeadca1670/third_party/WebKit/Source/platform/audio/VectorMathTest.cpp

Project Member

Comment 12 by bugdroid1@chromium.org, Nov 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3eadc13967a54120ef1a683a0da3bf1e3399dd9d

commit 3eadc13967a54120ef1a683a0da3bf1e3399dd9d
Author: Yoichi Osato <yoichio@chromium.org>
Date: Wed Nov 22 08:56:52 2017

Fix compile error on msvc.

It is comparing size_t and enum w/o cast.

Bug:  778262 
Change-Id: Iec0c159eae06c6450bdeb3f592106216071d797a
Reviewed-on: https://chromium-review.googlesource.com/784673
Commit-Queue: Yoichi Osato <yoichio@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518575}
[modify] https://crrev.com/3eadc13967a54120ef1a683a0da3bf1e3399dd9d/third_party/WebKit/Source/platform/audio/VectorMathTest.cpp

Oof this is failing blink_platform tests, 

[ RUN      ] VectorMathTest.Zvmul
../../third_party/WebKit/Source/platform/audio/VectorMathTest.cpp:408: Failure
      Expected: expected_dest_imag[i]
      Which is: -1.8202934
To be equal to: dest_imag[i]
      Which is: -1.8202916
../../third_party/WebKit/Source/platform/audio/VectorMathTest.cpp:404: Failure
      Expected: expected_dest_real[i]
      Which is: 1.6734142
To be equal to: dest_real[i]
      Which is: 1.6734153
../../third_party/WebKit/Source/platform/audio/VectorMathTest.cpp:404: Failure
      Expected: expected_dest_real[i]
      Which is: 0.33417892
To be equal to: dest_real[i]
      Which is: 0.33417979
../../third_party/WebKit/Source/platform/audio/VectorMathTest.cpp:404: Failure
      Expected: expected_dest_real[i]
      Which is: -0.85900974
To be equal to: dest_real[i]
      Which is: -0.85900933

[ RUN      ] VectorMathTest.Vsma
../../third_party/WebKit/Source/platform/audio/VectorMathTest.cpp:318: Failure
      Expected: expected_dest[i]
      Which is: 0.2028904
To be equal to: dest[i]
      Which is: 0.20289056
../../third_party/WebKit/Source/platform/audio/VectorMathTest.cpp:318: Failure
      Expected: expected_dest[i]
      Which is: 0.2028904
To be equal to: dest[i]
      Which is: 0.20289056
../../third_party/WebKit/Source/platform/audio/VectorMathTest.cpp:318: Failure
      Expected: expected_dest[i]
      Which is: -0.23848915
To be equal to: dest[i]
      Which is: -0.23848924
../../third_party/WebKit/Source/platform/audio/VectorMathTest.cpp:318: Failure
      Expected: expected_dest[i]
      Which is: -0.23848915
To be equal to: dest[i]
      Which is: -0.23848924


Due to the sequence of patches on top I'm just going to disable tests for now since they seem like they just need some expectation updates.
eero says he's preparing a patch. I'd guess these failures are due to Mac using the OS provided vectorized functions?
Project Member

Comment 15 by bugdroid1@chromium.org, Nov 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/44e8444ed62b8196fd1b79b96eec2fd0f35221f6

commit 44e8444ed62b8196fd1b79b96eec2fd0f35221f6
Author: Dale Curtis <dalecurtis@chromium.org>
Date: Wed Nov 22 20:30:19 2017

Disable VectorMathTests failing on macOS

BUG= 778262 
TBR=rtoy
TEST=none

Bug: 
Change-Id: Ib08b6e0f8703cb9ebf6040dbeff79c256ca86aef
Reviewed-on: https://chromium-review.googlesource.com/786373
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518729}
[modify] https://crrev.com/44e8444ed62b8196fd1b79b96eec2fd0f35221f6/third_party/WebKit/Source/platform/audio/VectorMathTest.cpp

Blockedon: 788043
Project Member

Comment 17 by bugdroid1@chromium.org, Nov 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f18456d9f10ca668ced22f06ad2ad106a9d246ee

commit f18456d9f10ca668ced22f06ad2ad106a9d246ee
Author: Eero Häkkinen <eero.hakkinen@intel.com>
Date: Tue Nov 28 05:25:40 2017

Relax VectorMath tests further on Mac and re-enable all tests

On Mac, OS provided vectorized functions are used which results in
different rounding errors and NaN handling.

Bug:  778262 
Change-Id: I28479415bfd7117f0b2e712637e9e344b77c4645
Reviewed-on: https://chromium-review.googlesource.com/786153
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
Cr-Commit-Position: refs/heads/master@{#519576}
[modify] https://crrev.com/f18456d9f10ca668ced22f06ad2ad106a9d246ee/third_party/WebKit/Source/platform/audio/VectorMathTest.cpp

Project Member

Comment 18 by bugdroid1@chromium.org, Nov 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1c93289e5ae57607e56cb721c1569f22e72a8e0b

commit 1c93289e5ae57607e56cb721c1569f22e72a8e0b
Author: Eero Häkkinen <eero.hakkinen@intel.com>
Date: Tue Nov 28 17:07:57 2017

Move SSE optimizations of VectorMath functions to a new file

As SSE and AVX optimizations are quite similar, the new file can be
modified to be useful also for AVX optimizations with altered
preprocessor logic.

This is a preparation for AVX optimization of VectorMath functions.

Bug:  778262 
Change-Id: Ic9540e1a17b090020e789db1ca5126ffe141b044
Reviewed-on: https://chromium-review.googlesource.com/738241
Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519712}
[modify] https://crrev.com/1c93289e5ae57607e56cb721c1569f22e72a8e0b/third_party/WebKit/Source/platform/audio/VectorMath.cpp
[modify] https://crrev.com/1c93289e5ae57607e56cb721c1569f22e72a8e0b/third_party/WebKit/Source/platform/audio/VectorMath.h
[add] https://crrev.com/1c93289e5ae57607e56cb721c1569f22e72a8e0b/third_party/WebKit/Source/platform/audio/cpu/x86/VectorMathImpl.cpp

Project Member

Comment 19 by bugdroid1@chromium.org, Dec 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a4b0dbe63fa1a2bb876b2dd1828047b3e1955e97

commit a4b0dbe63fa1a2bb876b2dd1828047b3e1955e97
Author: Eero Häkkinen <eero.hakkinen@intel.com>
Date: Fri Dec 01 17:34:38 2017

Optimize blink::VectorMath::Vclip for SSE

The performance gain on an Intel Broadwell CPU is about 8-fold, and on
Intel Skylake and newer CPUs the SSE throughput should be further
doubled.

Bug:  778262 
Change-Id: If4682a4d95a6729626049a38a4b1d5b1ebf830bd
Reviewed-on: https://chromium-review.googlesource.com/738243
Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520973}
[modify] https://crrev.com/a4b0dbe63fa1a2bb876b2dd1828047b3e1955e97/third_party/WebKit/Source/platform/audio/VectorMath.cpp
[modify] https://crrev.com/a4b0dbe63fa1a2bb876b2dd1828047b3e1955e97/third_party/WebKit/Source/platform/audio/cpu/x86/VectorMathImpl.cpp

Project Member

Comment 20 by bugdroid1@chromium.org, Dec 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/02dce1e1a2ffa3ffc93455cbdcbe55117cb09543

commit 02dce1e1a2ffa3ffc93455cbdcbe55117cb09543
Author: Kenneth Russell <kbr@chromium.org>
Date: Fri Dec 15 21:19:20 2017

Add rtoy as platform OWNER.

Raymond is the primary OWNER of platform/audio and needs to be able to
approve CLs which change the top-level BUILD.gn.

BUG= 778262 

Change-Id: I9f3b7478e95b34187669371d894c863ff86936f2
Reviewed-on: https://chromium-review.googlesource.com/827609
Reviewed-by: Ian Vollick <vollick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524465}
[modify] https://crrev.com/02dce1e1a2ffa3ffc93455cbdcbe55117cb09543/third_party/WebKit/Source/platform/OWNERS

Project Member

Comment 21 by bugdroid1@chromium.org, Dec 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a3027612167c59dc7685123f448d30fb854f6385

commit a3027612167c59dc7685123f448d30fb854f6385
Author: Eero Häkkinen <eero.hakkinen@intel.com>
Date: Fri Dec 15 21:38:46 2017

Move X86 optimized VectorMath code to its own file

This CL is part of VectorMath code clean up series:
[1/4] this CL
[2/4] https://chromium-review.googlesource.com/c/824047
[3/4] https://chromium-review.googlesource.com/c/824048
[4/4] https://chromium-review.googlesource.com/c/824049

Bug:  778262 
Change-Id: I8d1d5db93b20e2ba14781151efb0ba174c97687d
Reviewed-on: https://chromium-review.googlesource.com/824046
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
Cr-Commit-Position: refs/heads/master@{#524469}
[modify] https://crrev.com/a3027612167c59dc7685123f448d30fb854f6385/third_party/WebKit/Source/platform/BUILD.gn
[modify] https://crrev.com/a3027612167c59dc7685123f448d30fb854f6385/third_party/WebKit/Source/platform/audio/VectorMath.cpp
[add] https://crrev.com/a3027612167c59dc7685123f448d30fb854f6385/third_party/WebKit/Source/platform/audio/VectorMathScalar.h
[add] https://crrev.com/a3027612167c59dc7685123f448d30fb854f6385/third_party/WebKit/Source/platform/audio/cpu/x86/VectorMathSSE.h
[add] https://crrev.com/a3027612167c59dc7685123f448d30fb854f6385/third_party/WebKit/Source/platform/audio/cpu/x86/VectorMathX86.h

Project Member

Comment 22 by bugdroid1@chromium.org, Dec 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ffdd2535dc9f0be660e006de60682de052c94d2b

commit ffdd2535dc9f0be660e006de60682de052c94d2b
Author: Eero Häkkinen <eero.hakkinen@intel.com>
Date: Sat Dec 16 15:59:13 2017

Move Mac OS X optimized VectorMath code to its own file

This CL is part of VectorMath code clean up series:
[1/4] https://chromium-review.googlesource.com/c/824046
[2/4] this CL
[3/4] https://chromium-review.googlesource.com/c/824048
[4/4] https://chromium-review.googlesource.com/c/824049

Bug:  778262 
Change-Id: If74c8bc5761b73a4282de20ae4c72e6ad839e464
Reviewed-on: https://chromium-review.googlesource.com/824047
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
Cr-Commit-Position: refs/heads/master@{#524607}
[modify] https://crrev.com/ffdd2535dc9f0be660e006de60682de052c94d2b/third_party/WebKit/Source/platform/BUILD.gn
[modify] https://crrev.com/ffdd2535dc9f0be660e006de60682de052c94d2b/third_party/WebKit/Source/platform/audio/VectorMath.cpp
[add] https://crrev.com/ffdd2535dc9f0be660e006de60682de052c94d2b/third_party/WebKit/Source/platform/audio/mac/VectorMathMac.h

Project Member

Comment 23 by bugdroid1@chromium.org, Dec 16 2017

Project Member

Comment 24 by bugdroid1@chromium.org, Dec 19 2017

Project Member

Comment 25 by bugdroid1@chromium.org, Jan 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f4649bb381b982e9c42fbcc40e39cccd6065f774

commit f4649bb381b982e9c42fbcc40e39cccd6065f774
Author: David Vallet <dvallet@chromium.org>
Date: Fri Jan 05 04:23:37 2018

Avoid including .cpp file in VectorMathSSE.h header file

This is to avoid including any .cpp files from .h files. This was
the first exception to this rule in Blink.

Bug:  778262 
Change-Id: Ifcfb4bae4ac2db04f280fede3c437e2d743af9b5
Reviewed-on: https://chromium-review.googlesource.com/851392
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527193}
[modify] https://crrev.com/f4649bb381b982e9c42fbcc40e39cccd6065f774/third_party/WebKit/Source/platform/BUILD.gn
[rename] https://crrev.com/f4649bb381b982e9c42fbcc40e39cccd6065f774/third_party/WebKit/Source/platform/audio/cpu/x86/VectorMathSSE.cpp
[modify] https://crrev.com/f4649bb381b982e9c42fbcc40e39cccd6065f774/third_party/WebKit/Source/platform/audio/cpu/x86/VectorMathSSE.h

Project Member

Comment 26 by bugdroid1@chromium.org, Jan 10 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a90cb41f7cd2ba022d3f9bec682a447a31265723

commit a90cb41f7cd2ba022d3f9bec682a447a31265723
Author: Gordana Cmiljanovic <gordana.cmiljanovic@mips.com>
Date: Wed Jan 10 16:12:13 2018

[MIPS] Fix typing error in VectorMathMSA.h

Fixing typing error introduced in:
https://chromium.googlesource.com/chromium/src/+/3dfdf0fb14316edcf9e3c8aadd83595d5ef080eb

Bug:  778262 
Change-Id: I50f7623dced3de4b7f304326f4a08e601a41b431
Reviewed-on: https://chromium-review.googlesource.com/860357
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Commit-Queue: Raymond Toy <rtoy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528333}
[modify] https://crrev.com/a90cb41f7cd2ba022d3f9bec682a447a31265723/third_party/WebKit/Source/platform/audio/cpu/mips/VectorMathMSA.h

Project Member

Comment 27 by bugdroid1@chromium.org, Feb 4 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3503377ca66909bdccd6a9d3c7514f2de3789452

commit 3503377ca66909bdccd6a9d3c7514f2de3789452
Author: Eero Häkkinen <eero.hakkinen@intel.com>
Date: Sun Feb 04 21:02:03 2018

Move common VectorMath X86 optimizations back to a separate file

As SSE and AVX optimizations are quite similar, a separate file is useful
also for AVX optimizations with altered preprocessor logic.

This is a preparation for AVX optimization of VectorMath functions.

Bug:  778262 
Change-Id: I498da9e1b5da89b5dbd0c65f39a30be36688a1c6
Reviewed-on: https://chromium-review.googlesource.com/894202
Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534300}
[modify] https://crrev.com/3503377ca66909bdccd6a9d3c7514f2de3789452/third_party/WebKit/Source/platform/BUILD.gn
[add] https://crrev.com/3503377ca66909bdccd6a9d3c7514f2de3789452/third_party/WebKit/Source/platform/audio/cpu/x86/VectorMathImpl.h
[modify] https://crrev.com/3503377ca66909bdccd6a9d3c7514f2de3789452/third_party/WebKit/Source/platform/audio/cpu/x86/VectorMathSSE.cpp
[modify] https://crrev.com/3503377ca66909bdccd6a9d3c7514f2de3789452/third_party/WebKit/Source/platform/audio/cpu/x86/VectorMathSSE.h

Project Member

Comment 28 by bugdroid1@chromium.org, Feb 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c4e959b7fc7bdf578549a7f8ac306f4ddb7d1e83

commit c4e959b7fc7bdf578549a7f8ac306f4ddb7d1e83
Author: Eero Häkkinen <eero.hakkinen@intel.com>
Date: Mon Feb 05 10:44:52 2018

Consolidate common VectorMath X86 dispathing logic

This CL moves common VectorMath X86 logic which splits frame counts to
scalar and SSE frames to new function so that the logic does not have to
repeated in each VectorMath X86 function.

This also improves VectorMath performance on X86 platform by 2 to 14
percent depending on alignment of source and destination vectors.

This CL is part of VectorMath code clean up.

Bug:  778262 
Change-Id: I452618bbb406d2aae18df8c173b119e0da2fe61f
Reviewed-on: https://chromium-review.googlesource.com/824366
Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534361}
[modify] https://crrev.com/c4e959b7fc7bdf578549a7f8ac306f4ddb7d1e83/third_party/WebKit/Source/platform/audio/cpu/x86/VectorMathX86.h

Comment 30 by rtoy@chromium.org, Feb 14 2018

With this last CL, it looks like you've added AVX optimizations.  Is there anything else that needs to be done?
The last bit of optimizations of existing vector math functions is https://chromium-review.googlesource.com/c/738239 which is now in commit queue.
The last bit of optimizations of existing vector math functions is https://chromium-review.googlesource.com/c/738239 which is now in commit queue.
The last bit of optimizations of existing vector math functions is
https://chromium-review.googlesource.com/c/738239 which is now in commit
queue.
Project Member

Comment 34 by bugdroid1@chromium.org, Feb 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/05db906e922ecc5cc6d2c2141a324bc10465ca9b

commit 05db906e922ecc5cc6d2c2141a324bc10465ca9b
Author: Eero Häkkinen <eero.hakkinen@intel.com>
Date: Fri Feb 16 08:49:40 2018

Increase AudioArray alignment for better AVX optimization

This CL increases AudioArray alignment on x86 family architectures so
that blink::VectorMath functions can better utilize AVX optimizations.

Bug:  778262 
Change-Id: Ibe94130ba0d0223342ae25f844c69767194370e9
Reviewed-on: https://chromium-review.googlesource.com/738239
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
Cr-Commit-Position: refs/heads/master@{#537259}
[modify] https://crrev.com/05db906e922ecc5cc6d2c2141a324bc10465ca9b/third_party/WebKit/Source/platform/audio/AudioArray.h

Project Member

Comment 35 by bugdroid1@chromium.org, Mar 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/13a6b23cdc8f55997520169806101a2cda112787

commit 13a6b23cdc8f55997520169806101a2cda112787
Author: Eero Häkkinen <eero.hakkinen@intel.com>
Date: Mon Mar 19 21:26:31 2018

Move vector convolution from DirectConvolver to blink::VectorMath

This CL adds a new function blink::VectorMath::Conv based on code in
blink::DirectConvolver, modifies DirectConvolver to use that new
function and adds a unit test for that new function.

This is a preparation for AVX optimized vector convolution.

Bug:  778262 
Change-Id: Iae970e9c1ecb359c2375305b6af8c54e853dcdc1
Reviewed-on: https://chromium-review.googlesource.com/924143
Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544164}
[modify] https://crrev.com/13a6b23cdc8f55997520169806101a2cda112787/third_party/WebKit/Source/platform/audio/DirectConvolver.cpp
[modify] https://crrev.com/13a6b23cdc8f55997520169806101a2cda112787/third_party/WebKit/Source/platform/audio/VectorMath.cpp
[modify] https://crrev.com/13a6b23cdc8f55997520169806101a2cda112787/third_party/WebKit/Source/platform/audio/VectorMath.h
[modify] https://crrev.com/13a6b23cdc8f55997520169806101a2cda112787/third_party/WebKit/Source/platform/audio/VectorMathScalar.h
[modify] https://crrev.com/13a6b23cdc8f55997520169806101a2cda112787/third_party/WebKit/Source/platform/audio/VectorMathTest.cpp
[modify] https://crrev.com/13a6b23cdc8f55997520169806101a2cda112787/third_party/WebKit/Source/platform/audio/cpu/arm/VectorMathNEON.h
[modify] https://crrev.com/13a6b23cdc8f55997520169806101a2cda112787/third_party/WebKit/Source/platform/audio/cpu/mips/VectorMathMSA.h
[modify] https://crrev.com/13a6b23cdc8f55997520169806101a2cda112787/third_party/WebKit/Source/platform/audio/cpu/x86/VectorMathX86.h
[modify] https://crrev.com/13a6b23cdc8f55997520169806101a2cda112787/third_party/WebKit/Source/platform/audio/mac/VectorMathMac.h

Project Member

Comment 36 by bugdroid1@chromium.org, Mar 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b401d9b0f10151b25898737a1e5026fb5a112021

commit b401d9b0f10151b25898737a1e5026fb5a112021
Author: Eero Häkkinen <eero.hakkinen@intel.com>
Date: Tue Mar 20 09:55:44 2018

Optimize blink::VectorMath::Conv for AVX

This CL doubles the performance on an Intel Broadwell CPU.

Bug:  778262 
Change-Id: Ie60d64a0e862148a8a74e1fb162be2ec147e6cc6
Reviewed-on: https://chromium-review.googlesource.com/924144
Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544319}
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/DirectConvolver.cpp
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/DirectConvolver.h
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/DownSampler.cpp
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/DownSampler.h
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/ReverbConvolverStage.cpp
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/ReverbConvolverStage.h
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/UpSampler.cpp
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/UpSampler.h
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/VectorMath.cpp
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/VectorMath.h
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/VectorMathScalar.h
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/VectorMathTest.cpp
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/cpu/x86/VectorMathAVX.h
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/cpu/x86/VectorMathImpl.h
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/cpu/x86/VectorMathSSE.h
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/cpu/x86/VectorMathX86.h
[modify] https://crrev.com/b401d9b0f10151b25898737a1e5026fb5a112021/third_party/WebKit/Source/platform/audio/mac/VectorMathMac.h

Status: Fixed (was: Assigned)

Sign in to add a comment