-
Notifications
You must be signed in to change notification settings - Fork 3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
- Loading branch information
Showing
127 changed files
with
2,535 additions
and
1,189 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Licensed under the MIT License. | ||
|
||
#pragma once | ||
|
||
namespace onnxruntime { | ||
|
||
class PrepackedWeightsForGraph; | ||
|
||
// These options affect how the model initializers are written to the external file. | ||
// This includes options to align external initializer offset. | ||
// For models running on CPU, ORT will try to use mmap to load external | ||
// initializers. To use mmap, external initializer need to be offset aligned. | ||
// ORT saves external initializers into single data file, each initializer is | ||
// accessed with offset(start position of initializer) and length(byte length of | ||
// initializer) of the data file. To use mmap, each offset need to be aligned | ||
// which means offset need to divisible by allocation granularity(64KB for | ||
// windows and 4K for other OSes). With align_offset to true, ORT will align | ||
// offset for large initializer when save ONNX model with external data file. | ||
struct ModelSavingOptions { | ||
explicit ModelSavingOptions(size_t size_threshold) | ||
: initializer_size_threshold(size_threshold) {} | ||
|
||
// Mimimal initializer size in bytes to be externalized on disk | ||
size_t initializer_size_threshold; | ||
// Offset will always be page aligned and allocation granularity aligned for | ||
// mmap support. This is done by padding previous tensor data with zeros | ||
// keeping same length. | ||
bool align_offset = false; | ||
// Alignment threshold for size of data. | ||
// Having a low threshold will waste file space for small initializers. | ||
// Only when tensor's data size is > the page_align_threshold it will be force | ||
// aligned. Default to 1MB. | ||
int64_t align_threshold = 1048576; | ||
// The allocation Granularity for mmap() support. | ||
// Typically 64KB for Windows & 4KB for other OSes. Default to 64KB. | ||
#ifdef _WIN32 | ||
int64_t allocation_granularity = 65536; | ||
#else | ||
int64_t allocation_granularity = 4096; | ||
#endif | ||
}; | ||
|
||
} // namespace onnxruntime |
Oops, something went wrong.