aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported/Eigen/CXX11/src
Commit message (Collapse)AuthorAge
...
* remove duplicate pset1 for half and add some comments about why we need ↵Gravatar Sami Kama2020-03-10
| | | | expose pmul/add/div/min/max on host
* Avoid a division in NonBlockingThreadPool::Steal.Gravatar Ilya Tokar2020-02-14
| | | | | | | Looking at profiles we spend ~10-20% of Steal on simply computing random % size. We can reduce random 32-bit int into [0, size) range with a single multiplication and shift. This transformation is described in https://lemire.me/blog/2016/06/27/a-fast-alternative-to-the-modulo-reduction/
* Fail at compile time if default executor tries to use non-default deviceGravatar Eugene Zhulenev2020-02-06
|
* Remove dead code from TensorReduction.hGravatar Eugene Zhulenev2020-01-29
|
* Convert StridedLinearBufferCopy::Kind to enum classGravatar Eugene Zhulenev2020-01-13
|
* Bug #1785: Introduce numext::rint.Gravatar Ilya Tokar2020-01-07
| | | | | | This provides a new op that matches std::rint and previous behavior of pround. Also adds corresponding unsupported/../Tensor op. Performance is the same as e. g. floor (tested SSE/AVX).
* [SYCL Backend]Gravatar mehdi-goli2020-01-07
| | | | | | | * Adding Missing operations for vector comparison in SYCL. This caused compiler error for vector comparison when compiling SYCL * Fixing the compiler error for placement new in TensorForcedEval.h This caused compiler error when compiling SYCL backend * Reducing the SYCL warning by removing the abort function inside the kernel * Adding Strong inline to functions inside SYCL interop.
* Fix for HIP breakage - 191220Gravatar Deven Desai2019-12-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | The breakage was introduced by the following commit : https://gitlab.com/libeigen/eigen/commit/ae07801dd8d295657f28b006e1e4999edf835052 After the commit, HIPCC errors out on some tests with the following error ``` Building HIPCC object unsupported/test/CMakeFiles/cxx11_tensor_device_1.dir/cxx11_tensor_device_1_generated_cxx11_tensor_device.cu.o In file included from /home/rocm-user/eigen/unsupported/test/cxx11_tensor_device.cu:17: In file included from /home/rocm-user/eigen/unsupported/Eigen/CXX11/Tensor:100: /home/rocm-user/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h:129:12: error: no matching constructor for initialization of 'Eigen::internal::TensorBlockResourceRequirements' return {merge(lhs.shape_type, rhs.shape_type), // shape_type ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/rocm-user/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h:75:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided struct TensorBlockResourceRequirements { ^ /home/rocm-user/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h:75:8: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 3 were provided /home/rocm-user/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h:75:8: note: candidate constructor (the implicit copy constructor) not viable: requires 5 arguments, but 3 were provided /home/rocm-user/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h:75:8: note: candidate constructor (the implicit default constructor) not viable: requires 0 arguments, but 3 were provided ... ... ``` The fix is to explicitly decalre the (implicitly called) constructor as a device func
* Hide recursive meta templates from DoxygenGravatar Christoph Hertzberg2019-12-19
|
* Fix trivial shadow warningGravatar Christoph Hertzberg2019-12-19
|
* Fix TensorPadding bug in squeezed reads from inner dimension Gravatar Eugene Zhulenev2019-12-19
|
* Return const data pointer from TensorRef evaluator.data()Gravatar Eugene Zhulenev2019-12-18
|
* Tensor block evaluation cost modelGravatar Eugene Zhulenev2019-12-18
|
* Reduce block evaluation overhead for small tensor expressionsGravatar Eugene Zhulenev2019-12-17
|
* Initialize non-trivially constructible types when allocating a temp buffer.Gravatar Eugene Zhulenev2019-12-12
|
* Squeeze reads from two inner dimensions in TensorPaddingGravatar Eugene Zhulenev2019-12-11
|
* Add back accidentally deleted default constructor to ↵Gravatar Eugene Zhulenev2019-12-11
| | | | TensorExecutorTilingContext.
* Remove block memory allocation required by removed block evaluation APIGravatar Eugene Zhulenev2019-12-10
|
* Remove V2 suffix from TensorBlockGravatar Eugene Zhulenev2019-12-10
|
* Remove TensorBlock.h and old TensorBlock/BlockMapperGravatar Eugene Zhulenev2019-12-10
|
* Fix for HIP breakage detected on 191210Gravatar Deven Desai2019-12-10
| | | | | | | | The following commit introduces compile errors when running eigen with hipcc https://gitlab.com/libeigen/eigen/commit/2918f85ba976dbfbf72f7d4c1961a577f5850148 hipcc errors out because it requies the device attribute on the methods within the TensorBlockV2ResourceRequirements struct instroduced by the commit above. The fix is to add the device attribute to those methods
* Do not use std::vector in getResourceRequirementsGravatar Eugene Zhulenev2019-12-09
|
* Undo the block size change.Gravatar Artem Belevich2019-12-09
| | | | .z *is* used by the EigenContractionKernelInternal().
* Add async evaluation support to TensorSelectOpGravatar Eugene Zhulenev2019-12-09
|
* Add recursive work splitting to EvalShardedByInnerDimContextGravatar Eugene Zhulenev2019-12-05
|
* Improve performance of contraction kernelsGravatar Artem Belevich2019-12-05
| | | | | | | | | | * Force-inline implementations. They pass around pointers to shared memory blocks. Without inlining compiler must operate via generic pointers. Inlining allows compiler to detect that we're operating on shared memory which allows generation of substantially faster code. * Fixed a long-standing typo which resulted in launching 8x more kernels than we needed (.z dimension of the block is unused by the kernel).
* Capture TensorMap by value inside tensor expression ASTGravatar Eugene Zhulenev2019-12-03
|
* Remove __host__ annotation for device-only function.Gravatar Rasmus Munk Larsen2019-12-03
|
* Use EIGEN_DEVICE_FUNC macro instead of __device__.Gravatar Rasmus Munk Larsen2019-12-03
|
* [SYCL] Rebasing the SYCL support branch on top of the Einge upstream master ↵Gravatar Mehdi Goli2019-11-28
| | | | | | | | | | | | | | | | | | | | | | branch. * Unifying all loadLocalTile from lhs and rhs to an extract_block function. * Adding get_tensor operation which was missing in TensorContractionMapper. * Adding the -D method missing from cmake for Disable_Skinny Contraction operation. * Wrapping all the indices in TensorScanSycl into Scan parameter struct. * Fixing typo in Device SYCL * Unifying load to private register for tall/skinny no shared * Unifying load to vector tile for tensor-vector/vector-tensor operation * Removing all the LHS/RHS class for extracting data from global * Removing Outputfunction from TensorContractionSkinnyNoshared. * Combining the local memory version of tall/skinny and normal tensor contraction into one kernel. * Combining the no-local memory version of tall/skinny and normal tensor contraction into one kernel. * Combining General Tensor-Vector and VectorTensor contraction into one kernel. * Making double buffering optional for Tensor contraction when local memory is version is used. * Modifying benchmark to accept custom Reduction Sizes * Disabling AVX optimization for SYCL backend on the host to allow SSE optimization to the host * Adding Test for SYCL * Modifying SYCL CMake
* Add async evaluation support to TensorReverseGravatar Eugene Zhulenev2019-11-26
|
* Add async evaluation support to TensorPadding/TensorImagePatch/TensorShufflingGravatar Eugene Zhulenev2019-11-26
|
* Remove legacy block evaluation supportGravatar Eugene Zhulenev2019-11-12
|
* Fix a race in async tensor evaluation: Don't run on_done() until after ↵Gravatar Rasmus Munk Larsen2019-11-11
| | | | device.deallocate() / evaluator.cleanup() complete, since the device might be destroyed after on_done() runs.
* Break loop dependence in TensorGenerator block accessGravatar Eugene Zhulenev2019-11-11
|
* Add EIGEN_HAS_INTRINSIC_INT128 macroGravatar Rasmus Munk Larsen2019-11-06
| | | | Add a new EIGEN_HAS_INTRINSIC_INT128 macro, and use this instead of __SIZEOF_INT128__. This fixes related issues with TensorIntDiv.h when building with Clang for Windows, where support for 128-bit integer arithmetic is advertised but broken in practice.
* Rollback or PR-746 and partial rollback of ↵Gravatar Rasmus Munk Larsen2019-11-05
| | | | | | | | https://bitbucket.org/eigen/eigen/commits/668ab3fc474e54c7919eda4fbaf11f3a99246494 . std::array is still not supported in CUDA device code on Windows.
* Remove internal::smart_copy and replace with std::copyGravatar Eugene Zhulenev2019-10-29
|
* Fix CXX11Meta compilation with MSVCGravatar Eugene Zhulenev2019-10-28
|
* Prevent potential ODR in TensorExecutorGravatar Eugene Zhulenev2019-10-28
|
* This PR fixes:Gravatar Mehdi Goli2019-10-23
| | | | | * The specialization of array class in the different namespace for GCC<=6.4 * The implicit call to `std::array` constructor using the initializer list for GCC <=6.1
* Merged in deven-amd/eigen-hip-fix-191018 (pull request PR-738)Gravatar Rasmus Larsen2019-10-22
|\ | | | | | | Fix for the HIP build+test errors.
* | Add block evaluation V2 to TensorAsyncExecutor.Gravatar Rasmus Munk Larsen2019-10-22
| | | | | | | | Add async evaluation to a number of ops.
| * Fix for the HIP build+test errors.Gravatar Deven Desai2019-10-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The errors were introduced by this commit : After the above mentioned commit, some of the tests started failing with the following error ``` Built target cxx11_tensor_reduction Building HIPCC object unsupported/test/CMakeFiles/cxx11_tensor_reduction_gpu_5.dir/cxx11_tensor_reduction_gpu_5_generated_cxx11_tensor_reduction_gpu.cu.o In file included from /home/rocm-user/eigen/unsupported/test/cxx11_tensor_reduction_gpu.cu:16: In file included from /home/rocm-user/eigen/unsupported/Eigen/CXX11/Tensor:117: /home/rocm-user/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBlockV2.h:155:5: error: the field type is not amp-compatible DestinationBufferKind m_kind; ^ /home/rocm-user/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBlockV2.h:211:3: error: the field type is not amp-compatible DestinationBuffer m_destination; ^ ``` For some reason HIPCC does not like device code to contain enum types which do not have the base-type explicitly declared. The fix is trivial, explicitly state "int" as the basetype
* | Drop support for c++03 in Eigen tensor. Get rid of some code used to emulate ↵Gravatar Rasmus Munk Larsen2019-10-18
|/ | | | c++11 functionality with older compilers.
* Propagate block evaluation preference through rvalue tensor expressionsGravatar Eugene Zhulenev2019-10-17
|
* Cleanup Tensor block destination and materialized block storage allocationGravatar Eugene Zhulenev2019-10-16
|
* TensorBroadcasting support for random/uniform blocksGravatar Eugene Zhulenev2019-10-16
|
* Block evaluation for TensorGenerator/TensorReverse/TensorShufflingGravatar Eugene Zhulenev2019-10-14
|
* Block evaluation for TensorGenerator + TensorReverse + fixed bug in tensor ↵Gravatar Eugene Zhulenev2019-10-10
| | | | reverse op