Commit Graph

204 Commits

Author SHA1 Message Date
Benoit Steiner
0e5fed74e7 Worked around some constexpr related bugs in nvcc 7 2015-05-28 10:14:38 -07:00
Benoit Steiner
f13b3d4433 Added missing include files 2015-05-28 07:57:28 -07:00
Benoit Steiner
abec18bae0 Fixed potential compilation error 2015-05-26 10:11:15 -07:00
Benoit Steiner
9df186c140 Added a few more missing EIGEN_DEVICE_FUNC statements 2015-05-26 09:47:48 -07:00
Benoit Steiner
466bcc589e Added a few missing EIGEN_DEVICE_FUNC statements 2015-05-26 09:37:23 -07:00
Benoit Steiner
6b800744ce Moved away from std::async and std::future as the underlying mechnism for the thread pool device. On several platforms, the functions passed to std::async are not scheduled in the order in which they are given to std::async, which leads to massive performance issues in the contraction code.
Instead we now have a custom thread pool that ensures that the functions are picked up by the threads in the pool in the order in which they are enqueued in the pool.
2015-05-20 13:52:07 -07:00
Benoit Steiner
2451679951 Avoid using the cuda memcpy for small tensor slices since the memcpy kernel is very expensive to launch 2015-05-19 15:19:01 -07:00
Benoit Steiner
a81d17b73a Added new version of the TensorIntDiv class optimized for 32 bit signed integers. It saves 1 register on CPU and 2 on GPU. 2015-05-19 13:59:52 -07:00
Benoit Steiner
fd1d4bd86c Silenced a few compilation warnings 2015-04-22 16:16:15 -07:00
Benoit Steiner
91359e1d0a Added the ability to generate a tensor from a custom user defined 'generator'. This simplifies the creation of constant tensors initialized using specific regular patterns.
Created a gaussian window generator as a first use case.
2015-04-22 11:14:58 -07:00
Benoit Steiner
8838ed39f4 Added support for non-deterministic random number generation on GPU 2015-04-22 09:14:38 -07:00
Benoit Steiner
dfa991cbae Make sure that the copy constructor of the evaluator is always called before launching the evaluation of a tensor expression on a cuda device. 2015-04-21 16:15:45 -07:00
Benoit Steiner
e709488361 Silenced a few compilation warnings 2015-04-20 17:39:45 -07:00
Benoit Steiner
10a1f81822 Sped up the assignment of a tensor to a tensor slice, as well as the assigment of a constant slice to a tensor 2015-04-20 17:34:11 -07:00
Benoit Steiner
43eb2ca6e1 Improved the tensor random number generators:
* Use a mersenne twister whenebver possible instead of the default entropy source since the default one isn't very good at all.
 * Added the ability to seed the generators with a time based seed to make them non-deterministic.
