aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* Fix bugs in log1p and expm1 where repeated using statements would clobber ↵Gravatar Rasmus Munk Larsen2019-08-08
| | | | | | each other. Add specializations for complex types since std::log1p and std::exp1m do not support complex.
* Guard against repeated definition of EIGEN_MPL2_ONLYGravatar Rasmus Munk Larsen2019-08-07
|
* Disable tests for contraction with output kernels when using libxsmm, which ↵Gravatar Rasmus Munk Larsen2019-08-07
| | | | does not support this.
* [Eigen] Vectorize evaluation of coefficient-wise functions over tensor ↵Gravatar Rasmus Munk Larsen2019-08-07
| | | | | | | | | | | | blocks if the strides are known to be 1. Provides up to 20-25% speedup of the TF cross entropy op with AVX. A few benchmark numbers: name old time/op new time/op delta BM_Xent_16_10000_cpu 448µs ± 3% 389µs ± 2% -13.21% (p=0.008 n=5+5) BM_Xent_32_10000_cpu 575µs ± 6% 454µs ± 3% -21.00% (p=0.008 n=5+5) BM_Xent_64_10000_cpu 933µs ± 4% 712µs ± 1% -23.71% (p=0.008 n=5+5)
* Clean up unnecessary namespace specifiers in TensorBlock.h.Gravatar Rasmus Munk Larsen2019-08-07
|
* Fix doc regarding alignment and c++17Gravatar Gael Guennebaud2019-08-04
|
* Fix performance regressions due to ↵Gravatar Rasmus Munk Larsen2019-08-02
| | | | | | | | | | | | | | | | | https://bitbucket.org/eigen/eigen/pull-requests/662. The change caused the device struct to be copied for each expression evaluation, and caused, e.g., a 10% regression in the TensorFlow multinomial op on GPU: Benchmark Time(ns) CPU(ns) Iterations ---------------------------------------------------------------------- BM_Multinomial_gpu_1_100000_4 128173 231326 2922 1.610G items/s VS Benchmark Time(ns) CPU(ns) Iterations ---------------------------------------------------------------------- BM_Multinomial_gpu_1_100000_4 146683 246914 2719 1.509G items/s
* Added leading asterisk for Doxygen to consume as it was removing asterisk ↵Gravatar Kyle Vedder2019-07-18
| | | | intended to be part of the code.
* Fix typo in Umeyama method documentationGravatar Michael Grupp2019-07-17
|
* Remove {} accidentally added in previous commitGravatar Christoph Hertzberg2019-07-18
|
* Move variadic constructors outside `#ifndef EIGEN_PARSED_BY_DOXYGEN` block, ↵Gravatar Christoph Hertzberg2019-07-12
| | | | to make it actually appear in the generated documentation.
* Escape \# inside doxygen docuGravatar Christoph Hertzberg2019-07-12
|
* Build deprecated snippets with -DEIGEN_NO_DEPRECATED_WARNINGGravatar Christoph Hertzberg2019-07-12
| | | | Also, document LinSpaced only where it is implemented
* Fix expression evaluation heuristic for TensorSliceOpGravatar Eugene Zhulenev2019-07-09
|
* Fix compiler for unsigned integers.Gravatar Rasmus Munk Larsen2019-07-09
|
* Add outer/inner chipping optimization for chipping dimension specified at ↵Gravatar Eugene Zhulenev2019-07-03
| | | | runtime
* adding the EIGEN_DEVICE_FUNC attribute to the constCast routine.Gravatar Deven Desai2019-07-02
| | | | | | | | | | | | | | | | | | | | | | Not having this attribute results in the following failures in the `--config=rocm` TF build. ``` In file included from tensorflow/core/kernels/cross_op_gpu.cu.cc:20: In file included from ./tensorflow/core/framework/register_types.h:20: In file included from ./tensorflow/core/framework/numeric_types.h:20: In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1: In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:140: external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h:356:37: error: 'Eigen::constCast': no overloaded function has restriction specifiers that are compatible with the ambient context 'data' typename Storage::Type result = constCast(m_impl.data()); ^ external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h:356:37: error: 'Eigen::constCast': no overloaded function has restriction specifiers that are compatible with the ambient context 'data' external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h:148:56: note: in instantiation of member function 'Eigen::TensorEvaluator<const Eigen::TensorChippingOp<1, Eigen::TensorMap<Eigen::Tensor<int, 2, 1, long>, 16, MakePointer> >, Eigen::Gpu\ Device>::data' requested here return m_rightImpl.evalSubExprsIfNeeded(m_leftImpl.data()); ``` Adding the EIGEN_DEVICE_FUNC attribute resolves those errors
* Merged in codeplaysoftware/eigen (pull request PR-667)Gravatar Gael Guennebaud2019-07-02
|\ | | | | | | | | | | | | [SYCL] : Approved-by: Gael Guennebaud <g.gael@free.fr> Approved-by: Rasmus Larsen <rmlarsen@google.com>
* | Allocate non-const scalar buffer for block evaluation with DefaultDeviceGravatar Eugene Zhulenev2019-07-01
| |
| * [SYCL] :Gravatar Mehdi Goli2019-07-01
| | | | | | | | | | | | | | * Modifying TensorDeviceSYCL to use `EIGEN_THROW_X`. * Modifying TensorMacro to use `EIGEN_TRY/CATCH(X)` macro. * Modifying TensorReverse.h to use `EIGEN_DEVICE_REF` instead of `&`. * Fixing the SYCL device macro in SpecialFunctionsImpl.h.
* | PR 655: Fix missing Eigen namespace in MacrosGravatar Justin Carpentier2019-06-05
| |
* | [SYCL] Adding the SYCL memory model. The SYCL memory model provides :Gravatar Mehdi Goli2019-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 TensorReverse on GPU with m_stride[i]==0Gravatar Eugene Zhulenev2019-06-28
|
* Fix CUDA compilation error for pselect<half>.Gravatar Rasmus Munk Larsen2019-06-28
|
* Fix preprocessor condition to only generate a warning when calling ↵Gravatar Rasmus Munk Larsen2019-06-28
| | | | eigen::GpuDevice::synchronize() from device code, but not when calling from a non-GPU compilation unit.
* Remove comma causing warning in c++03 mode.Gravatar Rasmus Munk Larsen2019-06-28
|
* Merge with Eigen headGravatar Eugene Zhulenev2019-06-28
|\
* | Add block access to TensorReverseOp and make sure that TensorForcedEval uses ↵Gravatar Eugene Zhulenev2019-06-28
| | | | | | | | block access when preferred
| * [SYCL] This PR adds the minimum modifications to the Eigen unsupported ↵Gravatar Rasmus Munk Larsen2019-06-28
|/| | | | | | | | | | | | | | | | | | | module required to run it on devices supporting SYCL. * Abstracting the pointer type so that both SYCL memory and pointer can be captured. * Converting SYCL virtual pointer to SYCL device memory in Eigen evaluator class. * Binding SYCL placeholder accessor to command group handler by using bind method in Eigen evaluator node. * Adding SYCL macro for controlling loop unrolling. * Modifying the TensorDeviceSycl.h and SYCL executor method to adopt the above changes.
| * [SYCL] This PR adds the minimum modifications to the Eigen unsupported ↵Gravatar Mehdi Goli2019-06-28
|/ | | | | | | | | | module required to run it on devices supporting SYCL. * Abstracting the pointer type so that both SYCL memory and pointer can be captured. * Converting SYCL virtual pointer to SYCL device memory in Eigen evaluator class. * Binding SYCL placeholder accessor to command group handler by using bind method in Eigen evaluator node. * Adding SYCL macro for controlling loop unrolling. * Modifying the TensorDeviceSycl.h and SYCL executor method to adopt the above changes.
* [SYCL] This PR adds the minimum modifications to Eigen core required to run ↵Gravatar Mehdi Goli2019-06-27
| | | | | | | | Eigen unsupported modules on devices supporting SYCL. * Adding SYCL memory model * Enabling/Disabling SYCL backend in Core * Supporting Vectorization
* Remove extra comma (causes warnings in C++03)Gravatar Christoph Hertzberg2019-06-26
|
* Optimize evaluation strategy for TensorSlicingOp and TensorChippingOpGravatar Eugene Zhulenev2019-06-25
|
* fix for a ROCm/HIP specificcompile errror introduced by a recent commit.Gravatar Deven Desai2019-06-22
|
* Remove extra "one" in comment.Gravatar Rasmus Munk Larsen2019-06-20
|
* Update comment as suggested by tra@google.com.Gravatar Rasmus Munk Larsen2019-06-20
|
* Fix grammar.Gravatar Rasmus Munk Larsen2019-06-20
|
* Added comment explaining the surprising EIGEN_COMP_CLANG && !EIGEN_COMP_NVCC ↵Gravatar Rasmus Munk Larsen2019-06-20
| | | | clause.
* Fix CUDA build on Mac.Gravatar Rasmus Munk Larsen2019-06-20
|
* Various fixes for packet ops.Gravatar Rasmus Munk Larsen2019-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++-7Gravatar Christoph Hertzberg2019-06-14
| | | | | (grafted from 427f2f66d69ae9b124c2f8bcd927fb6e19e07e91 )
* Make is_valid_index_type return false for float and double when ↵Gravatar Rasmus Munk Larsen2019-06-05
| | | | EIGEN_HAS_TYPE_TRAITS is off.
* Add workaround for choosing the right include files with FP16C support with ↵Gravatar Rasmus Munk Larsen2019-06-05
| | | | clang.
* Merged in Artem-B/eigen (pull request PR-654)Gravatar Rasmus Larsen2019-05-31
|\ | | | | | | | | | | Minor build improvements Approved-by: Rasmus Larsen <rmlarsen@google.com>
* | Clean up CUDA/NVCC version macros and their use in Eigen, and a few other ↵Gravatar Rasmus Munk Larsen2019-05-31
| | | | | | | | CUDA build failures.
| * Minor build improvementsGravatar tra2019-05-31
|/ | | | | | | | * Allow specifying multiple GPU architectures. E.g.: cmake -DEIGEN_CUDA_COMPUTE_ARCH="60;70" * Pass CUDA SDK path to clang. Without it it will default to /usr/local/cuda which may not be the right location, if cmake was invoked with -DCUDA_TOOLKIT_ROOT_DIR=/some/other/CUDA/path
* digits10() needs to return an integerGravatar Christoph Hertzberg2019-05-31
| | | | Problem reported on https://stackoverflow.com/questions/56395899
* Merged in deven-amd/eigen-hip-fix-190524 (pull request PR-649)Gravatar Rasmus Larsen2019-05-24
|\ | | | | | | fix for HIP build errors that were introduced by a commit earlier this week
| * fix for HIP build errors that were introduced by a commit earlier this weekGravatar Deven Desai2019-05-24
| |
* | Use pade for matrix exponential also for complex values.Gravatar Michael Tesch2019-05-08
|/