Skip to content

Commit 034e098

Browse files
generatedunixname89002005232357facebook-github-bot
authored andcommitted
Revert D62617066 (#5351)
Summary: Pull Request resolved: #5351 This diff reverts D62617066 Breaking several jobs in OSS CI, as well as the seamless model internally Reviewed By: lucylq, shoumikhin, dbort Differential Revision: D62650762 fbshipit-source-id: 8205d32e498f51745529e174082fbcc36a8dd384
1 parent 0d1644f commit 034e098

File tree

6 files changed

+56
-85
lines changed

6 files changed

+56
-85
lines changed

examples/qualcomm/oss_scripts/llama2/runner/runner.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ Result<exec_aten::Tensor> Runner::run_model_step(
187187
*kv_outputs[j], new_out_addr, kv_outputs[j]->nbytes()) == Error::Ok,
188188
"Failed to set output tensor when updating v_cache");
189189
ET_CHECK_MSG(
190-
module_->set_output(kv_outputs[j], j + 1) == Error::Ok,
190+
module_->set_output_data_ptr(*kv_outputs[j], j + 1) == Error::Ok,
191191
"Failed to set llama output data pointer");
192192
}
193193

@@ -291,7 +291,7 @@ Error Runner::generate(
291291
sizes,
292292
kv_tensors.back()->scalar_type()));
293293
ET_CHECK_MSG(
294-
module_->set_output(kv_outputs.back(), i + 1) == Error::Ok,
294+
module_->set_output_data_ptr(kv_outputs.back(), i + 1) == Error::Ok,
295295
"Failed to set output tensor for kv cache");
296296
}
297297

@@ -323,7 +323,7 @@ Error Runner::generate(
323323
sizes,
324324
kv_tensors.back()->scalar_type()));
325325
ET_CHECK_MSG(
326-
module_->set_output(kv_outputs.back(), output_index) ==
326+
module_->set_output_data_ptr(kv_outputs.back(), output_index) ==
327327
Error::Ok,
328328
"Failed to set output tensor for llama block");
329329
}
@@ -333,7 +333,7 @@ Error Runner::generate(
333333
logits_data_shape,
334334
ScalarType::Float);
335335
ET_CHECK_MSG(
336-
module_->set_output(affine_logits) == Error::Ok,
336+
module_->set_output_data_ptr(affine_logits, 0) == Error::Ok,
337337
"Failed to set output tensor for affine module - logits");
338338

339339
// Start consuming user's prompts and generating new tokens

