diff options
author | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2016-03-08 16:37:27 -0800 |
---|---|---|
committer | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2016-03-08 16:37:27 -0800 |
commit | 46177c8d648a27d82d34cebed7e2b5bc59d441fc (patch) | |
tree | 97a356d04f124ea1ad32eda38e76c607e6b33e5e /unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h | |
parent | 6d6413f76832a094d0835770af2adfaabba24738 (diff) |
Replace std::vector with our own implementation, as using the stl when compiling with nvcc and avx enabled leads to many issues.
Diffstat (limited to 'unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h')
-rw-r--r-- | unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h b/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h index 875155243..2d7fb80d4 100644 --- a/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +++ b/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h @@ -256,9 +256,8 @@ struct FullReducer<Self, Op, ThreadPoolDevice, false> { const Index numblocks = blocksize > 0 ? num_coeffs / blocksize : 0; eigen_assert(num_coeffs >= numblocks * blocksize); - std::vector<Notification*> results; - results.reserve(numblocks); - std::vector<typename Self::CoeffReturnType> shards(numblocks, reducer.initialize()); + MaxSizeVector<Notification*> results(numblocks); + MaxSizeVector<typename Self::CoeffReturnType> shards(numblocks, reducer.initialize()); for (Index i = 0; i < numblocks; ++i) { results.push_back( device.enqueue(&FullReducerShard<Self, Op, false>::run, self, @@ -308,9 +307,8 @@ struct FullReducer<Self, Op, ThreadPoolDevice, true> { const Index numblocks = blocksize > 0 ? num_coeffs / blocksize : 0; eigen_assert(num_coeffs >= numblocks * blocksize); - std::vector<Notification*> results; - results.reserve(numblocks); - std::vector<typename Self::CoeffReturnType> shards(numblocks, reducer.initialize()); + MaxSizeVector<Notification*> results(numblocks); + MaxSizeVector<typename Self::CoeffReturnType> shards(numblocks, reducer.initialize()); for (Index i = 0; i < numblocks; ++i) { results.push_back(device.enqueue(&FullReducerShard<Self, Op, true>::run, self, i * blocksize, blocksize, reducer, |