Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 18 additions & 21 deletions runtime/executor/pte_data_map.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ namespace executorch {
namespace ET_RUNTIME_NAMESPACE {
namespace internal {

/* static */ executorch::runtime::Result<PteDataMap> PteDataMap::create(
executorch::runtime::DataLoader* loader,
/* static */ Result<PteDataMap> PteDataMap::create(
DataLoader* loader,
size_t segment_base_offset,
const flatbuffers::FlatbufferNamedData* named_data,
const flatbuffers::FlatbufferDataSegment* segments) {
Expand All @@ -26,22 +26,22 @@ namespace internal {
}

ET_NODISCARD
executorch::runtime::Result<executorch::runtime::FreeableBuffer>
PteDataMap::get_data(executorch::aten::string_view key) const {
Result<FreeableBuffer> PteDataMap::get_data(
executorch::aten::string_view key) const {
for (uint32_t i = 0; i < named_data_->size(); i++) {
const auto* named_data_item = named_data_->Get(i);
ET_CHECK_OR_RETURN_ERROR(
named_data_->Get(i) != nullptr && named_data_->Get(i)->key() != nullptr,
named_data_item != nullptr && named_data_item->key() != nullptr,
InvalidArgument,
"Searching for key %.*s: NamedData at index %d is null",
static_cast<int>(key.size()),
key.data(),
i);
if (strncmp(
named_data_->Get(i)->key()->c_str(),
key.data(),
named_data_->Get(i)->key()->size()) == 0) {
const auto* named_data_key = named_data_item->key();
if (named_data_key->size() == key.size() &&
memcmp(named_data_key->data(), key.data(), key.size()) == 0) {
// Get the segment index.
size_t segment_index = named_data_->Get(i)->segment_index();
size_t segment_index = named_data_item->segment_index();

// Get the segment offset and size.
ET_CHECK_OR_RETURN_ERROR(
Expand All @@ -52,39 +52,36 @@ PteDataMap::get_data(executorch::aten::string_view key) const {
static_cast<int>(key.size()),
key.data(),
segments_->size());
size_t segment_offset = segments_->Get(segment_index)->offset();
size_t segment_size = segments_->Get(segment_index)->size();

const auto* segment = segments_->Get(segment_index);
return loader_->load(
/*offset=*/segment_base_offset_ + segment_offset,
segment_size,
/*offset=*/segment_base_offset_ + segment->offset(),
segment->size(),
DataLoader::SegmentInfo(DataLoader::SegmentInfo::Type::External));
}
}
return Error::NotFound;
}

ET_NODISCARD executorch::runtime::Result<uint32_t> PteDataMap::get_num_keys()
const {
ET_NODISCARD Result<uint32_t> PteDataMap::get_num_keys() const {
return named_data_->size();
}

ET_NODISCARD executorch::runtime::Result<const char*> PteDataMap::get_key(
uint32_t index) const {
ET_NODISCARD Result<const char*> PteDataMap::get_key(uint32_t index) const {
ET_CHECK_OR_RETURN_ERROR(
index < named_data_->size(),
InvalidArgument,
"Index out of range: named_data size is %u, received index %u",
named_data_->size(),
index);

const auto* item = named_data_->Get(index);
ET_CHECK_OR_RETURN_ERROR(
named_data_->Get(index) != nullptr &&
named_data_->Get(index)->key() != nullptr,
item != nullptr && item->key() != nullptr,
InvalidArgument,
"NamedData at index %u is null",
index);
return named_data_->Get(index)->key()->c_str();
return item->key()->c_str();
}

} // namespace internal
Expand Down
4 changes: 2 additions & 2 deletions test/size_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,8 @@ int main(int argc, char** argv) {
// It assumes the outputs are all tensors.
for (const auto i : c10::irange(method->outputs_size())) {
auto output_tensor = output_list[i].toTensor();
[[maybe_unused]] auto data_output = output_tensor.const_data_ptr<float>();
for (const auto j : c10::irange(output_tensor.numel())) {
ET_UNUSED auto data_output = output_tensor.const_data_ptr<float>();
for (ET_UNUSED const auto j : c10::irange(output_tensor.numel())) {
ET_LOG(Info, "%f", data_output[j]);
}
}
Expand Down