Nigel Tao
8edbaf3f9e
vector: add SIMD versions of xxxAccumulateOpOver.
...
name old time/op new time/op delta
GlyphAlpha16Over-8 3.55µs ± 0% 3.17µs ± 0% -10.58% (p=0.000 n=10+10)
GlyphAlpha32Over-8 6.73µs ± 1% 4.94µs ± 0% -26.55% (p=0.000 n=10+9)
GlyphAlpha64Over-8 16.4µs ± 0% 9.6µs ± 0% -41.30% (p=0.000 n=9+10)
GlyphAlpha128Over-8 47.3µs ± 0% 23.1µs ± 1% -51.09% (p=0.000 n=9+9)
GlyphAlpha256Over-8 159µs ± 0% 69µs ± 0% -56.82% (p=0.000 n=9+8)
A comparison of the non-SIMD and SIMD versions:
name time/op
FixedAccumulateOpOver16-8 579ns ± 0%
FixedAccumulateOpOverSIMD16-8 183ns ± 0%
FloatingAccumulateOpOver16-8 670ns ± 1%
FloatingAccumulateOpOverSIMD16-8 242ns ± 0%
FixedAccumulateOpOver64-8 9.61µs ± 0%
FixedAccumulateOpOverSIMD64-8 2.72µs ± 0%
FloatingAccumulateOpOver64-8 11.1µs ± 0%
FloatingAccumulateOpOverSIMD64-8 3.65µs ± 0%
Change-Id: I08273c40ac5445f39b77a88fb8b6b07fd3e5f84b
Reviewed-on: https://go-review.googlesource.com/30831
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-10-13 03:04:36 +00:00
Nigel Tao
ae7296db94
vector: generate acc_amd64.s from a template.
...
There are currently 2 instantiations: fixed and floating math.
There will eventually be 6: 2 math types times 3 operators (OpOver,
OpSrc and Mask).
Change-Id: I16db8f3693abe30027ea2f822909980403a6142f
Reviewed-on: https://go-review.googlesource.com/30735
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-10-11 07:55:43 +00:00
Nigel Tao
746988e7a2
vector: add SIMD versions of xxxAccumulateOpSrc.
...
name old time/op new time/op delta
GlyphAlpha16Src-8 3.37µs ± 0% 3.07µs ± 1% -8.86% (p=0.000 n=9+9)
GlyphAlpha32Src-8 6.01µs ± 1% 4.55µs ± 0% -24.28% (p=0.000 n=10+9)
GlyphAlpha64Src-8 13.2µs ± 0% 8.1µs ± 0% -38.69% (p=0.000 n=10+9)
GlyphAlpha128Src-8 32.9µs ± 0% 16.9µs ± 0% -48.85% (p=0.000 n=10+9)
GlyphAlpha256Src-8 98.0µs ± 0% 43.6µs ± 1% -55.50% (p=0.000 n=10+10)
A comparison of the non-SIMD and SIMD versions:
name time/op
FixedAccumulateOpSrc16-8 368ns ± 0%
FixedAccumulateOpSrcSIMD16-8 86.8ns ± 1%
FloatingAccumulateOpSrc16-8 434ns ± 0%
FloatingAccumulateOpSrcSIMD16-8 119ns ± 0%
FixedAccumulateOpSrc64-8 6.12µs ± 0%
FixedAccumulateOpSrcSIMD64-8 1.17µs ± 0%
FloatingAccumulateOpSrc64-8 7.15µs ± 0%
FloatingAccumulateOpSrcSIMD64-8 1.68µs ± 1%
Change-Id: I58e5c7a3ecd12e536aab8e765e94275453d0eac8
Reviewed-on: https://go-review.googlesource.com/30431
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-10-10 07:32:32 +00:00