Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Fix packed load/store for PowerPC's VSX | 2019-08-09 | |
| | | | | | | | | The vec_vsx_ld/vec_vsx_st builtins were wrongly used for aligned load/store. In fact, they perform unaligned memory access and, even when the address is 16-byte aligned, they are much slower (at least 2x) than their aligned counterparts. For double/Packet2d vec_xl/vec_xst should be prefered over vec_ld/vec_st, although the latter works when casted to float/Packet4f. Silencing some weird warning with throw but some GCC versions. Such warning are not thrown by Clang. | ||
* | Fix offset argument of ploadu/pstoreu for Altivec | 2019-08-09 | |
| | | | | | | | | | | If no offset is given, them it should be zero. Also passes full address to vec_vsx_ld/st builtins. Removes userless _EIGEN_ALIGNED_PTR & _EIGEN_MASK_ALIGNMENT. Removes unnecessary casts. | ||
* | bug #1718: Add cast to successfully compile with clang on PowerPC | 2019-08-09 | |
| | | | | Ignoring -Wc11-extensions warnings thrown by clang at Altivec/PacketMath.h | ||
* | Fix bugs in log1p and expm1 where repeated using statements would clobber ↵ | 2019-08-08 | |
| | | | | | | each other. Add specializations for complex types since std::log1p and std::exp1m do not support complex. | ||
* | Remove {} accidentally added in previous commit | 2019-07-18 | |
| | |||
* | Move variadic constructors outside `#ifndef EIGEN_PARSED_BY_DOXYGEN` block, ↵ | 2019-07-12 | |
| | | | | to make it actually appear in the generated documentation. | ||
* | Build deprecated snippets with -DEIGEN_NO_DEPRECATED_WARNING | 2019-07-12 | |
| | | | | Also, document LinSpaced only where it is implemented | ||
* | Fix compiler for unsigned integers. | 2019-07-09 | |
| | |||
* | PR 655: Fix missing Eigen namespace in Macros | 2019-06-05 | |
| | |||
* | [SYCL] Adding the SYCL memory model. The SYCL memory model provides : | 2019-07-01 | |
| | | | | | * an interface for SYCL buffers to behave as a non-dereferenceable pointer * an interface for placeholder accessor to behave like a pointer on both host and device | ||
* | Fix CUDA compilation error for pselect<half>. | 2019-06-28 | |
| | |||
* | [SYCL] This PR adds the minimum modifications to Eigen core required to run ↵ | 2019-06-27 | |
| | | | | | | | | Eigen unsupported modules on devices supporting SYCL. * Adding SYCL memory model * Enabling/Disabling SYCL backend in Core * Supporting Vectorization | ||
* | fix for a ROCm/HIP specificcompile errror introduced by a recent commit. | 2019-06-22 | |
| | |||
* | Remove extra "one" in comment. | 2019-06-20 | |
| | |||
* | Update comment as suggested by tra@google.com. | 2019-06-20 | |
| | |||
* | Fix grammar. | 2019-06-20 | |
| | |||
* | Added comment explaining the surprising EIGEN_COMP_CLANG && !EIGEN_COMP_NVCC ↵ | 2019-06-20 | |
| | | | | clause. | ||
* | Fix CUDA build on Mac. | 2019-06-20 | |
| | |||
* | Various fixes for packet ops. | 2019-06-20 | |
| | | | | | | 1. Fix buggy pcmp_eq and unit test for half types. 2. Add unit test for pselect and add specializations for SSE 4.1, AVX512, and half types. 3. Get rid of FIXME: Implement faster pnegate for half by XOR'ing with a sign bit mask. | ||
* | bug #1724: Mask buggy warnings with g++-7 | 2019-06-14 | |
| | | | | | (grafted from 427f2f66d69ae9b124c2f8bcd927fb6e19e07e91 ) | ||
* | Make is_valid_index_type return false for float and double when ↵ | 2019-06-05 | |
| | | | | EIGEN_HAS_TYPE_TRAITS is off. | ||
* | Add workaround for choosing the right include files with FP16C support with ↵ | 2019-06-05 | |
| | | | | clang. | ||
* | Clean up CUDA/NVCC version macros and their use in Eigen, and a few other ↵ | 2019-05-31 | |
| | | | | CUDA build failures. | ||
* | fix for HIP build errors that were introduced by a commit earlier this week | 2019-05-24 | |
| | |||
* | GEMV: remove double declaration of constant. | 2019-05-23 | |
| | | | | | | | | | | | | | That was hurting users with compilers that would object to proceed with that: """ ./Eigen/src/Core/products/GeneralMatrixVector.h:356:10: error: declaration shadows a static data member of 'general_matrix_vector_product<type-parameter-0-0, type-parameter-0-1, type-parameter-0-2, 1, ConjugateLhs, type-parameter-0-4, type-parameter-0-5, ConjugateRhs, Version>' [-Werror,-Wshadow] LhsPacketSize = Traits::LhsPacketSize, ^ ./Eigen/src/Core/products/GeneralMatrixVector.h:307:22: note: previous declaration is here static const Index LhsPacketSize = Traits::LhsPacketSize; """ | ||
* | Enable support for F16C with Clang. The required intrinsics were added here: ↵ | 2019-05-20 | |
| | | | | | | https://reviews.llvm.org/D16177 and are part of LLVM 3.8.0. | ||
* | Merged in rmlarsen/eigen (pull request PR-643) | 2019-05-20 | |
|\ | | | | | | | | | | | Make Eigen build with cuda 10 and clang. Approved-by: Justin Lebar <justin.lebar@gmail.com> | ||
* \ | Merged in scramsby/eigen (pull request PR-646) | 2019-05-20 | |
|\ \ | | | | | | | | | | Eigen: Fix MSVC C++17 language standard detection logic | ||
* \ \ | Merged in glchaves/eigen (pull request PR-635) | 2019-05-17 | |
|\ \ \ | | | | | | | | | | | | | | | | | | | | | Speed up GEMV on AVX-512 builds, just as done for GEBP previously. Approved-by: Rasmus Larsen <rmlarsen@google.com> | ||
| | | * | Make Eigen build with cuda 10 and clang. | 2019-05-15 | |
| |_|/ |/| | | |||
* | | | Removing unused API to fix compile error in TensorFlow due to | 2019-05-12 | |
| | | | | | | | | | | | | AVX512VL, AVX512BW usage | ||
* | | | bug #1707: Fix deprecation warnings, or disable warnings when testing ↵ | 2019-05-10 | |
| | | | | | | | | | | | | deprecated functions | ||
* | | | Fix build with clang on Windows. | 2019-05-09 | |
| | | | |||
* | | | Fix AVX512 & GCC 6.3 compilation | 2019-05-07 | |
| | | | |||
* | | | Restore C++03 compatibility | 2019-05-06 | |
| | | | |||
* | | | Fix traits for scalar_logistic_op. | 2019-05-03 | |
| | | | |||
| | * | Eigen: Fix MSVC C++17 language standard detection logic | 2019-05-03 | |
| |/ |/| | | | | | | | | | | | To detect C++17 support, use _MSVC_LANG macro instead of _MSC_VER. _MSC_VER can indicate whether the current compiler version could support the C++17 language standard, but not whether that standard is actually selected (i.e. via /std:c++17). See these web pages for more details: https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/ https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros | ||
* | | Add masked_store_available to unpacket_traits | 2019-05-02 | |
| | | |||
* | | Add masked pstoreu for Packet16h | 2019-05-02 | |
| | | |||
* | | Add masked pstoreu to AVX and AVX512 PacketMath | 2019-05-02 | |
| | | |||
* | | Fix regression in changeset ae33e866c750c6c24ada5c6f7f3ec15815d0e683 | 2019-05-02 | |
| | | |||
| * | Speed up GEMV on AVX-512 builds, just as done for GEBP previously. | 2019-04-26 | |
| | | | | | | | | | | | | We take advantage of smaller SIMD registers as well, in that case. Gains up to 3x for select input sizes. | ||
* | | Fix compilation with PGI version 19 | 2019-04-25 | |
|/ | |||
* | Merged in ezhulenev/eigen-01 (pull request PR-632) | 2019-04-25 | |
|\ | | | | | | | Fix doxygen warnings | ||
| * | Fix doxygen warnings to enable statis code analysis | 2019-04-24 | |
| | | |||
* | | Get rid of SequentialLinSpacedReturnType deprecation warnings in DenseBase.h | 2019-04-24 | |
|/ | |||
* | Remove deprecation annotation from typedef Eigen::Index Index, as it would ↵ | 2019-04-24 | |
| | | | | generate too many build warnings. | ||
* | Add missing EIGEN_DEPRECATED annotations to deprecated functions and fix few ↵ | 2019-04-23 | |
| | | | | other doxygen warnings | ||
* | Use packet ops instead of AVX2 intrinsics | 2019-04-23 | |
| | |||
* | Adding lowlevel APIs for optimized RHS packet load in TensorFlow | 2019-04-20 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SpatialConvolution Low-level APIs are added in order to optimized packet load in gemm_pack_rhs in TensorFlow SpatialConvolution. The optimization is for scenario when a packet is split across 2 adjacent columns. In this case we read it as two 'partial' packets and then merge these into 1. Currently this only works for Packet16f (AVX512) and Packet8f (AVX2). We plan to add this for other packet types (such as Packet8d) also. This optimization shows significant speedup in SpatialConvolution with certain parameters. Some examples are below. Benchmark parameters are specified as: Batch size, Input dim, Depth, Num of filters, Filter dim Speedup numbers are specified for number of threads 1, 2, 4, 8, 16. AVX512: Parameters | Speedup (Num of threads: 1, 2, 4, 8, 16) ----------------------------|------------------------------------------ 128, 24x24, 3, 64, 5x5 |2.18X, 2.13X, 1.73X, 1.64X, 1.66X 128, 24x24, 1, 64, 8x8 |2.00X, 1.98X, 1.93X, 1.91X, 1.91X 32, 24x24, 3, 64, 5x5 |2.26X, 2.14X, 2.17X, 2.22X, 2.33X 128, 24x24, 3, 64, 3x3 |1.51X, 1.45X, 1.45X, 1.67X, 1.57X 32, 14x14, 24, 64, 5x5 |1.21X, 1.19X, 1.16X, 1.70X, 1.17X 128, 128x128, 3, 96, 11x11 |2.17X, 2.18X, 2.19X, 2.20X, 2.18X AVX2: Parameters | Speedup (Num of threads: 1, 2, 4, 8, 16) ----------------------------|------------------------------------------ 128, 24x24, 3, 64, 5x5 | 1.66X, 1.65X, 1.61X, 1.56X, 1.49X 32, 24x24, 3, 64, 5x5 | 1.71X, 1.63X, 1.77X, 1.58X, 1.68X 128, 24x24, 1, 64, 5x5 | 1.44X, 1.40X, 1.38X, 1.37X, 1.33X 128, 24x24, 3, 64, 3x3 | 1.68X, 1.63X, 1.58X, 1.56X, 1.62X 128, 128x128, 3, 96, 11x11 | 1.36X, 1.36X, 1.37X, 1.37X, 1.37X In the higher level benchmark cifar10, we observe a runtime improvement of around 6% for AVX512 on Intel Skylake server (8 cores). On lower level PackRhs micro-benchmarks specified in TensorFlow tensorflow/core/kernels/eigen_spatial_convolutions_test.cc, we observe the following runtime numbers: AVX512: Parameters | Runtime without patch (ns) | Runtime with patch (ns) | Speedup ---------------------------------------------------------------|----------------------------|-------------------------|--------- BM_RHS_NAME(PackRhs, 128, 24, 24, 3, 64, 5, 5, 1, 1, 256, 56) | 41350 | 15073 | 2.74X BM_RHS_NAME(PackRhs, 32, 64, 64, 32, 64, 5, 5, 1, 1, 256, 56) | 7277 | 7341 | 0.99X BM_RHS_NAME(PackRhs, 32, 64, 64, 32, 64, 5, 5, 2, 2, 256, 56) | 8675 | 8681 | 1.00X BM_RHS_NAME(PackRhs, 32, 64, 64, 30, 64, 5, 5, 1, 1, 256, 56) | 24155 | 16079 | 1.50X BM_RHS_NAME(PackRhs, 32, 64, 64, 30, 64, 5, 5, 2, 2, 256, 56) | 25052 | 17152 | 1.46X BM_RHS_NAME(PackRhs, 32, 256, 256, 4, 16, 8, 8, 1, 1, 256, 56) | 18269 | 18345 | 1.00X BM_RHS_NAME(PackRhs, 32, 256, 256, 4, 16, 8, 8, 2, 4, 256, 56) | 19468 | 19872 | 0.98X BM_RHS_NAME(PackRhs, 32, 64, 64, 4, 16, 3, 3, 1, 1, 36, 432) | 156060 | 42432 | 3.68X BM_RHS_NAME(PackRhs, 32, 64, 64, 4, 16, 3, 3, 2, 2, 36, 432) | 132701 | 36944 | 3.59X AVX2: Parameters | Runtime without patch (ns) | Runtime with patch (ns) | Speedup ---------------------------------------------------------------|----------------------------|-------------------------|--------- BM_RHS_NAME(PackRhs, 128, 24, 24, 3, 64, 5, 5, 1, 1, 256, 56) | 26233 | 12393 | 2.12X BM_RHS_NAME(PackRhs, 32, 64, 64, 32, 64, 5, 5, 1, 1, 256, 56) | 6091 | 6062 | 1.00X BM_RHS_NAME(PackRhs, 32, 64, 64, 32, 64, 5, 5, 2, 2, 256, 56) | 7427 | 7408 | 1.00X BM_RHS_NAME(PackRhs, 32, 64, 64, 30, 64, 5, 5, 1, 1, 256, 56) | 23453 | 20826 | 1.13X BM_RHS_NAME(PackRhs, 32, 64, 64, 30, 64, 5, 5, 2, 2, 256, 56) | 23167 | 22091 | 1.09X BM_RHS_NAME(PackRhs, 32, 256, 256, 4, 16, 8, 8, 1, 1, 256, 56) | 23422 | 23682 | 0.99X BM_RHS_NAME(PackRhs, 32, 256, 256, 4, 16, 8, 8, 2, 4, 256, 56) | 23165 | 23663 | 0.98X BM_RHS_NAME(PackRhs, 32, 64, 64, 4, 16, 3, 3, 1, 1, 36, 432) | 72689 | 44969 | 1.62X BM_RHS_NAME(PackRhs, 32, 64, 64, 4, 16, 3, 3, 2, 2, 36, 432) | 61732 | 39779 | 1.55X All benchmarks on Intel Skylake server with 8 cores. |