examples/qualcomm/qaihub_scripts/llama/runner/io_memory.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ void KVCachedMemory::update_io(
427427
// k, v are placed interleaved
428428
int index = (cache_stride << 1) + (cache_group << 5) + head;
429429
ET_CHECK_MSG(
430-
modules_[shard]->set_out
430+
modules_[shard]->set_output_data_ptr(
431431
output_tensors[shard][index], index) == Error::Ok,
432432
"failed to set output tensor for module %d's %d'th output "
433433
"while updating kv_cache output tensors",
@@ -450,7 +450,8 @@ void KVCachedMemory::update_io(
450450
for (int shard = 0; shard < output_tensors.size(); shard++) {
451451
for (int index = 0; index < output_tensors[shard].size(); index++) {
452452
ET_CHECK_MSG(
453-
modules_[shard]->set_output(output_tensors[shard][index], index) == Error::Ok,
453+
modules_[shard]->set_output_data_ptr(
454+
output_tensors[shard][index], index) == Error::Ok,
454455
"failed to set output tensor for module %d's %d'th output "
455456
"while updating kv_cache output tensors",
456457
shard,

examples/qualcomm/qaihub_scripts/llama/runner/runner.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,8 @@ Error Runner::generate(
177177
output_tensors.emplace_back(io_mem_->get_output_tensors(i));
178178
for (size_t j = 0; j < output_tensors[i].size(); ++j) {
179179
ET_CHECK_MSG(
180-
modules_[i]->set_output(output_tensors[i][j], j) == Error::Ok,
180+
modules_[i]->set_output_data_ptr(output_tensors[i][j], j) ==
181+
Error::Ok,
181182
"failed to set output tensor for module %d's %zu'th output",
182183
i,
183184
j);

examples/qualcomm/qaihub_scripts/stable_diffusion/runner/runner.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -373,11 +373,11 @@ Error Runner::generate(std::string prompt) {
373373
uncond_emb_vec.data(),
374374
{1, 77, 1024},
375375
encoder_method_meta.output_tensor_meta(0)->scalar_type());
376-
modules_[0]->set_output(cond_emb_tensor);
376+
modules_[0]->set_output_data_ptr(cond_emb_tensor, 0);
377377
long encoder_start = util::time_in_ms();
378378
auto cond_res = modules_[0]->forward(cond_tokens_tensor);
379379
stats_.text_encoder_execution_time += (util::time_in_ms() - encoder_start);
380-
modules_[0]->set_output(uncond_emb_tensor);
380+
modules_[0]->set_output_data_ptr(uncond_emb_tensor, 0);
381381
encoder_start = util::time_in_ms();
382382
auto uncond_res = modules_[0]->forward(uncond_tokens_tensor);
383383
stats_.text_encoder_execution_time += (util::time_in_ms() - encoder_start);
@@ -462,13 +462,13 @@ Error Runner::generate(std::string prompt) {
462462

463463
stats_.unet_aggregate_post_processing_time +=
464464
(util::time_in_ms() - start_post_process);
465-
modules_[1]->set_output(noise_pred_text_tensor);
465+
modules_[1]->set_output_data_ptr(noise_pred_text_tensor, 0);
466466
long start_unet_execution = util::time_in_ms();
467467
auto cond_res = modules_[1]->forward(
468468
{latent_tensor, time_emb_tensors[step_index], cond_emb_tensor});
469469
stats_.unet_aggregate_execution_time +=
470470
(util::time_in_ms() - start_unet_execution);
471-
modules_[1]->set_output(noise_pred_uncond_tensor);
471+
modules_[1]->set_output_data_ptr(noise_pred_uncond_tensor, 0);
472472
start_unet_execution = util::time_in_ms();
473473
auto uncond_res = modules_[1]->forward(
474474
{latent_tensor,
@@ -519,7 +519,7 @@ Error Runner::generate(std::string prompt) {
519519

520520
quant_tensor(latent, vae_input, vae_input_scale_, vae_input_offset_);
521521

522-
modules_[2]->set_output(output_tensor);
522+
modules_[2]->set_output_data_ptr(output_tensor, 0);
523523
long start_vae_execution = util::time_in_ms();
524524
auto vae_res = modules_[2]->forward(vae_input_tensor);
525525
stats_.vae_execution_time = (util::time_in_ms() - start_vae_execution);

extension/module/module.cpp

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -167,13 +167,12 @@ runtime::Result<runtime::MethodMeta> Module::method_meta(
167167

168168
runtime::Result<std::vector<runtime::EValue>> Module::execute(
169169
const std::string& method_name,
170-
const std::vector<runtime::EValue>& input_values) {
170+
const std::vector<runtime::EValue>& input) {
171171
ET_CHECK_OK_OR_RETURN_ERROR(load_method(method_name));
172172
auto& method = methods_.at(method_name).method;
173173

174-
ET_CHECK_OK_OR_RETURN_ERROR(
175-
method->set_inputs(exec_aten::ArrayRef<runtime::EValue>(
176-
input_values.data(), input_values.size())));
174+
ET_CHECK_OK_OR_RETURN_ERROR(method->set_inputs(
175+
exec_aten::ArrayRef<runtime::EValue>(input.data(), input.size())));
177176
ET_CHECK_OK_OR_RETURN_ERROR(method->execute());
178177

179178
const auto outputs_size = method->outputs_size();
@@ -184,18 +183,13 @@ runtime::Result<std::vector<runtime::EValue>> Module::execute(
184183
return outputs;
185184
}
186185

187-
runtime::Error Module::set_output(
188-
const std::string& method_name,
186+
runtime::Error Module::set_output_data_ptr(
189187
runtime::EValue output_value,
190-
size_t output_index) {
188+
size_t output_index,
189+
const std::string& method_name) {
191190
ET_CHECK_OK_OR_RETURN_ERROR(load_method(method_name));
191+
auto& output_tensor = output_value.toTensor();
192192
auto& method = methods_.at(method_name).method;
193-
ET_CHECK_OR_RETURN_ERROR(
194-
output_value.isTensor(),
195-
InvalidArgument,
196-
"output type: %zu is not tensor",
197-
(size_t)output_value.tag);
198-
const auto& output_tensor = output_value.toTensor();
199193
return method->set_output_data_ptr(
200194
output_tensor.mutable_data_ptr(), output_tensor.nbytes(), output_index);
201195
}

extension/module/module.h

Lines changed: 35 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -165,35 +165,34 @@ class Module {
165165
const std::string& method_name);
166166

167167
/**
168-
* Execute a specific method with the given input values and retrieve the
169-
* output values. Loads the program and method before executing if needed.
168+
* Execute a specific method with the given input and retrieve output.
169+
* Loads the program and method before executing if needed.
170170
*
171171
* @param[in] method_name The name of the method to execute.
172-
* @param[in] input_values A vector of input values to be passed to the
173-
* method.
172+
* @param[in] input A vector of input values to be passed to the method.
174173
*
175174
* @returns A Result object containing either a vector of output values
176175
* from the method or an error to indicate failure.
177176
*/
178177
ET_NODISCARD
179178
runtime::Result<std::vector<runtime::EValue>> execute(
180179
const std::string& method_name,
181-
const std::vector<runtime::EValue>& input_values);
180+
const std::vector<runtime::EValue>& input);
182181

183182
/**
184183
* Execute a specific method with a single input value.
185184
* Loads the program and method before executing if needed.
186185
*
187186
* @param[in] method_name The name of the method to execute.
188-
* @param[in] input_value A value to be passed to the method.
187+
* @param[in] input A value to be passed to the method.
189188
*
190189
* @returns A Result object containing either a vector of output values
191190
* from the method or an error to indicate failure.
192191
*/
193192
ET_NODISCARD inline runtime::Result<std::vector<runtime::EValue>> execute(
194193
const std::string& method_name,
195-
const runtime::EValue& input_value) {
196-
return execute(method_name, std::vector<runtime::EValue>{input_value});
194+
const runtime::EValue& input) {
195+
return execute(method_name, std::vector<runtime::EValue>{input});
197196
}
198197

199198
/**
@@ -211,20 +210,19 @@ class Module {
211210
}
212211

213212
/**
214-
* Retrieve the output value of a specific method with the given input values.
213+
* Retrieve the output value of a specific method with the given input.
215214
* Loads the program and method before execution if needed.
216215
*
217216
* @param[in] method_name The name of the method to execute.
218-
* @param[in] input_values A vector of input values to be passed to the
219-
* method.
217+
* @param[in] input A vector of input values to be passed to the method.
220218
*
221219
* @returns A Result object containing either the first output value from the
222220
* method or an error to indicate failure.
223221
*/
224222
ET_NODISCARD inline runtime::Result<runtime::EValue> get(
225223
const std::string& method_name,
226-
const std::vector<runtime::EValue>& input_values) {
227-
auto result = ET_UNWRAP(execute(method_name, input_values));
224+
const std::vector<runtime::EValue>& input) {
225+
auto result = ET_UNWRAP(execute(method_name, input));
228226
if (result.empty()) {
229227
return runtime::Error::InvalidArgument;
230228
}
@@ -236,15 +234,15 @@ class Module {
236234
* Loads the program and method before execution if needed.
237235
*
238236
* @param[in] method_name The name of the method to execute.
239-
* @param[in] input_value A value to be passed to the method.
237+
* @param[in] input A value to be passed to the method.
240238
*
241239
* @returns A Result object containing either the first output value from the
242240
* method or an error to indicate failure.
243241
*/
244242
ET_NODISCARD inline runtime::Result<runtime::EValue> get(
245243
const std::string& method_name,
246-
const runtime::EValue& input_value) {
247-
return get(method_name, std::vector<runtime::EValue>{input_value});
244+
const runtime::EValue& input) {
245+
return get(method_name, std::vector<runtime::EValue>{input});
248246
}
249247

250248
/**
@@ -262,31 +260,31 @@ class Module {
262260
}
263261

264262
/**
265-
* Execute the 'forward' method with the given input values and retrieve the
266-
* output values. Loads the program and method before executing if needed.
263+
* Execute the 'forward' method with the given input and retrieve output.
264+
* Loads the program and method before executing if needed.
267265
*
268-
* @param[in] input_values A vector of input values for the 'forward' method.
266+
* @param[in] input A vector of input values for the 'forward' method.
269267
*
270268
* @returns A Result object containing either a vector of output values
271269
* from the 'forward' method or an error to indicate failure.
272270
*/
273271
ET_NODISCARD inline runtime::Result<std::vector<runtime::EValue>> forward(
274-
const std::vector<runtime::EValue>& input_values) {
275-
return execute("forward", input_values);
272+
const std::vector<runtime::EValue>& input) {
273+
return execute("forward", input);
276274
}
277275

278276
/**
279277
* Execute the 'forward' method with a single value.
280278
* Loads the program and method before executing if needed.
281279
*
282-
* @param[in] input_value A value for the 'forward' method.
280+
* @param[in] input A value for the 'forward' method.
283281
*
284282
* @returns A Result object containing either a vector of output values
285283
* from the 'forward' method or an error to indicate failure.
286284
*/
287285
ET_NODISCARD inline runtime::Result<std::vector<runtime::EValue>> forward(
288-
const runtime::EValue& input_value) {
289-
return forward(std::vector<runtime::EValue>{input_value});
286+
const runtime::EValue& input) {
287+
return forward(std::vector<runtime::EValue>{input});
290288
}
291289

292290
/**
@@ -300,42 +298,6 @@ class Module {
300298
return forward(std::vector<runtime::EValue>{});
301299
}
302300

303-
/**
304-
* Sets the output tensor for a specific method.
305-
*
306-
* @param[in] method_name The name of the method.
307-
* @param[in] output_value The EValue containing the Tensor to set as the
308-
* method output.
309-
* @param[in] output_index Zero-based index of the output to set.
310-
*
311-
* @returns An Error to indicate success or failure.
312-
*
313-
* @note Only Tensor outputs are currently supported for setting.
314-
*/
315-
ET_NODISCARD
316-
runtime::Error set_output(
317-
const std::string& method_name,
318-
runtime::EValue output_value,
319-
size_t output_index = 0);
320-
321-
/**
322-
* Sets the output tensor for the "forward" method.
323-
*
324-
* @param[in] output_value The EValue containing the Tensor to set as the
325-
* method output.
326-
* @param[in] output_index Zero-based index of the output to set.
327-
*
328-
* @returns An Error to indicate success or failure.
329-
*
330-
* @note Only Tensor outputs are currently supported for setting.
331-
*/
332-
ET_NODISCARD
333-
inline runtime::Error set_output(
334-
runtime::EValue output_value,
335-
size_t output_index = 0) {
336-
return set_output("forward", output_value, output_index);
337-
}
338-
339301
/**
340302
* Retrieves the EventTracer instance being used by the Module.
341303
* EventTracer is used for tracking and logging events during the execution
@@ -348,6 +310,19 @@ class Module {
348310
return event_tracer_.get();
349311
}
350312

313+
/**
314+
* Set output data pointer for forward method.
315+
*
316+
* @param[in] output_value A Tensor for the output of 'forward' method.
317+
* @param[in] output_index Index of the output in 'forward' method.
318+
*
319+
* @returns An Error to indicate success or failure of the loading process.
320+
*/
321+
runtime::Error set_output_data_ptr(
322+
runtime::EValue output_value,
323+
size_t output_index,
324+
const std::string& method_name = "forward");
325+
351326
private:
352327
struct MethodHolder {
353328
std::vector<std::vector<uint8_t>> planned_buffers;

0 commit comments

Comments
 (0)