[eigen-commits] commit/eigen: markdryan: PR 526: Speed up multiplication of small, dynamically sized matrices |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen-commits Archives
]
- To: eigen-commits@xxxxxxxxxxxxxxxxxxx
- Subject: [eigen-commits] commit/eigen: markdryan: PR 526: Speed up multiplication of small, dynamically sized matrices
- From: Bitbucket <commits-noreply@xxxxxxxxxxxxx>
- Date: Tue, 06 Nov 2018 22:43:59 +0000 (UTC)
- Dkim-signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=bitbucket.org; h=mime-version:content-type:content-transfer-encoding:subject:from:to; s=s1; bh=uc9sJnovqnT15i9cYe4rbbyk1uw=; b=uIQCI0FzOl7JPBA6FJPmEz1 VB4Nf5AMfndr0CC3jl7bEoXxOQDPJ6uBk+E4Dm95lCSfOAjclkJN8p4Fzhh3t9G9 SvNYJLFtQh/IwL/StTiRUCmYnM7DIISzj8JSzSRyMSm6wW4P0zBOhfkFA+vtqjHY 6HgAX4ocal42yShZZ9AE=
1 new commit in eigen:
https://bitbucket.org/eigen/eigen/commits/71609c41e9f8/
Changeset: 71609c41e9f8
User: markdryan
Date: 2018-10-12 13:20:21+00:00
Summary: PR 526: Speed up multiplication of small, dynamically sized matrices
The Packet16f, Packet8f and Packet8d types are too large to use with dynamically
sized matrices typically processed by the SliceVectorizedTraversal specialization of
the dense_assignment_loop. Using these types is likely to lead to little or no
vectorization. Significant slowdown in the multiplication of these small matrices can
be observed when building with AVX and AVX512 enabled.
This patch introduces a new dense_assignment_kernel that is used when
computing small products whose operands have dynamic dimensions. It ensures that the
PacketSize used is no larger than 4, thereby increasing the chance that vectorized
instructions will be used when computing the product.
I tested all 969 possible combinations of M, K, and N that are handled by the
dense_assignment_loop on x86 builds. Although a few combinations are slowed down
by this patch they are far outnumbered by the cases that are sped up, as the
following results demonstrate.
Disabling Packed8d on AVX512 builds:
Total Cases: 969
Better: 511
Worse: 85
Same: 373
Max Improvement: 169.00% (4 8 6)
Max Degradation: 36.50% (8 5 3)
Median Improvement: 35.46%
Median Degradation: 17.41%
Total FLOPs Improvement: 19.42%
Disabling Packet16f and Packed8f on AVX512 builds:
Total Cases: 969
Better: 658
Worse: 5
Same: 306
Max Improvement: 214.05% (8 6 5)
Max Degradation: 22.26% (16 2 1)
Median Improvement: 60.05%
Median Degradation: 13.32%
Total FLOPs Improvement: 59.58%
Disabling Packed8f on AVX builds:
Total Cases: 969
Better: 663
Worse: 96
Same: 210
Max Improvement: 155.29% (4 10 5)
Max Degradation: 35.12% (8 3 2)
Median Improvement: 34.28%
Median Degradation: 15.05%
Total FLOPs Improvement: 26.02%
Affected #: 2 files
Repository URL: https://bitbucket.org/eigen/eigen/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.