aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h
diff options
context:
space:
mode:
authorGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2016-03-08 16:37:27 -0800
committerGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2016-03-08 16:37:27 -0800
commit46177c8d648a27d82d34cebed7e2b5bc59d441fc (patch)
tree97a356d04f124ea1ad32eda38e76c607e6b33e5e /unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h
parent6d6413f76832a094d0835770af2adfaabba24738 (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.h10
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,