Skip to content

Commit 8e73c09

Browse files
Move to Span<EValue*> instead of EValue** in delegate interface
Differential Revision: D79268134 Pull Request resolved: #13004
1 parent b66072c commit 8e73c09

File tree

26 files changed

+58
-41
lines changed

26 files changed

+58
-41
lines changed

backends/apple/coreml/runtime/delegate/coreml_backend_delegate.mm

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
using executorch::runtime::get_backend_class;
4747
using executorch::runtime::Result;
4848
using executorch::aten::SizesType;
49+
using executorch::runtime::Span;
4950
using executorch::aten::Tensor;
5051
using executorch::runtime::kTensorDimensionLimit;
5152

@@ -197,7 +198,7 @@ ModelLoggingOptions get_logging_options(BackendExecutionContext& context) {
197198

198199
Error CoreMLBackendDelegate::execute(BackendExecutionContext& context,
199200
DelegateHandle* handle,
200-
EValue** args) const {
201+
Span<EValue*> args) const {
201202
const auto& nArgs = impl_->get_num_arguments(handle);
202203
std::vector<MultiArray> delegate_args;
203204
size_t nInputs = nArgs.first;

backends/apple/coreml/runtime/include/coreml_backend/delegate.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class CoreMLBackendDelegate final : public ::executorch::runtime::BackendInterfa
4848
/// @retval On success, `Error::Ok` otherwise any other `Error` case.
4949
executorch::runtime::Error execute(executorch::runtime::BackendExecutionContext& context,
5050
executorch::runtime::DelegateHandle* handle,
51-
executorch::runtime::EValue** args) const override;
51+
executorch::runtime::Span<executorch::runtime::EValue*> args) const override;
5252

5353
/// Returns `true` if the delegate is available otherwise `false`.
5454
bool is_available() const override;

backends/apple/mps/runtime/MPSBackend.mm

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
using executorch::runtime::Error;
3131
using executorch::runtime::FreeableBuffer;
3232
using executorch::runtime::Result;
33+
using executorch::runtime::Span;
3334

3435
class MPSBackend final : public ::executorch::runtime::BackendInterface {
3536
public:
@@ -72,7 +73,7 @@ bool is_available() const override {
7273
Error execute(
7374
ET_UNUSED BackendExecutionContext& context,
7475
DelegateHandle* handle,
75-
EValue** args) const override {
76+
Span<EValue*> args) const override {
7677
auto executor = static_cast<mps::delegate::MPSExecutor*>(handle);
7778
std::vector<const Tensor*> input_pointers;
7879
std::vector<const Tensor*> output_pointers;

backends/arm/runtime/EthosUBackend.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ using executorch::runtime::EValue;
7070
using executorch::runtime::FreeableBuffer;
7171
using executorch::runtime::MemoryAllocator;
7272
using executorch::runtime::Result;
73+
using executorch::runtime::Span;
7374

7475
#define ETHOSU_NUM_BASE_ADDRS 3
7576

@@ -140,7 +141,7 @@ class EthosUBackend final : public ::executorch::runtime::BackendInterface {
140141
Error execute(
141142
BackendExecutionContext& context,
142143
DelegateHandle* input_handle,
143-
EValue** args) const override {
144+
Span<EValue*> args) const override {
144145
#if defined(ET_EVENT_TRACER_ENABLED)
145146
EventTracer* event_tracer = context.event_tracer();
146147
EventTracerEntry event_tracer_local_scope;

backends/arm/runtime/VGFBackend.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ class VGFBackend final : public ::executorch::runtime::BackendInterface {
152152
Error execute(
153153
ET_UNUSED BackendExecutionContext& context,
154154
DelegateHandle* handle,
155-
EValue** args) const override {
155+
Span<EValue*> args) const override {
156156
VgfRepr* repr = static_cast<VgfRepr*>(handle);
157157

158158
// Copy all inputs from EValue to VkDeviceMemory

backends/mediatek/runtime/NeuronBackend.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ using executorch::runtime::EValue;
3434
using executorch::runtime::FreeableBuffer;
3535
using executorch::runtime::MemoryAllocator;
3636
using executorch::runtime::Result;
37+
using executorch::runtime::Span;
3738

3839
const char kHighAddrKey[] = "HighAddr";
3940
const char kImportForeverKey[] = "ImportForever";
@@ -86,7 +87,7 @@ Result<DelegateHandle*> NeuronBackend::init(
8687
Error NeuronBackend::execute(
8788
ET_UNUSED BackendExecutionContext& context,
8889
DelegateHandle* handle,
89-
EValue** args) const {
90+
Span<EValue*> args) const {
9091
NeuronExecuTorchDelegate* delegate =
9192
reinterpret_cast<NeuronExecuTorchDelegate*>(handle);
9293
return delegate->execute(context, args);
@@ -106,7 +107,7 @@ bool NeuronBackend::is_available() const {
106107

107108
Error NeuronExecuTorchDelegate::execute(
108109
BackendExecutionContext& context,
109-
EValue** args) const {
110+
Span<EValue*> args) const {
110111
if (HintNeuronBackend(args) != NEURON_NO_ERROR) {
111112
return Error::InvalidState;
112113
};
@@ -163,8 +164,8 @@ Error NeuronExecuTorchDelegate::execute(
163164
: Error::InvalidState;
164165
};
165166

166-
int NeuronExecuTorchDelegate::HintNeuronBackend(EValue** args) const {
167-
auto HintImportForever = [this](EValue** args) -> int {
167+
int NeuronExecuTorchDelegate::HintNeuronBackend(Span<EValue*> args) const {
168+
auto HintImportForever = [this](Span<EValue*> args) -> int {
168169
auto& allocator = GET_NEURON_ALLOCATOR;
169170
size_t inputCount = mInputSizes.size(), outputCount = mOutputSizes.size();
170171
for (int i = 0; i < inputCount; i++) {

backends/mediatek/runtime/include/NeuronBackend.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ class NeuronBackend final : public ::executorch::runtime::BackendInterface {
3838
::executorch::runtime::Error execute(
3939
ET_UNUSED ::executorch::runtime::BackendExecutionContext& context,
4040
::executorch::runtime::DelegateHandle* handle,
41-
::executorch::runtime::EValue** args) const override;
41+
::executorch::runtime::Span<::executorch::runtime::EValue*> args)
42+
const override;
4243

4344
void destroy(::executorch::runtime::DelegateHandle* handle) const override;
4445

@@ -115,7 +116,7 @@ class NeuronExecuTorchDelegate {
115116

116117
::executorch::runtime::Error execute(
117118
ET_UNUSED ::executorch::runtime::BackendExecutionContext& context,
118-
::executorch::runtime::EValue** args) const;
119+
::executorch::runtime::Span<::executorch::runtime::EValue*> args) const;
119120

120121
private:
121122
template <bool isInput>
@@ -148,7 +149,8 @@ class NeuronExecuTorchDelegate {
148149
return NEURON_NO_ERROR;
149150
}
150151

151-
int HintNeuronBackend(::executorch::runtime::EValue** args) const;
152+
int HintNeuronBackend(
153+
::executorch::runtime::Span<::executorch::runtime::EValue*> args) const;
152154

153155
private:
154156
std::vector<size_t> mInputSizes;

backends/nxp/runtime/NeutronBackend.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ class NeutronBackend final : public PyTorchBackendInterface {
330330
Error execute(
331331
BackendExecutionContext& context,
332332
DelegateHandle* input_handle,
333-
EValue** args) const override {
333+
Span<EValue*> args) const override {
334334
NeutronConfig* cfg = static_cast<NeutronConfig*>(input_handle);
335335

336336
// Allocate place for input and output pointers.

backends/openvino/runtime/OpenvinoBackend.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ exr::Result<exr::DelegateHandle*> OpenvinoBackend::init(
9393
exr::Error OpenvinoBackend::execute(
9494
exr::BackendExecutionContext& context,
9595
exr::DelegateHandle* input_handle,
96-
exr::EValue** args) const {
96+
exr::Span<exr::EValue*> args) const {
9797
ExecutionHandle* execution_handle = (ExecutionHandle*)input_handle;
9898

9999
auto infer_request = execution_handle->infer_request;

backends/openvino/runtime/OpenvinoBackend.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class OpenvinoBackend final : public ::exr::BackendInterface {
4545
exr::Error execute(
4646
exr::BackendExecutionContext& context,
4747
exr::DelegateHandle* input_handle,
48-
exr::EValue** args) const override;
48+
exr::Span<exr::EValue*> args) const override;
4949
void destroy(exr::DelegateHandle* handle) const override;
5050

5151
private:

0 commit comments

Comments
 (0)