2015-04-20 09:24:09 -07:00
Benoit Steiner
70bc3b0668 Silenced a warning in the tensor code 2015-04-19 12:38:00 -07:00
Benoit Steiner
3220eb2b93 Fixed some compilation warnings 2015-04-19 12:36:35 -07:00
Benoit Steiner
3b429b71e6 Fixed compilation warning triggered by gcc 4.7 2015-04-18 13:41:06 -07:00
Benoit Steiner
9c6b82bcd5 Use ptrdiff_t instead of size_t to encode fixed sizes. This silences several clang compilation warnings
(transplanted from 4400e4436ac7c5bbd305a03c21aa4bce24ae199b)
2015-04-17 09:12:18 -07:00
Benoit Steiner
0f82399fe9 Pulled latest changes from trunk 2015-04-14 19:13:34 -07:00
Benoit Steiner
1de49ef4c2 Fixed a bug when chipping tensors laid out in row major order. 2015-04-07 10:44:13 -07:00
Benoit Steiner
a1f1e1e51d Fixed the order of 2 #includes 2015-04-06 10:41:39 -07:00
Benoit Steiner
74e558cfa8 Pulled latest updates from trunk 2015-04-01 23:24:11 -07:00
Benoit Steiner
03a0df2010 Fixed some compilation warnings triggered by pre-cxx11 comoilers 2015-04-01 22:51:33 -07:00
Benoit Steiner
b8b7807269 Fixed some compilation warning triggered by the cxx11 emulation code 2015-04-01 21:48:18 -07:00
Benoit Steiner
383b6dfafe Fixed 2 typos 2015-04-01 16:44:36 -07:00
Benoit Steiner
68d4afe985 Added support for convolution of tensors laid out in RowMajor mode 2015-03-31 09:07:09 -07:00
Benoit Steiner
f873686602 Added documentation for the convolution operation 2015-03-31 08:27:23 -07:00
Benoit Steiner
35722fa022 Made the index type a template parameter of the tensor class instead of encoding it in the options. 2015-03-30 14:55:54 -07:00
Benoit Steiner
71950f02e5 Deleted unnecessary semicolons 2015-03-30 14:49:10 -07:00
Benoit Steiner
4df8b5a75e Avoid making an unecessary copy of the tensor expression when evaluating it on a GPU device 2015-03-25 14:36:07 -07:00
Benoit Steiner
b3343bfdae Fixed the vectorized implementation of the Tensor select() method 2015-03-25 13:25:53 -07:00
Benoit Steiner
ccf290a65c Cleaned up the TensorDevice code a little bit. 2015-03-25 12:37:38 -07:00
Benoit Steiner
d3f7915aeb Pulled latest update from the eigen main codebase 2015-03-24 13:12:14 -07:00
Benoit Steiner
a6a628ca6b Added the -= operator to the device classes 2015-03-19 23:22:19 -07:00
Benoit Steiner
e134226a03 Fixed a bug in the handling of packets by the MeanReducer 2015-03-19 23:11:42 -07:00
Benoit Steiner
cc0f89eb3b Changed the way lvalue operations are declared in TensorBase: this fixes constness isses that prevented some expressions mixing lvalues and rvalues from compiling. 2015-03-17 09:57:20 -07:00
Benoit Steiner
f218c0181d Fixes the Lvalue computation by actually setting the LvalueBit properly when instantiating tensors of const T. Added a test to check the fix. 2015-03-16 13:05:00 -07:00
Benoit Steiner
b0f2b6f297 Updated the tensor type casting code as follow: in the case where TgtRatio < SrcRatio, disable the vectorization of the source expression unless is has direct-access. 2015-03-02 10:11:40 -08:00
Benoit Steiner
d9cb604a5d Disabled the use of aligned memory loads when converting a tensor from float to doubles since alignment can't always be guaranteed. 2015-03-02 09:41:36 -08:00
Benoit Steiner
ae73859a0a Fixed incorrect assertion 2015-02-28 08:02:02 -08:00
Benoit Steiner
bb483313f6 Fixed another batch of compilation warnings 2015-02-28 02:32:46 -08:00
Benoit Steiner
1a7b84dc75 Silenced a few compilation warnings 2015-02-28 01:45:15 -08:00
Benoit Steiner
cf1eea11de Fixed compilation warnings 2015-02-27 23:52:02 -08:00
Benoit Steiner
4250a0cab0 Fixed compilation warnings 2015-02-27 21:59:10 -08:00
Benoit Steiner
306fceccbe Pulled latest updates from trunk 2015-02-27 13:05:26 -08:00
Benoit Steiner
2386fc8528 Added support for 32bit index on a per tensor/tensor expression. This enables us to use 32bit indices to evaluate expressions on GPU faster while keeping the ability to use 64 bit indices to manipulate large tensors on CPU in the same binary. 2015-02-27 12:57:13 -08:00
Benoit Steiner
90f4e90f1d Fixed off-by-one error that prevented the evaluation of small tensor expressions from being vectorized 2015-02-27 09:22:37 -08:00
Benoit Steiner
573b377110 Added support for vectorized type casting of tensors 2015-02-27 08:46:04 -08:00
Benoit Steiner
f074bb4b5f Fixed another compilation problem with TensorIntDiv.h 2015-02-26 11:14:23 -08:00