mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 22:04:26 +00:00
Change NN canonical timings to nanoseconds -- hal am: 4024d8f4d8 am: 004a3b37b1
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1534938 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I2d75b99442dfabd84768556844b3010b35a9b768
This commit is contained in:
@@ -44,13 +44,13 @@ class PreparedModel final : public nn::IPreparedModel {
|
||||
nn::ExecutionResult<std::pair<std::vector<nn::OutputShape>, nn::Timing>> execute(
|
||||
const nn::Request& request, nn::MeasureTiming measure,
|
||||
const nn::OptionalTimePoint& deadline,
|
||||
const nn::OptionalTimeoutDuration& loopTimeoutDuration) const override;
|
||||
const nn::OptionalDuration& loopTimeoutDuration) const override;
|
||||
|
||||
nn::GeneralResult<std::pair<nn::SyncFence, nn::ExecuteFencedInfoCallback>> executeFenced(
|
||||
const nn::Request& request, const std::vector<nn::SyncFence>& waitFor,
|
||||
nn::MeasureTiming measure, const nn::OptionalTimePoint& deadline,
|
||||
const nn::OptionalTimeoutDuration& loopTimeoutDuration,
|
||||
const nn::OptionalTimeoutDuration& timeoutDurationAfterFence) const override;
|
||||
const nn::OptionalDuration& loopTimeoutDuration,
|
||||
const nn::OptionalDuration& timeoutDurationAfterFence) const override;
|
||||
|
||||
std::any getUnderlyingResource() const override;
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ PreparedModel::PreparedModel(PrivateConstructorTag /*tag*/, sp<V1_0::IPreparedMo
|
||||
nn::ExecutionResult<std::pair<std::vector<nn::OutputShape>, nn::Timing>> PreparedModel::execute(
|
||||
const nn::Request& request, nn::MeasureTiming /*measure*/,
|
||||
const nn::OptionalTimePoint& /*deadline*/,
|
||||
const nn::OptionalTimeoutDuration& /*loopTimeoutDuration*/) const {
|
||||
const nn::OptionalDuration& /*loopTimeoutDuration*/) const {
|
||||
// Ensure that request is ready for IPC.
|
||||
std::optional<nn::Request> maybeRequestInShared;
|
||||
const nn::Request& requestInShared = NN_TRY(hal::utils::makeExecutionFailure(
|
||||
@@ -81,11 +81,12 @@ nn::ExecutionResult<std::pair<std::vector<nn::OutputShape>, nn::Timing>> Prepare
|
||||
}
|
||||
|
||||
nn::GeneralResult<std::pair<nn::SyncFence, nn::ExecuteFencedInfoCallback>>
|
||||
PreparedModel::executeFenced(
|
||||
const nn::Request& /*request*/, const std::vector<nn::SyncFence>& /*waitFor*/,
|
||||
nn::MeasureTiming /*measure*/, const nn::OptionalTimePoint& /*deadline*/,
|
||||
const nn::OptionalTimeoutDuration& /*loopTimeoutDuration*/,
|
||||
const nn::OptionalTimeoutDuration& /*timeoutDurationAfterFence*/) const {
|
||||
PreparedModel::executeFenced(const nn::Request& /*request*/,
|
||||
const std::vector<nn::SyncFence>& /*waitFor*/,
|
||||
nn::MeasureTiming /*measure*/,
|
||||
const nn::OptionalTimePoint& /*deadline*/,
|
||||
const nn::OptionalDuration& /*loopTimeoutDuration*/,
|
||||
const nn::OptionalDuration& /*timeoutDurationAfterFence*/) const {
|
||||
return NN_ERROR(nn::ErrorStatus::GENERAL_FAILURE)
|
||||
<< "IPreparedModel::executeFenced is not supported on 1.0 HAL service";
|
||||
}
|
||||
|
||||
@@ -45,13 +45,13 @@ class PreparedModel final : public nn::IPreparedModel {
|
||||
nn::ExecutionResult<std::pair<std::vector<nn::OutputShape>, nn::Timing>> execute(
|
||||
const nn::Request& request, nn::MeasureTiming measure,
|
||||
const nn::OptionalTimePoint& deadline,
|
||||
const nn::OptionalTimeoutDuration& loopTimeoutDuration) const override;
|
||||
const nn::OptionalDuration& loopTimeoutDuration) const override;
|
||||
|
||||
nn::GeneralResult<std::pair<nn::SyncFence, nn::ExecuteFencedInfoCallback>> executeFenced(
|
||||
const nn::Request& request, const std::vector<nn::SyncFence>& waitFor,
|
||||
nn::MeasureTiming measure, const nn::OptionalTimePoint& deadline,
|
||||
const nn::OptionalTimeoutDuration& loopTimeoutDuration,
|
||||
const nn::OptionalTimeoutDuration& timeoutDurationAfterFence) const override;
|
||||
const nn::OptionalDuration& loopTimeoutDuration,
|
||||
const nn::OptionalDuration& timeoutDurationAfterFence) const override;
|
||||
|
||||
std::any getUnderlyingResource() const override;
|
||||
|
||||
|
||||
@@ -43,7 +43,9 @@ constexpr std::underlying_type_t<Type> underlyingType(Type value) {
|
||||
return static_cast<std::underlying_type_t<Type>>(value);
|
||||
}
|
||||
|
||||
using HalDuration = std::chrono::duration<uint64_t, std::micro>;
|
||||
constexpr auto kVersion = android::nn::Version::ANDROID_Q;
|
||||
constexpr uint64_t kNoTiming = std::numeric_limits<uint64_t>::max();
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -270,7 +272,18 @@ GeneralResult<MeasureTiming> unvalidatedConvert(const hal::V1_2::MeasureTiming&
|
||||
}
|
||||
|
||||
GeneralResult<Timing> unvalidatedConvert(const hal::V1_2::Timing& timing) {
|
||||
return Timing{.timeOnDevice = timing.timeOnDevice, .timeInDriver = timing.timeInDriver};
|
||||
constexpr uint64_t kMaxTiming = std::chrono::floor<HalDuration>(Duration::max()).count();
|
||||
constexpr auto convertTiming = [](uint64_t halTiming) -> OptionalDuration {
|
||||
if (halTiming == kNoTiming) {
|
||||
return {};
|
||||
}
|
||||
if (halTiming > kMaxTiming) {
|
||||
return Duration::max();
|
||||
}
|
||||
return HalDuration{halTiming};
|
||||
};
|
||||
return Timing{.timeOnDevice = convertTiming(timing.timeOnDevice),
|
||||
.timeInDriver = convertTiming(timing.timeInDriver)};
|
||||
}
|
||||
|
||||
GeneralResult<Extension> unvalidatedConvert(const hal::V1_2::Extension& extension) {
|
||||
@@ -547,7 +560,14 @@ nn::GeneralResult<MeasureTiming> unvalidatedConvert(const nn::MeasureTiming& mea
|
||||
}
|
||||
|
||||
nn::GeneralResult<Timing> unvalidatedConvert(const nn::Timing& timing) {
|
||||
return Timing{.timeOnDevice = timing.timeOnDevice, .timeInDriver = timing.timeInDriver};
|
||||
constexpr auto convertTiming = [](nn::OptionalDuration canonicalTiming) -> uint64_t {
|
||||
if (!canonicalTiming.has_value()) {
|
||||
return kNoTiming;
|
||||
}
|
||||
return std::chrono::ceil<HalDuration>(*canonicalTiming).count();
|
||||
};
|
||||
return Timing{.timeOnDevice = convertTiming(timing.timeOnDevice),
|
||||
.timeInDriver = convertTiming(timing.timeInDriver)};
|
||||
}
|
||||
|
||||
nn::GeneralResult<Extension> unvalidatedConvert(const nn::Extension& extension) {
|
||||
|
||||
@@ -106,7 +106,7 @@ PreparedModel::executeAsynchronously(const V1_0::Request& request, MeasureTiming
|
||||
nn::ExecutionResult<std::pair<std::vector<nn::OutputShape>, nn::Timing>> PreparedModel::execute(
|
||||
const nn::Request& request, nn::MeasureTiming measure,
|
||||
const nn::OptionalTimePoint& /*deadline*/,
|
||||
const nn::OptionalTimeoutDuration& /*loopTimeoutDuration*/) const {
|
||||
const nn::OptionalDuration& /*loopTimeoutDuration*/) const {
|
||||
// Ensure that request is ready for IPC.
|
||||
std::optional<nn::Request> maybeRequestInShared;
|
||||
const nn::Request& requestInShared = NN_TRY(hal::utils::makeExecutionFailure(
|
||||
@@ -140,11 +140,12 @@ nn::ExecutionResult<std::pair<std::vector<nn::OutputShape>, nn::Timing>> Prepare
|
||||
}
|
||||
|
||||
nn::GeneralResult<std::pair<nn::SyncFence, nn::ExecuteFencedInfoCallback>>
|
||||
PreparedModel::executeFenced(
|
||||
const nn::Request& /*request*/, const std::vector<nn::SyncFence>& /*waitFor*/,
|
||||
nn::MeasureTiming /*measure*/, const nn::OptionalTimePoint& /*deadline*/,
|
||||
const nn::OptionalTimeoutDuration& /*loopTimeoutDuration*/,
|
||||
const nn::OptionalTimeoutDuration& /*timeoutDurationAfterFence*/) const {
|
||||
PreparedModel::executeFenced(const nn::Request& /*request*/,
|
||||
const std::vector<nn::SyncFence>& /*waitFor*/,
|
||||
nn::MeasureTiming /*measure*/,
|
||||
const nn::OptionalTimePoint& /*deadline*/,
|
||||
const nn::OptionalDuration& /*loopTimeoutDuration*/,
|
||||
const nn::OptionalDuration& /*timeoutDurationAfterFence*/) const {
|
||||
return NN_ERROR(nn::ErrorStatus::GENERAL_FAILURE)
|
||||
<< "IPreparedModel::executeFenced is not supported on 1.2 HAL service";
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ GeneralResult<Request::MemoryPool> unvalidatedConvert(
|
||||
const hal::V1_3::Request::MemoryPool& memoryPool);
|
||||
GeneralResult<OptionalTimePoint> unvalidatedConvert(
|
||||
const hal::V1_3::OptionalTimePoint& optionalTimePoint);
|
||||
GeneralResult<OptionalTimeoutDuration> unvalidatedConvert(
|
||||
GeneralResult<OptionalDuration> unvalidatedConvert(
|
||||
const hal::V1_3::OptionalTimeoutDuration& optionalTimeoutDuration);
|
||||
GeneralResult<ErrorStatus> unvalidatedConvert(const hal::V1_3::ErrorStatus& errorStatus);
|
||||
|
||||
@@ -54,7 +54,7 @@ GeneralResult<Model> convert(const hal::V1_3::Model& model);
|
||||
GeneralResult<BufferDesc> convert(const hal::V1_3::BufferDesc& bufferDesc);
|
||||
GeneralResult<Request> convert(const hal::V1_3::Request& request);
|
||||
GeneralResult<OptionalTimePoint> convert(const hal::V1_3::OptionalTimePoint& optionalTimePoint);
|
||||
GeneralResult<OptionalTimeoutDuration> convert(
|
||||
GeneralResult<OptionalDuration> convert(
|
||||
const hal::V1_3::OptionalTimeoutDuration& optionalTimeoutDuration);
|
||||
GeneralResult<ErrorStatus> convert(const hal::V1_3::ErrorStatus& errorStatus);
|
||||
|
||||
@@ -86,7 +86,7 @@ nn::GeneralResult<Request::MemoryPool> unvalidatedConvert(
|
||||
nn::GeneralResult<OptionalTimePoint> unvalidatedConvert(
|
||||
const nn::OptionalTimePoint& optionalTimePoint);
|
||||
nn::GeneralResult<OptionalTimeoutDuration> unvalidatedConvert(
|
||||
const nn::OptionalTimeoutDuration& optionalTimeoutDuration);
|
||||
const nn::OptionalDuration& optionalTimeoutDuration);
|
||||
nn::GeneralResult<ErrorStatus> unvalidatedConvert(const nn::ErrorStatus& errorStatus);
|
||||
|
||||
nn::GeneralResult<Priority> convert(const nn::Priority& priority);
|
||||
@@ -96,7 +96,7 @@ nn::GeneralResult<BufferDesc> convert(const nn::BufferDesc& bufferDesc);
|
||||
nn::GeneralResult<Request> convert(const nn::Request& request);
|
||||
nn::GeneralResult<OptionalTimePoint> convert(const nn::OptionalTimePoint& optionalTimePoint);
|
||||
nn::GeneralResult<OptionalTimeoutDuration> convert(
|
||||
const nn::OptionalTimeoutDuration& optionalTimeoutDuration);
|
||||
const nn::OptionalDuration& optionalTimeoutDuration);
|
||||
nn::GeneralResult<ErrorStatus> convert(const nn::ErrorStatus& errorStatus);
|
||||
|
||||
nn::GeneralResult<hidl_handle> convert(const nn::SharedHandle& handle);
|
||||
|
||||
@@ -44,13 +44,13 @@ class PreparedModel final : public nn::IPreparedModel {
|
||||
nn::ExecutionResult<std::pair<std::vector<nn::OutputShape>, nn::Timing>> execute(
|
||||
const nn::Request& request, nn::MeasureTiming measure,
|
||||
const nn::OptionalTimePoint& deadline,
|
||||
const nn::OptionalTimeoutDuration& loopTimeoutDuration) const override;
|
||||
const nn::OptionalDuration& loopTimeoutDuration) const override;
|
||||
|
||||
nn::GeneralResult<std::pair<nn::SyncFence, nn::ExecuteFencedInfoCallback>> executeFenced(
|
||||
const nn::Request& request, const std::vector<nn::SyncFence>& waitFor,
|
||||
nn::MeasureTiming measure, const nn::OptionalTimePoint& deadline,
|
||||
const nn::OptionalTimeoutDuration& loopTimeoutDuration,
|
||||
const nn::OptionalTimeoutDuration& timeoutDurationAfterFence) const override;
|
||||
const nn::OptionalDuration& loopTimeoutDuration,
|
||||
const nn::OptionalDuration& timeoutDurationAfterFence) const override;
|
||||
|
||||
std::any getUnderlyingResource() const override;
|
||||
|
||||
|
||||
@@ -272,47 +272,26 @@ GeneralResult<Request::MemoryPool> unvalidatedConvert(
|
||||
|
||||
GeneralResult<OptionalTimePoint> unvalidatedConvert(
|
||||
const hal::V1_3::OptionalTimePoint& optionalTimePoint) {
|
||||
constexpr auto kTimePointMaxCount = TimePoint::max().time_since_epoch().count();
|
||||
const auto makeTimePoint = [](uint64_t count) -> GeneralResult<OptionalTimePoint> {
|
||||
if (count > kTimePointMaxCount) {
|
||||
return NN_ERROR(nn::ErrorStatus::GENERAL_FAILURE)
|
||||
<< "Unable to unvalidatedConvert OptionalTimePoint because the count exceeds "
|
||||
"the max";
|
||||
}
|
||||
const auto nanoseconds = std::chrono::nanoseconds{count};
|
||||
return TimePoint{nanoseconds};
|
||||
};
|
||||
|
||||
using Discriminator = hal::V1_3::OptionalTimePoint::hidl_discriminator;
|
||||
switch (optionalTimePoint.getDiscriminator()) {
|
||||
case Discriminator::none:
|
||||
return std::nullopt;
|
||||
return {};
|
||||
case Discriminator::nanosecondsSinceEpoch:
|
||||
return makeTimePoint(optionalTimePoint.nanosecondsSinceEpoch());
|
||||
return TimePoint{Duration{optionalTimePoint.nanosecondsSinceEpoch()}};
|
||||
}
|
||||
return NN_ERROR(nn::ErrorStatus::GENERAL_FAILURE)
|
||||
<< "Invalid OptionalTimePoint discriminator "
|
||||
<< underlyingType(optionalTimePoint.getDiscriminator());
|
||||
}
|
||||
|
||||
GeneralResult<OptionalTimeoutDuration> unvalidatedConvert(
|
||||
GeneralResult<OptionalDuration> unvalidatedConvert(
|
||||
const hal::V1_3::OptionalTimeoutDuration& optionalTimeoutDuration) {
|
||||
constexpr auto kTimeoutDurationMaxCount = TimeoutDuration::max().count();
|
||||
const auto makeTimeoutDuration = [](uint64_t count) -> GeneralResult<OptionalTimeoutDuration> {
|
||||
if (count > kTimeoutDurationMaxCount) {
|
||||
return NN_ERROR(nn::ErrorStatus::GENERAL_FAILURE)
|
||||
<< "Unable to unvalidatedConvert OptionalTimeoutDuration because the count "
|
||||
"exceeds the max";
|
||||
}
|
||||
return TimeoutDuration{count};
|
||||
};
|
||||
|
||||
using Discriminator = hal::V1_3::OptionalTimeoutDuration::hidl_discriminator;
|
||||
switch (optionalTimeoutDuration.getDiscriminator()) {
|
||||
case Discriminator::none:
|
||||
return std::nullopt;
|
||||
return {};
|
||||
case Discriminator::nanoseconds:
|
||||
return makeTimeoutDuration(optionalTimeoutDuration.nanoseconds());
|
||||
return Duration(optionalTimeoutDuration.nanoseconds());
|
||||
}
|
||||
return NN_ERROR(nn::ErrorStatus::GENERAL_FAILURE)
|
||||
<< "Invalid OptionalTimeoutDuration discriminator "
|
||||
@@ -360,7 +339,7 @@ GeneralResult<OptionalTimePoint> convert(const hal::V1_3::OptionalTimePoint& opt
|
||||
return validatedConvert(optionalTimePoint);
|
||||
}
|
||||
|
||||
GeneralResult<OptionalTimeoutDuration> convert(
|
||||
GeneralResult<OptionalDuration> convert(
|
||||
const hal::V1_3::OptionalTimeoutDuration& optionalTimeoutDuration) {
|
||||
return validatedConvert(optionalTimeoutDuration);
|
||||
}
|
||||
@@ -629,27 +608,16 @@ nn::GeneralResult<OptionalTimePoint> unvalidatedConvert(
|
||||
OptionalTimePoint ret;
|
||||
if (optionalTimePoint.has_value()) {
|
||||
const auto count = optionalTimePoint.value().time_since_epoch().count();
|
||||
if (count < 0) {
|
||||
return NN_ERROR(nn::ErrorStatus::GENERAL_FAILURE)
|
||||
<< "Unable to unvalidatedConvert OptionalTimePoint because time since epoch "
|
||||
"count is "
|
||||
"negative";
|
||||
}
|
||||
ret.nanosecondsSinceEpoch(count);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
nn::GeneralResult<OptionalTimeoutDuration> unvalidatedConvert(
|
||||
const nn::OptionalTimeoutDuration& optionalTimeoutDuration) {
|
||||
const nn::OptionalDuration& optionalTimeoutDuration) {
|
||||
OptionalTimeoutDuration ret;
|
||||
if (optionalTimeoutDuration.has_value()) {
|
||||
const auto count = optionalTimeoutDuration.value().count();
|
||||
if (count < 0) {
|
||||
return NN_ERROR(nn::ErrorStatus::GENERAL_FAILURE)
|
||||
<< "Unable to unvalidatedConvert OptionalTimeoutDuration because count is "
|
||||
"negative";
|
||||
}
|
||||
ret.nanoseconds(count);
|
||||
}
|
||||
return ret;
|
||||
@@ -697,7 +665,7 @@ nn::GeneralResult<OptionalTimePoint> convert(const nn::OptionalTimePoint& option
|
||||
}
|
||||
|
||||
nn::GeneralResult<OptionalTimeoutDuration> convert(
|
||||
const nn::OptionalTimeoutDuration& optionalTimeoutDuration) {
|
||||
const nn::OptionalDuration& optionalTimeoutDuration) {
|
||||
return validatedConvert(optionalTimeoutDuration);
|
||||
}
|
||||
|
||||
|
||||
@@ -159,7 +159,7 @@ PreparedModel::executeAsynchronously(const Request& request, V1_2::MeasureTiming
|
||||
nn::ExecutionResult<std::pair<std::vector<nn::OutputShape>, nn::Timing>> PreparedModel::execute(
|
||||
const nn::Request& request, nn::MeasureTiming measure,
|
||||
const nn::OptionalTimePoint& deadline,
|
||||
const nn::OptionalTimeoutDuration& loopTimeoutDuration) const {
|
||||
const nn::OptionalDuration& loopTimeoutDuration) const {
|
||||
// Ensure that request is ready for IPC.
|
||||
std::optional<nn::Request> maybeRequestInShared;
|
||||
const nn::Request& requestInShared = NN_TRY(hal::utils::makeExecutionFailure(
|
||||
@@ -200,8 +200,8 @@ nn::ExecutionResult<std::pair<std::vector<nn::OutputShape>, nn::Timing>> Prepare
|
||||
nn::GeneralResult<std::pair<nn::SyncFence, nn::ExecuteFencedInfoCallback>>
|
||||
PreparedModel::executeFenced(const nn::Request& request, const std::vector<nn::SyncFence>& waitFor,
|
||||
nn::MeasureTiming measure, const nn::OptionalTimePoint& deadline,
|
||||
const nn::OptionalTimeoutDuration& loopTimeoutDuration,
|
||||
const nn::OptionalTimeoutDuration& timeoutDurationAfterFence) const {
|
||||
const nn::OptionalDuration& loopTimeoutDuration,
|
||||
const nn::OptionalDuration& timeoutDurationAfterFence) const {
|
||||
// Ensure that request is ready for IPC.
|
||||
std::optional<nn::Request> maybeRequestInShared;
|
||||
const nn::Request& requestInShared =
|
||||
|
||||
@@ -32,13 +32,13 @@ class InvalidPreparedModel final : public nn::IPreparedModel {
|
||||
nn::ExecutionResult<std::pair<std::vector<nn::OutputShape>, nn::Timing>> execute(
|
||||
const nn::Request& request, nn::MeasureTiming measure,
|
||||
const nn::OptionalTimePoint& deadline,
|
||||
const nn::OptionalTimeoutDuration& loopTimeoutDuration) const override;
|
||||
const nn::OptionalDuration& loopTimeoutDuration) const override;
|
||||
|
||||
nn::GeneralResult<std::pair<nn::SyncFence, nn::ExecuteFencedInfoCallback>> executeFenced(
|
||||
const nn::Request& request, const std::vector<nn::SyncFence>& waitFor,
|
||||
nn::MeasureTiming measure, const nn::OptionalTimePoint& deadline,
|
||||
const nn::OptionalTimeoutDuration& loopTimeoutDuration,
|
||||
const nn::OptionalTimeoutDuration& timeoutDurationAfterFence) const override;
|
||||
const nn::OptionalDuration& loopTimeoutDuration,
|
||||
const nn::OptionalDuration& timeoutDurationAfterFence) const override;
|
||||
|
||||
std::any getUnderlyingResource() const override;
|
||||
};
|
||||
|
||||
@@ -49,13 +49,13 @@ class ResilientPreparedModel final : public nn::IPreparedModel {
|
||||
nn::ExecutionResult<std::pair<std::vector<nn::OutputShape>, nn::Timing>> execute(
|
||||
const nn::Request& request, nn::MeasureTiming measure,
|
||||
const nn::OptionalTimePoint& deadline,
|
||||
const nn::OptionalTimeoutDuration& loopTimeoutDuration) const override;
|
||||
const nn::OptionalDuration& loopTimeoutDuration) const override;
|
||||
|
||||
nn::GeneralResult<std::pair<nn::SyncFence, nn::ExecuteFencedInfoCallback>> executeFenced(
|
||||
const nn::Request& request, const std::vector<nn::SyncFence>& waitFor,
|
||||
nn::MeasureTiming measure, const nn::OptionalTimePoint& deadline,
|
||||
const nn::OptionalTimeoutDuration& loopTimeoutDuration,
|
||||
const nn::OptionalTimeoutDuration& timeoutDurationAfterFence) const override;
|
||||
const nn::OptionalDuration& loopTimeoutDuration,
|
||||
const nn::OptionalDuration& timeoutDurationAfterFence) const override;
|
||||
|
||||
std::any getUnderlyingResource() const override;
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace android::hardware::neuralnetworks::utils {
|
||||
nn::ExecutionResult<std::pair<std::vector<nn::OutputShape>, nn::Timing>>
|
||||
InvalidPreparedModel::execute(const nn::Request& /*request*/, nn::MeasureTiming /*measure*/,
|
||||
const nn::OptionalTimePoint& /*deadline*/,
|
||||
const nn::OptionalTimeoutDuration& /*loopTimeoutDuration*/) const {
|
||||
const nn::OptionalDuration& /*loopTimeoutDuration*/) const {
|
||||
return NN_ERROR() << "InvalidPreparedModel";
|
||||
}
|
||||
|
||||
@@ -37,8 +37,8 @@ nn::GeneralResult<std::pair<nn::SyncFence, nn::ExecuteFencedInfoCallback>>
|
||||
InvalidPreparedModel::executeFenced(
|
||||
const nn::Request& /*request*/, const std::vector<nn::SyncFence>& /*waitFor*/,
|
||||
nn::MeasureTiming /*measure*/, const nn::OptionalTimePoint& /*deadline*/,
|
||||
const nn::OptionalTimeoutDuration& /*loopTimeoutDuration*/,
|
||||
const nn::OptionalTimeoutDuration& /*timeoutDurationAfterFence*/) const {
|
||||
const nn::OptionalDuration& /*loopTimeoutDuration*/,
|
||||
const nn::OptionalDuration& /*timeoutDurationAfterFence*/) const {
|
||||
return NN_ERROR() << "InvalidPreparedModel";
|
||||
}
|
||||
|
||||
|
||||
@@ -64,16 +64,17 @@ nn::SharedPreparedModel ResilientPreparedModel::recover(
|
||||
nn::ExecutionResult<std::pair<std::vector<nn::OutputShape>, nn::Timing>>
|
||||
ResilientPreparedModel::execute(const nn::Request& request, nn::MeasureTiming measure,
|
||||
const nn::OptionalTimePoint& deadline,
|
||||
const nn::OptionalTimeoutDuration& loopTimeoutDuration) const {
|
||||
const nn::OptionalDuration& loopTimeoutDuration) const {
|
||||
return getPreparedModel()->execute(request, measure, deadline, loopTimeoutDuration);
|
||||
}
|
||||
|
||||
nn::GeneralResult<std::pair<nn::SyncFence, nn::ExecuteFencedInfoCallback>>
|
||||
ResilientPreparedModel::executeFenced(
|
||||
const nn::Request& request, const std::vector<nn::SyncFence>& waitFor,
|
||||
nn::MeasureTiming measure, const nn::OptionalTimePoint& deadline,
|
||||
const nn::OptionalTimeoutDuration& loopTimeoutDuration,
|
||||
const nn::OptionalTimeoutDuration& timeoutDurationAfterFence) const {
|
||||
ResilientPreparedModel::executeFenced(const nn::Request& request,
|
||||
const std::vector<nn::SyncFence>& waitFor,
|
||||
nn::MeasureTiming measure,
|
||||
const nn::OptionalTimePoint& deadline,
|
||||
const nn::OptionalDuration& loopTimeoutDuration,
|
||||
const nn::OptionalDuration& timeoutDurationAfterFence) const {
|
||||
return getPreparedModel()->executeFenced(request, waitFor, measure, deadline,
|
||||
loopTimeoutDuration, timeoutDurationAfterFence);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user