From beebecf21aaeeb489dc8198d77ebf246724a8f5a Mon Sep 17 00:00:00 2001 From: Shaked Regev Date: Wed, 28 May 2025 09:16:21 -0400 Subject: [PATCH 1/5] fixed on cpu --- resolve/LinSolverIterativeRandFGMRES.cpp | 2 +- resolve/cpu/CpuMemory.hpp | 4 +++- resolve/vector/Vector.cpp | 4 ++-- resolve/vector/Vector.hpp | 2 +- tests/functionality/testRandGmres.cpp | 1 - 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/resolve/LinSolverIterativeRandFGMRES.cpp b/resolve/LinSolverIterativeRandFGMRES.cpp index d7d21cc82..d547f34e4 100644 --- a/resolve/LinSolverIterativeRandFGMRES.cpp +++ b/resolve/LinSolverIterativeRandFGMRES.cpp @@ -497,7 +497,7 @@ namespace ReSolve if (is_flexible) { vec_Z_ = new vector_type(n_, restart_ + 1); } else { - // otherwise Z is just a one vector, not multivector and we dont keep it + // otherwise Z is just one vector, not a multivector and we don't keep it vec_Z_ = new vector_type(n_); } vec_Z_->allocate(memspace_); diff --git a/resolve/cpu/CpuMemory.hpp b/resolve/cpu/CpuMemory.hpp index e481be973..c9f01c1d0 100644 --- a/resolve/cpu/CpuMemory.hpp +++ b/resolve/cpu/CpuMemory.hpp @@ -1,7 +1,8 @@ #pragma once - +#include #include + namespace ReSolve { namespace memory @@ -43,6 +44,7 @@ namespace ReSolve static int deleteOnDevice(void* /* v */) { ReSolve::io::Logger::error() << "Trying to delete on a GPU device, but GPU support not available.\n"; + assert(false && "Trying to delete on a GPU device, but GPU support not available."); return -1; } diff --git a/resolve/vector/Vector.cpp b/resolve/vector/Vector.cpp index d83abaa1e..badb28f08 100644 --- a/resolve/vector/Vector.cpp +++ b/resolve/vector/Vector.cpp @@ -495,8 +495,8 @@ namespace ReSolve { namespace vector { */ int Vector::resize(index_type new_n_size) { - assert(owns_cpu_data_ && owns_gpu_data_ - && "Cannot resize if vector is not owning the data."); + assert(owns_cpu_data_ || owns_gpu_data_ + && "Cannot resize if vector does not own data."); if (new_n_size > n_capacity_) { out::error() << "Trying to resize vector to " << new_n_size diff --git a/resolve/vector/Vector.hpp b/resolve/vector/Vector.hpp index 9a17f2bc4..8da10c655 100644 --- a/resolve/vector/Vector.hpp +++ b/resolve/vector/Vector.hpp @@ -61,7 +61,7 @@ namespace ReSolve { namespace vector { bool gpu_updated_{false}; ///< DEVICE data flag (updated or not) bool cpu_updated_{false}; ///< HOST data flag (updated or not) - bool owns_gpu_data_{true}; ///< data owneship flag for DEVICE data + bool owns_gpu_data_{false}; ///< data owneship flag for DEVICE data bool owns_cpu_data_{true}; ///< data ownership flag for HOST data MemoryHandler mem_; ///< Device memory manager object diff --git a/tests/functionality/testRandGmres.cpp b/tests/functionality/testRandGmres.cpp index 631e8a512..7b047868b 100644 --- a/tests/functionality/testRandGmres.cpp +++ b/tests/functionality/testRandGmres.cpp @@ -107,7 +107,6 @@ int runTest(int argc, char *argv[]) vector_type* vec_rhs = generateRhs(n, memspace); vector_type vec_x(A->getNumRows()); - vec_x.allocate(memory::HOST); vec_x.allocate(memspace); vec_x.setToZero(memspace); From 1ba547fab213ddfaba2bbafb6c6f26c985eb86e6 Mon Sep 17 00:00:00 2001 From: Shaked Regev Date: Fri, 30 May 2025 10:25:29 -0400 Subject: [PATCH 2/5] junk --- resolve/vector/Vector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resolve/vector/Vector.cpp b/resolve/vector/Vector.cpp index badb28f08..e5dd48057 100644 --- a/resolve/vector/Vector.cpp +++ b/resolve/vector/Vector.cpp @@ -496,7 +496,7 @@ namespace ReSolve { namespace vector { int Vector::resize(index_type new_n_size) { assert(owns_cpu_data_ || owns_gpu_data_ - && "Cannot resize if vector does not own data."); + && "Cannot resize if vector is not owning the data."); if (new_n_size > n_capacity_) { out::error() << "Trying to resize vector to " << new_n_size From d55f627186ae83d2c07167fb11e9624ffdb6007a Mon Sep 17 00:00:00 2001 From: Shaked Regev Date: Fri, 30 May 2025 10:28:04 -0400 Subject: [PATCH 3/5] fixed owns_gpu_data_ logic --- resolve/vector/Vector.cpp | 2 +- resolve/vector/Vector.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resolve/vector/Vector.cpp b/resolve/vector/Vector.cpp index e5dd48057..d83abaa1e 100644 --- a/resolve/vector/Vector.cpp +++ b/resolve/vector/Vector.cpp @@ -495,7 +495,7 @@ namespace ReSolve { namespace vector { */ int Vector::resize(index_type new_n_size) { - assert(owns_cpu_data_ || owns_gpu_data_ + assert(owns_cpu_data_ && owns_gpu_data_ && "Cannot resize if vector is not owning the data."); if (new_n_size > n_capacity_) { diff --git a/resolve/vector/Vector.hpp b/resolve/vector/Vector.hpp index 8da10c655..9a17f2bc4 100644 --- a/resolve/vector/Vector.hpp +++ b/resolve/vector/Vector.hpp @@ -61,7 +61,7 @@ namespace ReSolve { namespace vector { bool gpu_updated_{false}; ///< DEVICE data flag (updated or not) bool cpu_updated_{false}; ///< HOST data flag (updated or not) - bool owns_gpu_data_{false}; ///< data owneship flag for DEVICE data + bool owns_gpu_data_{true}; ///< data owneship flag for DEVICE data bool owns_cpu_data_{true}; ///< data ownership flag for HOST data MemoryHandler mem_; ///< Device memory manager object From 16032f6de1833266f0be7a093cc9a46c90baff30 Mon Sep 17 00:00:00 2001 From: Shaked Regev Date: Fri, 30 May 2025 10:32:57 -0400 Subject: [PATCH 4/5] removed whitespace --- resolve/cpu/CpuMemory.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/resolve/cpu/CpuMemory.hpp b/resolve/cpu/CpuMemory.hpp index c9f01c1d0..85c1fb652 100644 --- a/resolve/cpu/CpuMemory.hpp +++ b/resolve/cpu/CpuMemory.hpp @@ -2,7 +2,6 @@ #include #include - namespace ReSolve { namespace memory From a7ea45bc93dbdf8daf60bfaa1f8321044a789cd0 Mon Sep 17 00:00:00 2001 From: Slaven Peles Date: Wed, 4 Jun 2025 16:35:06 -0400 Subject: [PATCH 5/5] Remove assert statement from CpuMemory.hpp --- resolve/cpu/CpuMemory.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/resolve/cpu/CpuMemory.hpp b/resolve/cpu/CpuMemory.hpp index 85c1fb652..96c9a6ebc 100644 --- a/resolve/cpu/CpuMemory.hpp +++ b/resolve/cpu/CpuMemory.hpp @@ -43,7 +43,6 @@ namespace ReSolve static int deleteOnDevice(void* /* v */) { ReSolve::io::Logger::error() << "Trying to delete on a GPU device, but GPU support not available.\n"; - assert(false && "Trying to delete on a GPU device, but GPU support not available."); return -1; }