aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen
Commit message (Collapse)AuthorAge
* updates based on PR feedbackGravatar Deven Desai2018-06-14
| | | | | | | | | | | | | | | | | There are two major changes (and a few minor ones which are not listed here...see PR discussion for details) 1. Eigen::half implementations for HIP and CUDA have been merged. This means that - `CUDA/Half.h` and `HIP/hcc/Half.h` got merged to a new file `GPU/Half.h` - `CUDA/PacketMathHalf.h` and `HIP/hcc/PacketMathHalf.h` got merged to a new file `GPU/PacketMathHalf.h` - `CUDA/TypeCasting.h` and `HIP/hcc/TypeCasting.h` got merged to a new file `GPU/TypeCasting.h` After this change the `HIP/hcc` directory only contains one file `math_constants.h`. That will go away too once that file becomes a part of the HIP install. 2. new macros EIGEN_GPUCC, EIGEN_GPU_COMPILE_PHASE and EIGEN_HAS_GPU_FP16 have been added and the code has been updated to use them where appropriate. - `EIGEN_GPUCC` is the same as `(EIGEN_CUDACC || EIGEN_HIPCC)` - `EIGEN_GPU_DEVICE_COMPILE` is the same as `(EIGEN_CUDA_ARCH || EIGEN_HIP_DEVICE_COMPILE)` - `EIGEN_HAS_GPU_FP16` is the same as `(EIGEN_HAS_CUDA_FP16 or EIGEN_HAS_HIP_FP16)`
* moving Half headers from CUDA dir to GPU dir, removing the HIP versionsGravatar Deven Desai2018-06-13
|
* syncing this fork with upstreamGravatar Deven Desai2018-06-13
|\
| * Merged in mfigurnov/eigen/gamma-der-a (pull request PR-403)Gravatar Benoit Steiner2018-06-11
| |\ | | | | | | | | | | | | | | | Derivative of the incomplete Gamma function and the sample of a Gamma random variable Approved-by: Benoit Steiner <benoit.steiner.goog@gmail.com>
| * | bug #1531: expose NumDimensions for solve and sparse expressions.Gravatar Gael Guennebaud2018-06-08
| | |
| * | bug #1531: expose NumDimensions for compatibility with TensorGravatar Gael Guennebaud2018-06-08
| | |
| * | bug #1550: prevent avoidable memory allocation in RealSchurGravatar Gael Guennebaud2018-06-08
| | |
| * | Don't use std::equal_to inside cuda kernels since it's not supported.Gravatar Benoit Steiner2018-06-07
| | |
| * | Missing line during manual rebase of PR-374Gravatar Christoph Hertzberg2018-06-07
| | |
| | * Merge from eigen/eigenGravatar Michael Figurnov2018-06-07
| | |\
| | * | Derivative of the incomplete Gamma function and the sample of a Gamma random ↵Gravatar Michael Figurnov2018-06-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | variable. In addition to igamma(a, x), this code implements: * igamma_der_a(a, x) = d igamma(a, x) / da -- derivative of igamma with respect to the parameter * gamma_sample_der_alpha(alpha, sample) -- reparameterization derivative of a Gamma(alpha, 1) random variable sample with respect to the alpha parameter The derivatives are computed by forward mode differentiation of the igamma(a, x) code. Although gamma_sample_der_alpha can be implemented via igamma_der_a, a separate function is more accurate and efficient due to analytical cancellation of some terms. All three functions are implemented by a method parameterized with "mode" that always computes the derivatives, but does not return them unless required by the mode. The compiler is expected to (and, based on benchmarks, does) skip the unnecessary computations depending on the mode.
* | | | Adding support for using Eigen in HIP kernels.Gravatar Deven Desai2018-06-06
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | This commit enables the use of Eigen on HIP kernels / AMD GPUs. Support has been added along the same lines as what already exists for using Eigen in CUDA kernels / NVidia GPUs. Application code needs to explicitly define EIGEN_USE_HIP when using Eigen in HIP kernels. This is because some of the CUDA headers get picked up by default during Eigen compile (irrespective of whether or not the underlying compiler is CUDACC/NVCC, for e.g. Eigen/src/Core/arch/CUDA/Half.h). In order to maintain this behavior, the EIGEN_USE_HIP macro is used to switch to using the HIP version of those header files (see Eigen/Core and unsupported/Eigen/CXX11/Tensor) Use the "-DEIGEN_TEST_HIP" cmake option to enable the HIP specific unit tests.
| * | Adding EIGEN_DEVICE_FUNC to Products, especially Dense2Dense AssignmentGravatar Robert Lukierski2018-03-14
| |/ | | | | | | | | specializations. Otherwise causes problems with small fixed size matrix multiplication (call to 0x00 in call_assignment_no_alias in debug mode or trap in release with CUDA 9.1).
| * Fix warningGravatar Gael Guennebaud2018-06-07
| |
| * Fix MSVC warning C4290: C++ exception specification ignored except to ↵Gravatar Gael Guennebaud2018-06-07
| | | | | | | | indicate a function is not __declspec(nothrow)
| * Avoid unnecessary C++11 dependencyGravatar Christoph Hertzberg2018-06-07
| |
| * Fix typos found using codespellGravatar Gael Guennebaud2018-06-07
| |
| * Set EIGEN_IDEAL_MAX_ALIGN_BYTES correctly for AVX512 buildsGravatar Mark D Ryan2018-05-17
| | | | | | | | | | | | | | | | | | | | | | | | bug #1548 The macro EIGEN_IDEAL_MAX_ALIGN_BYTES is being incorrectly set to 32 on AVX512 builds. It should be set to 64. In the current code it is only set to 64 if the macro EIGEN_VECTORIZE_AVX512 is defined. This macro does get defined in AVX512 builds in Core, but only after Macros.h, the file that defines EIGEN_IDEAL_MAX_ALIGN_BYTES, has been included. This commit fixes the issue by setting EIGEN_IDEAL_MAX_ALIGN_BYTES to 64 if __AVX512F__ is defined.
| * Fix compilation with MSVC by reverting to char* for _mm_prefetch except for ↵Gravatar Gael Guennebaud2018-06-07
|/ | | | PGI (the later being the one that has the wrong prototype).
* Exponentially scaled modified Bessel functions of order zero and one.Gravatar Michael Figurnov2018-05-31
| | | | | | The functions are conventionally called i0e and i1e. The exponentially scaled version is more numerically stable. The standard Bessel functions can be obtained as i0(x) = exp(|x|) i0e(x) The code is ported from Cephes and tested against SciPy.
* Define pcast<> for SSE types even when AVX is enabled. (otherwise float are ↵Gravatar Gael Guennebaud2018-05-29
| | | | silently reinterpreted as int instead of being converted)
* Fix compilation and SSE support with PGI compilerGravatar Gael Guennebaud2018-05-29
|
* Fix internal::is_integral<size_t/ptrdiff_t> with MSVC 2013 and older.Gravatar Gael Guennebaud2018-05-22
|
* Workaround a MSVC 2013 compilation issue with MatrixBase(Index,int)Gravatar Gael Guennebaud2018-05-22
|
* fix stupid typoGravatar Gael Guennebaud2018-05-18
|
* is_convertible<T,Index> does not seems to work well with MSVC 2013, so let's ↵Gravatar Gael Guennebaud2018-05-18
| | | | rather use __is_enum(T) for old MSVC versions
* add some internal checksGravatar Gael Guennebaud2018-05-18
|
* Make sparse QR result sizes consistent with dense QR, with the following rules:Gravatar Jeff Trull2018-02-15
| | | | | | | | 1) Q is always square 2) Q*R*P' is valid and recovers the original matrix This implies that the size of Q is the number of rows in the original matrix, square, and that the size of R is the size of the original matrix.
* bug #1544: Generate correct Q matrix in complex case. Original patch was by ↵Gravatar Christoph Hertzberg2018-05-17
| | | | Jeff Trull in PR-386.
* Fix "suggest parentheses around comparison" warningGravatar Christoph Hertzberg2018-05-15
|
* Fix compilation with NEON+MSVCGravatar Gael Guennebaud2018-04-26
|
* Add multi-threading for sparse-row-major * dense-row-majorGravatar Gael Guennebaud2018-04-25
|
* bug #1428: atempt to make NEON vectorization compilable by MSVC.Gravatar Gael Guennebaud2018-04-24
| | | | The workaround is to wrap NEON packet types to make them different c++ types.
* fix AVX512 plogGravatar Benoit Steiner2018-04-23
|\
* | Add specializations of is_arithmetic for long long in c++11Gravatar Gael Guennebaud2018-04-23
| |
* | workaround MSVC 2013 compilation issue (ambiguous call)Gravatar Gael Guennebaud2018-04-23
| |
* | typo in docGravatar Gael Guennebaud2018-04-23
| |
* | bug #1543: fix linear indexing in generic block evaluation (this completes ↵Gravatar Gael Guennebaud2018-04-23
| | | | | | | | | | | | the fix in commit 12efc7d41b80259b996be5781bf596c249c90d3f )
* | Disable -Wshadow when compiling with g++Gravatar Christoph Hertzberg2018-04-21
| |
| * fix AVX512 plogGravatar Jayaram Bobba2018-04-20
|/
* fix const cast in NEONGravatar Gael Guennebaud2018-04-18
|
* Cast zeros to Scalar in RealSchurGravatar Dmitriy Korchemkin2018-04-18
|
* Renamed .trans() et al. to .reverseFlag() et at. Adapted documentation of ↵Gravatar Christoph Hertzberg2018-04-17
| | | | .setReverseFlag()
* Add a specialization of Eigen::numext::conj for std::complex<T> to be used ↵Gravatar nicolov2018-04-13
| | | | | | | when compiling a cuda kernel. This fixes the compilation of TensorFlow 1.4 with clang 6.0 used as CUDA compiler with libc++. This follows the previous change in https://bitbucket.org/eigen/eigen/commits/2a69290ddb165b7103c87ba8f5b257eca23f62aa , which mentions OSX (I guess because it uses libc++ too).
* bug #1493: Make representation of HouseholderSequence consistent and working ↵Gravatar Christoph Hertzberg2018-04-15
| | | | for complex numbers. Made corresponding unit test actually test that. Also simplify implementation of QR decompositions
* Make hypot_impl compile again for types with expression-templates (e.g., ↵Gravatar Christoph Hertzberg2018-04-13
| | | | boost::multiprecision)
* SelfAdjointView<...,Mode> causes a static assert since commit ↵Gravatar Christoph Hertzberg2018-04-13
| | | | d820ab9edc0b38af4cdb3d545714a0c9083e5a78
* fix linking issueGravatar Gael Guennebaud2018-04-13
|
* bug #1520: workaround some -Wfloat-equal warnings by calling std::equal_toGravatar Gael Guennebaud2018-04-11
|
* Umfpack: UF_long has been removed in recent versions of suitesparse, and fix ↵Gravatar Gael Guennebaud2018-04-11
| | | | a few long-to-int conversions issues.