From 80ca2f7871891ebd805ebeb8d80a19976f2a3c32 Mon Sep 17 00:00:00 2001 From: lucylq Date: Fri, 3 Oct 2025 16:35:16 -0700 Subject: [PATCH] Patch https://github.com/pytorch/executorch/pull/14754 (#14786) landed as https://www.internalfb.com/diff/D82075758 (cherry picked from commit 7c7b729e0413390c8991819c87324ab9fb5d8c4c) --- .../ExecuTorch/Exported/ExecuTorchModule.h | 8 ++++---- .../ExecuTorch/Exported/ExecuTorchModule.mm | 19 +++++++++++++------ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/extension/apple/ExecuTorch/Exported/ExecuTorchModule.h b/extension/apple/ExecuTorch/Exported/ExecuTorchModule.h index cda9a914bc3..9b8400d739f 100644 --- a/extension/apple/ExecuTorch/Exported/ExecuTorchModule.h +++ b/extension/apple/ExecuTorch/Exported/ExecuTorchModule.h @@ -126,14 +126,14 @@ NS_SWIFT_NAME(Module) * Initializes a module with a file path, data path and a specified load mode. * * @param filePath A string representing the path to the ExecuTorch program file. - * @param dataFilePath A string representing the path to a .ptd file with + * @param dataFilePaths A list of strings representing paths to .ptd files with * external tensors and external data. * @param loadMode A value from ExecuTorchModuleLoadMode that determines the * file loading behavior. * @return An initialized ExecuTorchModule instance. */ - (instancetype)initWithFilePath:(NSString *)filePath - dataFilePath:(NSString *)dataFilePath + dataFilePaths:(NSArray *)dataFilePaths loadMode:(ExecuTorchModuleLoadMode)loadMode NS_DESIGNATED_INITIALIZER; @@ -141,12 +141,12 @@ NS_SWIFT_NAME(Module) * Initializes a module with a file path, data path and a specified load mode. * * @param filePath A string representing the path to the ExecuTorch program file. - * @param dataFilePath A string representing the path to a .ptd file with + * @param dataFilePaths A list of strings representing paths to .ptd files with * external tensors and external data. * @return An initialized ExecuTorchModule instance. */ - (instancetype)initWithFilePath:(NSString *)filePath - dataFilePath:(NSString *)dataFilePath; + dataFilePaths:(NSArray *)dataFilePaths; /** * Initializes a module with a file path and a specified load mode. diff --git a/extension/apple/ExecuTorch/Exported/ExecuTorchModule.mm b/extension/apple/ExecuTorch/Exported/ExecuTorchModule.mm index ce58f2fb21a..69bb59c860e 100644 --- a/extension/apple/ExecuTorch/Exported/ExecuTorchModule.mm +++ b/extension/apple/ExecuTorch/Exported/ExecuTorchModule.mm @@ -250,13 +250,20 @@ @implementation ExecuTorchModule { } - (instancetype)initWithFilePath:(NSString *)filePath - dataFilePath:(NSString *)dataFilePath + dataFilePaths:(NSArray *)dataFilePaths loadMode:(ExecuTorchModuleLoadMode)loadMode { self = [super init]; if (self) { + // Convert NSArray to std::vector + std::vector dataFilePathsVector; + if (dataFilePaths != nil) { + for (NSString *dataFile in dataFilePaths) { + dataFilePathsVector.emplace_back(dataFile.UTF8String); + } + } _module = std::make_unique( filePath.UTF8String, - dataFilePath.UTF8String, + dataFilePathsVector, static_cast(loadMode) ); _inputs = [NSMutableDictionary new]; @@ -266,21 +273,21 @@ - (instancetype)initWithFilePath:(NSString *)filePath } - (instancetype)initWithFilePath:(NSString *)filePath - dataFilePath:(NSString *)dataFilePath { + dataFilePaths:(NSArray *)dataFilePaths { return [self initWithFilePath:filePath - dataFilePath:dataFilePath + dataFilePaths:dataFilePaths loadMode:ExecuTorchModuleLoadModeFile]; } - (instancetype)initWithFilePath:(NSString *)filePath loadMode:(ExecuTorchModuleLoadMode)loadMode { return [self initWithFilePath:filePath - dataFilePath:@"" + dataFilePaths:@[] loadMode:loadMode]; } - (instancetype)initWithFilePath:(NSString *)filePath { return [self initWithFilePath:filePath - dataFilePath:@"" + dataFilePaths:@[] loadMode:ExecuTorchModuleLoadModeFile]; }