From 0d87fdfcc4aaf6843e9fddb9054da38b7e063d87 Mon Sep 17 00:00:00 2001 From: Anthony Shoumikhin Date: Tue, 10 Sep 2024 12:55:52 -0700 Subject: [PATCH] Use dynamic bound by default. (#5234) Summary: Pull Request resolved: https://github.com/pytorch/executorch/pull/5234 Instead of static to match Aten closer. Reviewed By: kirklandsign Differential Revision: D62459696 --- extension/llm/runner/text_token_generator.h | 7 ++----- extension/tensor/tensor_impl_ptr.h | 8 ++++---- extension/tensor/tensor_ptr.h | 8 ++++---- extension/tensor/tensor_ptr_maker.h | 10 +++++----- extension/tensor/test/tensor_impl_ptr_test.cpp | 4 ++-- extension/tensor/test/tensor_ptr_test.cpp | 6 +++--- 6 files changed, 20 insertions(+), 23 deletions(-) diff --git a/extension/llm/runner/text_token_generator.h b/extension/llm/runner/text_token_generator.h index 01887e75600..1726750ece5 100644 --- a/extension/llm/runner/text_token_generator.h +++ b/extension/llm/runner/text_token_generator.h @@ -70,11 +70,8 @@ class TextTokenGenerator { } // initialize tensor wrappers - auto tokens_managed = from_blob( - token_data.data(), - token_shape, - exec_aten::ScalarType::Long, - exec_aten::TensorShapeDynamism::DYNAMIC_BOUND); + auto tokens_managed = + from_blob(token_data.data(), token_shape, exec_aten::ScalarType::Long); auto start_pos_managed = from_blob(&pos, {1}, exec_aten::ScalarType::Long); diff --git a/extension/tensor/tensor_impl_ptr.h b/extension/tensor/tensor_impl_ptr.h index f336faf07b0..5f34f929b96 100644 --- a/extension/tensor/tensor_impl_ptr.h +++ b/extension/tensor/tensor_impl_ptr.h @@ -66,7 +66,7 @@ TensorImplPtr make_tensor_impl_ptr( std::vector dim_order = {}, std::vector strides = {}, exec_aten::TensorShapeDynamism dynamism = - exec_aten::TensorShapeDynamism::STATIC, + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND, std::function deleter = nullptr); /** @@ -93,7 +93,7 @@ TensorImplPtr make_tensor_impl_ptr( std::vector dim_order = {}, std::vector strides = {}, exec_aten::TensorShapeDynamism dynamism = - exec_aten::TensorShapeDynamism::STATIC) { + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND) { constexpr exec_aten::ScalarType scalar_type = runtime::CppTypeToScalarType::value; const auto raw_data_ptr = data.data(); @@ -126,7 +126,7 @@ template TensorImplPtr make_tensor_impl_ptr( std::vector data, exec_aten::TensorShapeDynamism dynamism = - exec_aten::TensorShapeDynamism::STATIC) { + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND) { constexpr exec_aten::ScalarType scalar_type = runtime::CppTypeToScalarType::value; std::vector sizes{exec_aten::SizesType(data.size())}; @@ -165,7 +165,7 @@ TensorImplPtr make_tensor_impl_ptr( std::vector dim_order = {}, std::vector strides = {}, exec_aten::TensorShapeDynamism dynamism = - exec_aten::TensorShapeDynamism::STATIC); + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND); } // namespace extension } // namespace executorch diff --git a/extension/tensor/tensor_ptr.h b/extension/tensor/tensor_ptr.h index ef29d598b84..c760de4f038 100644 --- a/extension/tensor/tensor_ptr.h +++ b/extension/tensor/tensor_ptr.h @@ -125,7 +125,7 @@ inline TensorPtr make_tensor_ptr( std::vector dim_order = {}, std::vector strides = {}, const exec_aten::TensorShapeDynamism dynamism = - exec_aten::TensorShapeDynamism::STATIC, + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND, std::function deleter = nullptr) { return make_tensor_ptr(make_tensor_impl_ptr( type, @@ -160,7 +160,7 @@ TensorPtr make_tensor_ptr( std::vector dim_order = {}, std::vector strides = {}, exec_aten::TensorShapeDynamism dynamism = - exec_aten::TensorShapeDynamism::STATIC) { + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND) { return make_tensor_ptr(make_tensor_impl_ptr( std::move(sizes), std::move(data), @@ -186,7 +186,7 @@ template TensorPtr make_tensor_ptr( std::vector data, exec_aten::TensorShapeDynamism dynamism = - exec_aten::TensorShapeDynamism::STATIC) { + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND) { return make_tensor_ptr(make_tensor_impl_ptr(std::move(data), dynamism)); } @@ -212,7 +212,7 @@ inline TensorPtr make_tensor_ptr( std::vector dim_order = {}, std::vector strides = {}, exec_aten::TensorShapeDynamism dynamism = - exec_aten::TensorShapeDynamism::STATIC) { + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND) { return make_tensor_ptr(make_tensor_impl_ptr( scalar_type, std::move(sizes), diff --git a/extension/tensor/tensor_ptr_maker.h b/extension/tensor/tensor_ptr_maker.h index a08f04c2101..fd97e53dbca 100644 --- a/extension/tensor/tensor_ptr_maker.h +++ b/extension/tensor/tensor_ptr_maker.h @@ -138,7 +138,7 @@ class TensorPtrMaker final { void* data_ = nullptr; exec_aten::ScalarType type_ = exec_aten::ScalarType::Float; exec_aten::TensorShapeDynamism dynamism_ = - exec_aten::TensorShapeDynamism::STATIC; + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND; }; /** @@ -182,7 +182,7 @@ inline TensorPtr from_blob( std::vector sizes, exec_aten::ScalarType type = exec_aten::ScalarType::Float, exec_aten::TensorShapeDynamism dynamism = - exec_aten::TensorShapeDynamism::STATIC) { + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND) { return for_blob(data, std::move(sizes), type) .dynamism(dynamism) .make_tensor_ptr(); @@ -210,7 +210,7 @@ inline TensorPtr from_blob( std::vector strides, exec_aten::ScalarType type = exec_aten::ScalarType::Float, exec_aten::TensorShapeDynamism dynamism = - exec_aten::TensorShapeDynamism::STATIC) { + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND) { return for_blob(data, std::move(sizes), type) .strides(std::move(strides)) .dynamism(dynamism) @@ -239,7 +239,7 @@ inline TensorPtr from_blob( exec_aten::ScalarType type, std::function&& deleter, exec_aten::TensorShapeDynamism dynamism = - exec_aten::TensorShapeDynamism::STATIC) { + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND) { return for_blob(data, std::move(sizes), type) .deleter(std::move(deleter)) .dynamism(dynamism) @@ -270,7 +270,7 @@ inline TensorPtr from_blob( exec_aten::ScalarType type, std::function&& deleter, exec_aten::TensorShapeDynamism dynamism = - exec_aten::TensorShapeDynamism::STATIC) { + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND) { return for_blob(data, std::move(sizes), type) .strides(std::move(strides)) .deleter(std::move(deleter)) diff --git a/extension/tensor/test/tensor_impl_ptr_test.cpp b/extension/tensor/test/tensor_impl_ptr_test.cpp index 09d55de3e8e..1330dfa60f5 100644 --- a/extension/tensor/test/tensor_impl_ptr_test.cpp +++ b/extension/tensor/test/tensor_impl_ptr_test.cpp @@ -145,7 +145,7 @@ TEST_F(TensorImplPtrTest, TensorImplDataDeleterReleasesCapturedSharedPtr) { data_ptr.get(), {}, {}, - exec_aten::TensorShapeDynamism::STATIC, + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND, [data_ptr, &deleter_called](void*) mutable { deleter_called = true; }); EXPECT_EQ(data_ptr.use_count(), 2); @@ -280,7 +280,7 @@ TEST_F(TensorImplPtrTest, CustomDeleterWithSharedData) { data->data(), {}, {}, - exec_aten::TensorShapeDynamism::STATIC, + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND, [data, &deleter_called](void*) mutable { deleter_called = true; data.reset(); diff --git a/extension/tensor/test/tensor_ptr_test.cpp b/extension/tensor/test/tensor_ptr_test.cpp index 24aa20a8355..3f5e7ff58e2 100644 --- a/extension/tensor/test/tensor_ptr_test.cpp +++ b/extension/tensor/test/tensor_ptr_test.cpp @@ -98,7 +98,7 @@ TEST_F(TensorPtrTest, TensorWithCustomDataDeleter) { data, {}, {}, - exec_aten::TensorShapeDynamism::STATIC, + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND, [&deleter_called](void* ptr) { deleter_called = true; delete[] static_cast(ptr); @@ -118,7 +118,7 @@ TEST_F(TensorPtrTest, TensorManagesMovedVector) { data_ptr, {}, {}, - exec_aten::TensorShapeDynamism::STATIC, + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND, [moved_data = std::move(data), &deleter_called](void*) mutable { deleter_called = true; }); @@ -140,7 +140,7 @@ TEST_F(TensorPtrTest, TensorDeleterReleasesCapturedSharedPtr) { data_ptr.get(), {}, {}, - exec_aten::TensorShapeDynamism::STATIC, + exec_aten::TensorShapeDynamism::DYNAMIC_BOUND, [data_ptr, &deleter_called](void*) mutable { deleter_called = true; }); EXPECT_EQ(data_ptr.use_count(), 2);