diff options
author | Hieu Hoang <hieuhoang@gmail.com> | 2017-11-27 05:52:13 +0300 |
---|---|---|
committer | Hieu Hoang <hieuhoang@gmail.com> | 2017-11-27 05:52:13 +0300 |
commit | fe8b123e4ac3dc1c5cb6757e06796ff1e0f1b88e (patch) | |
tree | b8e6ddd6f5ff194988da5cd574ba0eda9bf34487 | |
parent | 2d340d66ee3e627693c3ba333ab1b170062196e3 (diff) |
tweak resize
-rw-r--r-- | src/amun/gpu/mblas/vector.h | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/amun/gpu/mblas/vector.h b/src/amun/gpu/mblas/vector.h index 7a63708d..eead799f 100644 --- a/src/amun/gpu/mblas/vector.h +++ b/src/amun/gpu/mblas/vector.h @@ -84,11 +84,12 @@ public: void resize(size_t newSize) { - if (m_maxSize) { - assert(m_arr); - if (newSize > m_maxSize) { - T *newData; - HANDLE_ERROR( cudaMalloc(&newData, newSize * sizeof(T)) ); + if (newSize > m_maxSize) { + T *newData; + HANDLE_ERROR( cudaMalloc(&newData, newSize * sizeof(T)) ); + + if (m_maxSize) { + assert(m_arr); HANDLE_ERROR( cudaMemcpyAsync( newData, @@ -98,13 +99,10 @@ public: CudaStreamHandler::GetStream()) ); HANDLE_ERROR(cudaFree(m_arr)); - - m_arr = newData; - m_maxSize = newSize; } - } - else { - assert(m_arr == nullptr); + + m_arr = newData; + m_maxSize = newSize; } m_size = newSize; |