From c39852c345880a5ddad1b57a8a277f9f08a0e32c Mon Sep 17 00:00:00 2001 From: Jeffrey Jiang Date: Tue, 25 Feb 2025 17:09:19 -0600 Subject: [PATCH 1/8] Clarify error message --- ttnn/cpp/ttnn/tensor/storage.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ttnn/cpp/ttnn/tensor/storage.hpp b/ttnn/cpp/ttnn/tensor/storage.hpp index ebb7ced0226..66fdd28b7d1 100644 --- a/ttnn/cpp/ttnn/tensor/storage.hpp +++ b/ttnn/cpp/ttnn/tensor/storage.hpp @@ -200,7 +200,7 @@ struct MultiDeviceHostStorage { TensorSpec get_tensor_spec(int spec_index) const { std::lock_guard lock(mtx); - TT_ASSERT(spec_index < specs.size(), "Buffer not found for device {}", spec_index); + TT_ASSERT(spec_index < specs.size(), "Spec for device {} not found in spec list, was buffer added?", spec_index); return specs[spec_index]; } From fa0cb34d4ee34092aa2c33c90c4efd6206d122d3 Mon Sep 17 00:00:00 2001 From: Jeffrey Jiang Date: Tue, 25 Feb 2025 17:10:11 -0600 Subject: [PATCH 2/8] improve error clarification --- ttnn/cpp/ttnn/tensor/storage.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ttnn/cpp/ttnn/tensor/storage.hpp b/ttnn/cpp/ttnn/tensor/storage.hpp index 66fdd28b7d1..bc5478751a9 100644 --- a/ttnn/cpp/ttnn/tensor/storage.hpp +++ b/ttnn/cpp/ttnn/tensor/storage.hpp @@ -200,7 +200,7 @@ struct MultiDeviceHostStorage { TensorSpec get_tensor_spec(int spec_index) const { std::lock_guard lock(mtx); - TT_ASSERT(spec_index < specs.size(), "Spec for device {} not found in spec list, was buffer added?", spec_index); + TT_ASSERT(spec_index < specs.size(), "Spec for device {} not found in spec list, were buffer and spec added?", spec_index); return specs[spec_index]; } From 459bd67757008b0e8f879f20332b5ae0deac59c4 Mon Sep 17 00:00:00 2001 From: Jeffrey Jiang Date: Tue, 25 Feb 2025 23:11:21 -0600 Subject: [PATCH 3/8] change assert to a fatal --- ttnn/cpp/ttnn/tensor/storage.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ttnn/cpp/ttnn/tensor/storage.hpp b/ttnn/cpp/ttnn/tensor/storage.hpp index bc5478751a9..03dd1e7c752 100644 --- a/ttnn/cpp/ttnn/tensor/storage.hpp +++ b/ttnn/cpp/ttnn/tensor/storage.hpp @@ -200,7 +200,7 @@ struct MultiDeviceHostStorage { TensorSpec get_tensor_spec(int spec_index) const { std::lock_guard lock(mtx); - TT_ASSERT(spec_index < specs.size(), "Spec for device {} not found in spec list, were buffer and spec added?", spec_index); + TT_FATAL(spec_index < specs.size(), "Spec for device {} not found in spec list", spec_index); return specs[spec_index]; } From 77f82dcaf22ab952a022a8fd3c7bc1f449c8f804 Mon Sep 17 00:00:00 2001 From: Jeffrey Jiang Date: Thu, 27 Feb 2025 09:52:27 -0600 Subject: [PATCH 4/8] Change asserts to fatals where reasonable --- ttnn/cpp/ttnn/tensor/storage.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ttnn/cpp/ttnn/tensor/storage.hpp b/ttnn/cpp/ttnn/tensor/storage.hpp index 03dd1e7c752..cfdc6079616 100644 --- a/ttnn/cpp/ttnn/tensor/storage.hpp +++ b/ttnn/cpp/ttnn/tensor/storage.hpp @@ -188,13 +188,13 @@ struct MultiDeviceHostStorage { OwnedBuffer get_buffer(int buffer_index) const { std::lock_guard lock(mtx); - TT_ASSERT(buffer_index < buffers.size(), "Buffer not found for buffer_index {}", buffer_index); + TT_FATAL(buffer_index < buffers.size(), "Buffer not found for buffer_index {}", buffer_index); return buffers[buffer_index]; } OwnedBuffer& get_buffer(int buffer_index) { std::lock_guard lock(mtx); - TT_ASSERT(buffer_index < buffers.size(), "Buffer not found for buffer_index {}", buffer_index); + TT_FATAL(buffer_index < buffers.size(), "Buffer not found for buffer_index {}", buffer_index); return buffers[buffer_index]; } @@ -325,7 +325,7 @@ struct MultiDeviceStorage { inline std::shared_ptr get_buffer_for_device(IDevice* device) const { std::lock_guard lock(buffer_mtx); - TT_ASSERT(buffers.find(device->id()) != buffers.end(), "Buffer not found for device {}", device->id()); + TT_FATAL(buffers.find(device->id()) != buffers.end(), "Buffer not found for device {}", device->id()); TT_ASSERT( buffers.at(device->id())->device() == device, "Mismatch between device derived from buffer and device derived from MultiDeviceStorage."); @@ -334,7 +334,7 @@ struct MultiDeviceStorage { inline std::shared_ptr& get_buffer_for_device(IDevice* device) { std::lock_guard lock(buffer_mtx); - TT_ASSERT(buffers.find(device->id()) != buffers.end(), "Buffer not found for device {}", device->id()); + TT_FATAL(buffers.find(device->id()) != buffers.end(), "Buffer not found for device {}", device->id()); TT_ASSERT( buffers.at(device->id())->device() == device, "Mismatch between device derived from buffer and device derived from MultiDeviceStorage."); @@ -348,7 +348,7 @@ struct MultiDeviceStorage { inline TensorSpec get_tensor_spec_for_device(IDevice* device) const { std::lock_guard lock(shape_mtx); - TT_ASSERT(specs.find(device->id()) != specs.end(), "Shape not found for device {}", device->id()); + TT_FATAL(specs.find(device->id()) != specs.end(), "Shape not found for device {}", device->id()); return specs.at(device->id()); } From 0090f971cbbcf41ba48b9bc698c390a3e2e42c11 Mon Sep 17 00:00:00 2001 From: Jeffrey Jiang Date: Thu, 27 Feb 2025 13:48:08 -0600 Subject: [PATCH 5/8] Search buffer for device id once only --- ttnn/cpp/ttnn/tensor/storage.hpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ttnn/cpp/ttnn/tensor/storage.hpp b/ttnn/cpp/ttnn/tensor/storage.hpp index cfdc6079616..21c416a4149 100644 --- a/ttnn/cpp/ttnn/tensor/storage.hpp +++ b/ttnn/cpp/ttnn/tensor/storage.hpp @@ -325,11 +325,12 @@ struct MultiDeviceStorage { inline std::shared_ptr get_buffer_for_device(IDevice* device) const { std::lock_guard lock(buffer_mtx); - TT_FATAL(buffers.find(device->id()) != buffers.end(), "Buffer not found for device {}", device->id()); + auto buffer_it = buffers.find(device->id()); + TT_FATAL(buffer_it != buffers.end(), "Buffer not found for device {}", device->id()); TT_ASSERT( - buffers.at(device->id())->device() == device, + buffer_it->device() == device, "Mismatch between device derived from buffer and device derived from MultiDeviceStorage."); - return buffers.at(device->id()); + return buffer_it; } inline std::shared_ptr& get_buffer_for_device(IDevice* device) { From ca31f329a11ccea33ddccc24542fa2b1c90a17d6 Mon Sep 17 00:00:00 2001 From: Jeffrey Jiang Date: Mon, 3 Mar 2025 09:59:37 -0600 Subject: [PATCH 6/8] fix pointer error --- ttnn/cpp/ttnn/tensor/storage.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ttnn/cpp/ttnn/tensor/storage.hpp b/ttnn/cpp/ttnn/tensor/storage.hpp index 21c416a4149..f74668f284b 100644 --- a/ttnn/cpp/ttnn/tensor/storage.hpp +++ b/ttnn/cpp/ttnn/tensor/storage.hpp @@ -330,7 +330,7 @@ struct MultiDeviceStorage { TT_ASSERT( buffer_it->device() == device, "Mismatch between device derived from buffer and device derived from MultiDeviceStorage."); - return buffer_it; + return *buffer_it; } inline std::shared_ptr& get_buffer_for_device(IDevice* device) { From daef49df241b94acc7c6cc635be4338fc5cf31cd Mon Sep 17 00:00:00 2001 From: Jeffrey Jiang Date: Mon, 3 Mar 2025 11:11:10 -0600 Subject: [PATCH 7/8] fix pair access --- ttnn/cpp/ttnn/tensor/storage.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ttnn/cpp/ttnn/tensor/storage.hpp b/ttnn/cpp/ttnn/tensor/storage.hpp index f74668f284b..6436916528d 100644 --- a/ttnn/cpp/ttnn/tensor/storage.hpp +++ b/ttnn/cpp/ttnn/tensor/storage.hpp @@ -330,7 +330,7 @@ struct MultiDeviceStorage { TT_ASSERT( buffer_it->device() == device, "Mismatch between device derived from buffer and device derived from MultiDeviceStorage."); - return *buffer_it; + return buffer_it->second; } inline std::shared_ptr& get_buffer_for_device(IDevice* device) { From c4d31637efc403594b588eeb7c98f3c9a18db991 Mon Sep 17 00:00:00 2001 From: Jeffrey Jiang Date: Mon, 3 Mar 2025 19:03:45 +0000 Subject: [PATCH 8/8] fix ->second error, replace other redundant searches --- ttnn/cpp/ttnn/tensor/storage.hpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/ttnn/cpp/ttnn/tensor/storage.hpp b/ttnn/cpp/ttnn/tensor/storage.hpp index 6436916528d..4161a3bd9dd 100644 --- a/ttnn/cpp/ttnn/tensor/storage.hpp +++ b/ttnn/cpp/ttnn/tensor/storage.hpp @@ -328,18 +328,19 @@ struct MultiDeviceStorage { auto buffer_it = buffers.find(device->id()); TT_FATAL(buffer_it != buffers.end(), "Buffer not found for device {}", device->id()); TT_ASSERT( - buffer_it->device() == device, + buffer_it->second->device() == device, "Mismatch between device derived from buffer and device derived from MultiDeviceStorage."); return buffer_it->second; } inline std::shared_ptr& get_buffer_for_device(IDevice* device) { std::lock_guard lock(buffer_mtx); - TT_FATAL(buffers.find(device->id()) != buffers.end(), "Buffer not found for device {}", device->id()); + auto buffer_it = buffers.find(device->id()); + TT_FATAL(buffer_it != buffers.end(), "Buffer not found for device {}", device->id()); TT_ASSERT( - buffers.at(device->id())->device() == device, + buffer_it->second->device() == device, "Mismatch between device derived from buffer and device derived from MultiDeviceStorage."); - return buffers.at(device->id()); + return buffer_it->second; } inline std::shared_ptr get_buffer_for_device_id(uint32_t device_id) const { @@ -349,8 +350,9 @@ struct MultiDeviceStorage { inline TensorSpec get_tensor_spec_for_device(IDevice* device) const { std::lock_guard lock(shape_mtx); - TT_FATAL(specs.find(device->id()) != specs.end(), "Shape not found for device {}", device->id()); - return specs.at(device->id()); + auto spec_it = specs.find(device->id()); + TT_FATAL(spec_it != specs.end(), "Shape not found for device {}", device->id()); + return spec_it->second; } inline uint32_t num_buffers() const {