Mehdi Goli
|
c6f7b33834
|
Applying Benoit's comment. Embedding synchronisation inside device memcpy so there is no need to externally call synchronise() for device memcopy.
|
2017-01-18 10:45:28 +00:00 |
|
Mehdi Goli
|
e46e722381
|
Adding Tensor ReverseOp; TensorStriding; TensorConversionOp; Modifying Tensor Contractsycl to be located in any place in the expression tree.
|
2017-01-16 13:58:49 +00:00 |
|
Luke Iwanski
|
90c5bc8d64
|
Fixes auto appearance in functor template argument for reduction.
|
2017-01-04 22:18:44 +00:00 |
|
Mehdi Goli
|
8b1c2108ba
|
Reverting asynchronous exec to Synchronous exec regarding random race condition.
|
2016-12-22 16:45:38 +00:00 |
|
Benoit Steiner
|
660da83e18
|
Pulled latest update from trunk
|
2016-12-21 16:43:27 -08:00 |
|
Benoit Steiner
|
4236aebe10
|
Simplified the contraction code`
|
2016-12-21 16:42:56 -08:00 |
|
Benoit Steiner
|
3cfa16f41d
|
Merged in benoitsteiner/opencl (pull request PR-279)
Fix for auto appearing in functor template argument.
|
2016-12-21 15:08:54 -08:00 |
|
Benoit Steiner
|
519d63d350
|
Added support for libxsmm kernel in multithreaded contractions
|
2016-12-21 15:06:06 -08:00 |
|
Benoit Steiner
|
f9eff17e91
|
Leverage libxsmm kernels within signle threaded contractions
|
2016-12-21 12:32:06 -08:00 |
|
Luke Iwanski
|
c55ecfd820
|
Fix for auto appearing in functor template argument.
|
2016-12-21 15:42:51 +00:00 |
|
Luke Iwanski
|
29186f766f
|
Fixed order of initialisation in ExecExprFunctorKernel functor.
|
2016-12-20 21:32:42 +00:00 |
|
Luke Iwanski
|
8245851d1b
|
Matching parameters order between lambda and the functor.
|
2016-12-20 16:18:15 +00:00 |
|
Benoit Steiner
|
70d0172f0c
|
Merged eigen/eigen into default
|
2016-12-16 17:37:04 -08:00 |
|
Benoit Steiner
|
8910442e19
|
Fixed memcpy, memcpyHostToDevice and memcpyDeviceToHost for Sycl.
|
2016-12-16 15:45:04 -08:00 |
|
Luke Iwanski
|
54db66c5df
|
struct -> class in order to silence compilation warning.
|
2016-12-16 20:25:20 +00:00 |
|
Mehdi Goli
|
35bae513a0
|
Converting all parallel for lambda to functor in order to prevent kernel duplication name error; adding tensorConcatinationOp backend for sycl.
|
2016-12-16 19:46:45 +00:00 |
|
Mehdi Goli
|
c5e8546306
|
Adding asynchandler to sycl queue as lack of it can cause undefined behaviour.
|
2016-12-15 16:59:57 +00:00 |
|
Benoit Steiner
|
2c2e218471
|
Avoid using #define since they can conflict with user code
|
2016-12-14 19:49:15 -08:00 |
|
Benoit Steiner
|
3beb180ee5
|
Don't call EnvThread::OnCancel by default since it doesn't do anything.
|
2016-12-14 18:33:39 -08:00 |
|
Benoit Steiner
|
9ff5d0f821
|
Merged eigen/eigen into default
|
2016-12-14 17:32:16 -08:00 |
|
Mehdi Goli
|
730eb9fe1c
|
Adding asynchronous execution as it improves the performance.
|
2016-12-14 17:38:53 +00:00 |
|
Mehdi Goli
|
2d4a091beb
|
Adding tensor contraction operation backend for Sycl; adding test for contractionOp sycl backend; adding temporary solution to prevent memory leak in buffer; cleaning up cxx11_tensor_buildins_sycl.h
|
2016-12-14 15:30:37 +00:00 |
|
Benoit Steiner
|
a432fc102d
|
Moved the choice of ThreadPool to unsupported/Eigen/CXX11/ThreadPool
|
2016-12-12 15:24:16 -08:00 |
|
Benoit Steiner
|
8ae68924ed
|
Made ThreadPoolInterface::Cancel() an optional functionality
|
2016-12-12 11:58:38 -08:00 |
|
Benoit Steiner
|
76fca22134
|
Use a more accurate timer to sleep on Linux systems.
|
2016-12-09 15:12:24 -08:00 |
|
Benoit Steiner
|
4deafd35b7
|
Introduce a portable EIGEN_SLEEP macro.
|
2016-12-09 14:52:15 -08:00 |
|
Benoit Steiner
|
aafa97f4d2
|
Fixed build error with MSVC
|
2016-12-09 14:42:32 -08:00 |
|
Benoit Steiner
|
2f5b7a199b
|
Reworked the threadpool cancellation mechanism to not depend on pthread_cancel since it turns out that pthread_cancel doesn't work properly on numerous platforms.
|
2016-12-09 13:05:14 -08:00 |
|
Benoit Steiner
|
28ee8f42b2
|
Added a Flush method to the RunQueue
|
2016-12-08 14:07:56 -08:00 |
|
Benoit Steiner
|
69ef267a77
|
Added the new threadpool cancel method to the threadpool interface based class.
|
2016-12-08 14:03:25 -08:00 |
|
Benoit Steiner
|
7bfff85355
|
Added support for thread cancellation on Linux
|
2016-12-08 08:12:49 -08:00 |
|
Benoit Steiner
|
462c28e77a
|
Merged in srvasude/eigen (pull request PR-265)
Add Expm1 support to Eigen.
|
2016-12-05 02:31:11 +00:00 |
|
Gael Guennebaud
|
4465d20403
|
Add missing generic load methods.
|
2016-12-03 21:25:04 +01:00 |
|
Srinivas Vasudevan
|
218764ee1f
|
Added support for expm1 in Eigen.
|
2016-12-02 14:13:01 -08:00 |
|
Mehdi Goli
|
592acc5bfa
|
Makingt default numeric_list works with sycl.
|
2016-12-02 17:58:30 +00:00 |
|
Mehdi Goli
|
79aa2b784e
|
Adding sycl backend for TensorPadding.h; disbaling __unit128 for sycl in TensorIntDiv.h; disabling cashsize for sycl in tensorDeviceDefault.h; adding sycl backend for StrideSliceOP ; removing sycl compiler warning for creating an array of size 0 in CXX11Meta.h; cleaning up the sycl backend code.
|
2016-12-01 13:02:27 +00:00 |
|
Benoit Steiner
|
a70393fd02
|
Cleaned up forward declarations
|
2016-11-30 21:59:07 -08:00 |
|
Benoit Steiner
|
e073de96dc
|
Moved the MemCopyFunctor back to TensorSyclDevice since it's the only caller and it makes TensorFlow compile again
|
2016-11-30 21:36:52 -08:00 |
|
Benoit Steiner
|
fca27350eb
|
Added the deallocate_all() method back
|
2016-11-30 20:45:20 -08:00 |
|
Benoit Steiner
|
e633a8371f
|
Simplified includes
|
2016-11-30 20:21:18 -08:00 |
|
Benoit Steiner
|
7cd33df4ce
|
Improved formatting
|
2016-11-30 20:20:44 -08:00 |
|
Benoit Steiner
|
f5107010ee
|
Udated the Sizes class to work on AMD gpus without requiring a separate implementation
|
2016-11-30 19:57:28 -08:00 |
|
Benoit Steiner
|
e37c2c52d3
|
Added an implementation of numeric_list that works with sycl
|
2016-11-30 19:55:15 -08:00 |
|
Luke Iwanski
|
26fff1c5b1
|
Added EIGEN_STRONG_INLINE to get_sycl_supported_device().
|
2016-11-30 16:55:22 +00:00 |
|
Mehdi Goli
|
577ce78085
|
Adding TensorShuffling backend for sycl; adding TensorReshaping backend for sycl; cleaning up the sycl backend.
|
2016-11-29 15:30:42 +00:00 |
|
Benoit Steiner
|
02080e2b67
|
Merged eigen/eigen into default
|
2016-11-27 07:27:30 -08:00 |
|
Benoit Steiner
|
9fd081cddc
|
Fixed compilation warnings
|
2016-11-26 20:22:25 -08:00 |
|
Benoit Steiner
|
9f8fbd9434
|
Merged eigen/eigen into default
|
2016-11-26 11:28:25 -08:00 |
|
Benoit Steiner
|
67b2c41f30
|
Avoided unnecessary type conversion
|
2016-11-26 11:27:29 -08:00 |
|
Benoit Steiner
|
7fe704596a
|
Added missing array_get method for numeric_list
|
2016-11-26 11:26:07 -08:00 |
|
Mehdi Goli
|
7318daf887
|
Fixing LLVM error on TensorMorphingSycl.h on GPU; fixing int64_t crash for tensor_broadcast_sycl on GPU; adding get_sycl_supported_devices() on syclDevice.h.
|
2016-11-25 16:19:07 +00:00 |
|
Benoit Steiner
|
7ad37606dd
|
Fixed the documentation of Scalar Tensors
|
2016-11-24 12:31:43 -08:00 |
|
Mehdi Goli
|
b8cc5635d5
|
Removing unsupported device from test case; cleaning the tensor device sycl.
|
2016-11-23 16:30:41 +00:00 |
|
Benoit Steiner
|
f11da1d83b
|
Made the QueueInterface thread safe
|
2016-11-20 13:17:08 -08:00 |
|
Benoit Steiner
|
6d781e3e52
|
Merged eigen/eigen into default
|
2016-11-20 10:12:54 -08:00 |
|
Benoit Steiner
|
79a07b891b
|
Fixed a typo
|
2016-11-20 07:07:41 -08:00 |
|
Benoit Steiner
|
81151bd474
|
Fixed merge conflicts
|
2016-11-19 19:12:59 -08:00 |
|
Benoit Steiner
|
9265ca707e
|
Made it possible to check the state of a sycl device without synchronization
|
2016-11-19 10:56:24 -08:00 |
|
Benoit Steiner
|
2d1aec15a7
|
Added missing include
|
2016-11-19 08:09:54 -08:00 |
|
Benoit Steiner
|
1bdf1b9ce0
|
Merged in benoitsteiner/opencl (pull request PR-253)
OpenCL improvements
|
2016-11-19 04:44:43 +00:00 |
|
Benoit Steiner
|
dc601d79d1
|
Added the ability to run test exclusively OpenCL devices that are listed by sycl::device::get_devices().
|
2016-11-18 16:26:50 -08:00 |
|
Benoit Steiner
|
110b7f8d9f
|
Deleted unnecessary semicolons
|
2016-11-18 14:06:17 -08:00 |
|
Benoit Steiner
|
37c2c516a6
|
Cleaned up the sycl device code
|
2016-11-18 12:38:06 -08:00 |
|
Mehdi Goli
|
15e226d7d3
|
adding Benoit changes on the TensorDeviceSycl.h
|
2016-11-18 16:34:54 +00:00 |
|
Mehdi Goli
|
622805a0c5
|
Modifying TensorDeviceSycl.h to always create buffer of type uint8_t and convert them to the actual type at the execution on the device; adding the queue interface class to separate the lifespan of sycl queue and buffers,created for that queue, from Eigen::SyclDevice; modifying sycl tests to support the evaluation of the results for both row major and column major data layout on all different devices that are supported by Sycl{CPU; GPU; and Host}.
|
2016-11-18 16:20:42 +00:00 |
|
Benoit Steiner
|
7c30078b9f
|
Merged eigen/eigen into default
|
2016-11-17 22:53:37 -08:00 |
|
Benoit Steiner
|
553f50b246
|
Added a way to detect errors generated by the opencl device from the host
|
2016-11-17 21:51:48 -08:00 |
|
Benoit Steiner
|
72a45d32e9
|
Cleanup
|
2016-11-17 21:29:15 -08:00 |
|
Benoit Steiner
|
4349fc640e
|
Created a test to check that the sycl runtime can successfully report errors (like ivision by 0).
Small cleanup
|
2016-11-17 20:27:54 -08:00 |
|
Benoit Steiner
|
a6a3fd0703
|
Made TensorDeviceCuda.h compile on windows
|
2016-11-17 16:15:27 -08:00 |
|
Luke Iwanski
|
c5130dedbe
|
Specialised basic math functions for SYCL device.
|
2016-11-17 11:47:13 +00:00 |
|
Benoit Steiner
|
b5c75351e3
|
Merged eigen/eigen into default
|
2016-11-14 15:54:44 -08:00 |
|
Rasmus Munk Larsen
|
32df1b1046
|
Reduce dispatch overhead in parallelFor by only calling thread_pool.Schedule() for one of the two recursive calls in handleRange. This avoids going through the scedule path to push both recursive calls onto another thread-queue in the binary tree, but instead executes one of them on the main thread. At the leaf level this will still activate a full complement of threads, but will save up to 50% of the overhead in Schedule (random number generation, insertion in queue which includes signaling via atomics).
|
2016-11-14 14:18:16 -08:00 |
|
Mehdi Goli
|
05e8c2a1d9
|
Adding extra test for non-fixed size to broadcast; Replacing stcl with sycl.
|
2016-11-14 18:13:53 +00:00 |
|
Mehdi Goli
|
f8ca893976
|
Adding TensorFixsize; adding sycl device memcpy; adding insial stage of slicing.
|
2016-11-14 17:51:57 +00:00 |
|
Mehdi Goli
|
a5c3f15682
|
Adding comment to TensorDeviceSycl.h and cleaning the code.
|
2016-11-11 19:06:34 +00:00 |
|
Mehdi Goli
|
3be3963021
|
Adding EIGEN_STRONG_INLINE back; using size() instead of dimensions.TotalSize() on Tensor.
|
2016-11-10 19:16:31 +00:00 |
|
Mehdi Goli
|
12387abad5
|
adding the missing in eigen_assert!
|
2016-11-10 18:58:08 +00:00 |
|
Mehdi Goli
|
2e704d4257
|
Adding Memset; optimising MecopyDeviceToHost by removing double copying;
|
2016-11-10 18:45:12 +00:00 |
|
Benoit Steiner
|
dcc14bee64
|
Fixed the formatting of the code
|
2016-11-08 14:24:46 -08:00 |
|
Luke Iwanski
|
912cb3d660
|
#if EIGEN_EXCEPTION -> #ifdef EIGEN_EXCEPTIONS.
|
2016-11-08 22:01:14 +00:00 |
|
Luke Iwanski
|
1b345b0895
|
Fix for SYCL queue initialisation.
|
2016-11-08 21:56:31 +00:00 |
|
Luke Iwanski
|
1b95717358
|
Use try/catch only when exceptions are enabled.
|
2016-11-08 21:08:53 +00:00 |
|
Mehdi Goli
|
d57430dd73
|
Converting all sycl buffers to uninitialised device only buffers; adding memcpyHostToDevice and memcpyDeviceToHost on syclDevice; modifying all examples to obey the new rules; moving sycl queue creating to the device based on Benoit suggestion; removing the sycl specefic condition for returning m_result in TensorReduction.h according to Benoit suggestion.
|
2016-11-08 17:08:02 +00:00 |
|
Benoit Steiner
|
dad177be01
|
Added missing includes
|
2016-11-05 10:04:42 -07:00 |
|
Mehdi Goli
|
0ebe3808ca
|
Removed the sycl include from Eigen/Core and moved it to Unsupported/Eigen/CXX11/Tensor; added TensorReduction for sycl (full reduction and partial reduction); added TensorReduction test case for sycl (full reduction and partial reduction); fixed the tile size on TensorSyclRun.h based on the device max work group size;
|
2016-11-04 18:18:19 +00:00 |
|
Benoit Steiner
|
0585b2965d
|
Disable vectorization on device only when compiling for sycl
|
2016-11-02 11:44:27 -07:00 |
|
Mehdi Goli
|
51af6ae971
|
Fixed the ambiguity in callig make_tuple for sycl backend.
|
2016-10-31 16:35:51 +00:00 |
|
Benoit Steiner
|
0a9ad6fc72
|
Worked around Visual Studio compilation errors
|
2016-10-28 07:54:27 -07:00 |
|
Benoit Steiner
|
b0c5bfdf78
|
Added missing template parameters
|
2016-10-28 03:43:41 +00:00 |
|
Gael Guennebaud
|
530f20c21a
|
Workaround MSVC issue.
|
2016-10-27 21:51:37 +02:00 |
|
Benoit Steiner
|
0a4c4d40b4
|
Removed a template parameter for fixed sized tensors
|
2016-10-26 18:47:37 -07:00 |
|
Benoit Steiner
|
5f2dd503ff
|
Replaced tabs with spaces
|
2016-10-25 20:40:58 -07:00 |
|
Benoit Steiner
|
1644bafe29
|
Code cleanup
|
2016-10-25 20:36:14 -07:00 |
|
Benoit Steiner
|
cf20b30d65
|
Merge latest updates from trunk
|
2016-10-20 09:42:05 -07:00 |
|
Luke Iwanski
|
03b63e182c
|
Added SYCL include in Tensor.
|
2016-10-20 15:32:44 +01:00 |
|
Benoit Steiner
|
d3943cd50c
|
Fixed a few typos in the ternary tensor expressions types
|
2016-10-19 12:56:12 -07:00 |
|
Mehdi Goli
|
e36cb91c99
|
Fixing the code indentation in the TensorReduction.h file.
|
2016-10-14 18:03:00 +01:00 |
|
Luke Iwanski
|
e742da8b28
|
Merged ComputeCpp into default.
|
2016-10-14 13:36:51 +01:00 |
|
Mehdi Goli
|
524fa4c46f
|
Reducing the code by generalising sycl backend functions/structs.
|
2016-10-14 12:09:55 +01:00 |
|