Skip to content

Commit e9928a7

Browse files
committed
Update
[ghstack-poisoned]
2 parents 431ddd8 + 3c30b31 commit e9928a7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+2981
-1505
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
90f1e7bed15ca5e48c61c5b6dc5ad4810524f82f
1+
ab43fe4bdf5ccd82897f0e982c451a0127bd175e

CMakeLists.txt

Lines changed: 70 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@
4545
# ~~~
4646
#
4747

48-
cmake_minimum_required(VERSION 3.24)
48+
# TODO Lower to 3.24 when XNNPACK dependency is updated to include
49+
# https://github.com/google/XNNPACK/commit/c690daa67f883e1b627aadf7684c06797e9a0684
50+
cmake_minimum_required(VERSION 3.29)
4951
project(executorch)
5052

5153
include(${PROJECT_SOURCE_DIR}/tools/cmake/common/preset.cmake)
@@ -160,134 +162,94 @@ endif()
160162
if(EXECUTORCH_BUILD_TESTS)
161163
include(CTest)
162164
else()
163-
# It looks like some of our third-party deps will try to turn this
164-
# on if it's not explicitly set, leading to confusing behavior.
165+
# It looks like some of our third-party deps will try to turn this on if it's
166+
# not explicitly set, leading to confusing behavior.
165167
set(BUILD_TESTING OFF)
166168
endif()
167169

168170
add_subdirectory(third-party)
169171

170172
if(NOT DEFINED FXDIV_SOURCE_DIR)
171-
include(GNUInstallDirs)
172-
get_extra_cmake_args_for_external_project(FXDIV_EXTRA_CMAKE_ARGS)
173-
set(FXDIV_SOURCE_DIR
174-
"${CMAKE_CURRENT_LIST_DIR}/backends/xnnpack/third-party/FXdiv"
173+
set(ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG
174+
${CMAKE_POSITION_INDEPENDENT_CODE}
175175
)
176-
set(FXDIV_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/fxdiv")
177-
set(FXDIV_INSTALL_DIR "${FXDIV_BINARY_DIR}/install")
178-
set(FXDIV_HEADER "${FXDIV_INSTALL_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/fxdiv.h")
179-
ExternalProject_Add(
180-
fxdivExternalProject
181-
SOURCE_DIR "${FXDIV_SOURCE_DIR}"
182-
BINARY_DIR "${FXDIV_BINARY_DIR}"
183-
INSTALL_DIR "${FXDIV_INSTALL_DIR}"
184-
BUILD_BYPRODUCTS "${FXDIV_HEADER}"
185-
CMAKE_ARGS "${FXDIV_EXTRA_CMAKE_ARGS}"
186-
-D
187-
CMAKE_INSTALL_PREFIX=<INSTALL_DIR>
188-
-D
189-
FXDIV_BUILD_TESTS=OFF
190-
-D
191-
FXDIV_BUILD_BENCHMARKS=OFF
176+
set(FXDIV_SOURCE_DIR "backends/xnnpack/third-party/FXdiv")
177+
add_subdirectory("${FXDIV_SOURCE_DIR}")
178+
set(CMAKE_POSITION_INDEPENDENT_CODE
179+
${ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG}
192180
)
193-
add_library(fxdiv INTERFACE IMPORTED)
194-
set_property(TARGET fxdiv PROPERTY IMPORTED_LOCATION "${FXDIV_HEADER}")
195181
endif()
196182

197183
if(EXECUTORCH_BUILD_CPUINFO)
198184
# --- cpuinfo
199-
set(CPUINFO_SOURCE_DIR
200-
"${CMAKE_CURRENT_LIST_DIR}/backends/xnnpack/third-party/cpuinfo"
185+
set(ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG
186+
${CMAKE_POSITION_INDEPENDENT_CODE}
201187
)
202-
set(CPUINFO_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/cpuinfo")
203-
set(CPUINFO_INSTALL_DIR "${CPUINFO_BINARY_DIR}/install")
204-
set(CPUINFO_LIBRARY
205-
"${CPUINFO_INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/libcpuinfo.a"
188+
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
189+
set(CPUINFO_SOURCE_DIR "backends/xnnpack/third-party/cpuinfo")
190+
set(CPUINFO_BUILD_TOOLS
191+
OFF
192+
CACHE BOOL ""
206193
)
207-
208-
get_extra_cmake_args_for_external_project(CPUINFO_EXTRA_CMAKE_ARGS)
209-
ExternalProject_Add(
210-
cpuinfoExternalProject
211-
SOURCE_DIR "${CPUINFO_SOURCE_DIR}"
212-
BINARY_DIR "${CPUINFO_BINARY_DIR}"
213-
INSTALL_DIR "${CPUINFO_INSTALL_DIR}"
214-
BUILD_BYPRODUCTS "${CPUINFO_LIBRARY}"
215-
CMAKE_ARGS "${CPUINFO_EXTRA_CMAKE_ARGS}"
216-
-D
217-
CMAKE_POSITION_INDEPENDENT_CODE=ON
218-
-D
219-
CPUINFO_BUILD_TOOLS=OFF
220-
-D
221-
CPUINFO_BUILD_UNIT_TESTS=OFF
222-
-D
223-
CPUINFO_BUILD_MOCK_TESTS=OFF
224-
-D
225-
CPUINFO_BUILD_BENCHMARKS=OFF
226-
-D
227-
CPUINFO_LIBRARY_TYPE=static
228-
-D
229-
CPUINFO_LOG_LEVEL=error
230-
-D
231-
CMAKE_INSTALL_PREFIX=<INSTALL_DIR>
232-
-D
233-
CLOG_SOURCE_DIR="${CPUINFO_SOURCE_DIR}/deps/clog"
194+
set(CPUINFO_BUILD_UNIT_TESTS
195+
OFF
196+
CACHE BOOL ""
197+
)
198+
set(CPUINFO_BUILD_MOCK_TESTS
199+
OFF
200+
CACHE BOOL ""
201+
)
202+
set(CPUINFO_BUILD_BENCHMARKS
203+
OFF
204+
CACHE BOOL ""
234205
)
235-
add_library(cpuinfo STATIC IMPORTED)
236-
set_property(TARGET cpuinfo PROPERTY IMPORTED_LOCATION "${CPUINFO_LIBRARY}")
237-
add_dependencies(cpuinfo cpuinfoExternalProject)
238-
# Trailing slash matters here! "Move everything from the temporary pthreadpool
239-
# install directory to the proper install directory."
240-
install(DIRECTORY "${CPUINFO_INSTALL_DIR}/"
241-
DESTINATION "${CMAKE_INSTALL_PREFIX}"
206+
set(CPUINFO_LIBRARY_TYPE
207+
"static"
208+
CACHE STRING ""
209+
)
210+
set(CPUINFO_LOG_LEVEL
211+
"error"
212+
CACHE STRING ""
213+
)
214+
set(CLOG_SOURCE_DIR "${CPUINFO_SOURCE_DIR}/deps/clog")
215+
add_subdirectory("${CPUINFO_SOURCE_DIR}")
216+
set(CMAKE_POSITION_INDEPENDENT_CODE
217+
${ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG}
242218
)
243219
endif()
244220

245221
if(EXECUTORCH_BUILD_PTHREADPOOL)
246222
# --- pthreadpool
247-
set(PTHREADPOOL_SOURCE_DIR
248-
"${CMAKE_CURRENT_LIST_DIR}/backends/xnnpack/third-party/pthreadpool"
223+
set(ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG
224+
${CMAKE_POSITION_INDEPENDENT_CODE}
225+
)
226+
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
227+
set(PTHREADPOOL_SOURCE_DIR "backends/xnnpack/third-party/pthreadpool")
228+
set(PTHREADPOOL_BUILD_TESTS
229+
OFF
230+
CACHE BOOL ""
249231
)
250-
include(GNUInstallDirs)
251-
set(PTHREADPOOL_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/pthreadpool")
252-
set(PTHREADPOOL_INSTALL_DIR "${PTHREADPOOL_BINARY_DIR}/install")
253-
set(PTHREADPOOL_LIBRARY
254-
"${PTHREADPOOL_INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/libpthreadpool.a"
232+
set(PTHREADPOOL_BUILD_BENCHMARKS
233+
OFF
234+
CACHE BOOL ""
235+
)
236+
set(PTHREADPOOL_LIBRARY_TYPE
237+
"static"
238+
CACHE STRING ""
239+
)
240+
set(PTHREADPOOL_ALLOW_DEPRECATED_API
241+
ON
242+
CACHE BOOL ""
255243
)
256-
get_extra_cmake_args_for_external_project(PTHREADPOOL_EXTRA_CMAKE_ARGS)
257244
if(APPLE)
258-
list(APPEND PTHREADPOOL_EXTRA_CMAKE_ARGS -D
259-
PTHREADPOOL_SYNC_PRIMITIVE=condvar
245+
set(PTHREADPOOL_SYNC_PRIMITIVE
246+
"condvar"
247+
CACHE STRING ""
260248
)
261249
endif()
262-
ExternalProject_Add(
263-
pthreadpoolExternalProject
264-
SOURCE_DIR "${PTHREADPOOL_SOURCE_DIR}"
265-
BINARY_DIR "${PTHREADPOOL_BINARY_DIR}"
266-
INSTALL_DIR "${PTHREADPOOL_INSTALL_DIR}"
267-
BUILD_BYPRODUCTS "${PTHREADPOOL_LIBRARY}"
268-
CMAKE_ARGS ${PTHREADPOOL_EXTRA_CMAKE_ARGS}
269-
-D
270-
PTHREADPOOL_BUILD_TESTS=OFF
271-
-D
272-
PTHREADPOOL_BUILD_BENCHMARKS=OFF
273-
-D
274-
PTHREADPOOL_LIBRARY_TYPE=static
275-
-D
276-
PTHREADPOOL_ALLOW_DEPRECATED_API=ON
277-
-D
278-
CMAKE_POSITION_INDEPENDENT_CODE=ON
279-
-D
280-
CMAKE_INSTALL_PREFIX=<INSTALL_DIR>
281-
)
282-
add_library(pthreadpool STATIC IMPORTED)
283-
set_property(
284-
TARGET pthreadpool PROPERTY IMPORTED_LOCATION "${PTHREADPOOL_LIBRARY}"
285-
)
286-
add_dependencies(pthreadpool pthreadpoolExternalProject)
287-
# Trailing slash matters here! "Move everything from the temporary pthreadpool
288-
# install directory to the proper install directory."
289-
install(DIRECTORY "${PTHREADPOOL_INSTALL_DIR}/"
290-
DESTINATION "${CMAKE_INSTALL_PREFIX}"
250+
add_subdirectory("${PTHREADPOOL_SOURCE_DIR}")
251+
set(CMAKE_POSITION_INDEPENDENT_CODE
252+
${ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG}
291253
)
292254
endif()
293255

@@ -604,6 +566,10 @@ if(EXECUTORCH_BUILD_EXTENSION_LLM)
604566
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/extension/llm/tokenizers)
605567
endif()
606568

569+
if(EXECUTORCH_BUILD_EXTENSION_LLM_APPLE)
570+
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/extension/llm/apple)
571+
endif()
572+
607573
if(EXECUTORCH_BUILD_EXTENSION_LLM_RUNNER)
608574
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/extension/llm/runner)
609575
endif()

Package.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ let products = deliverables([
6969
"c++",
7070
],
7171
],
72+
"executorch_llm": [
73+
"targets": [
74+
"executorch",
75+
],
76+
],
7277
"kernels_llm": [:],
7378
"kernels_optimized": [
7479
"frameworks": [

backends/apple/coreml/compiler/coreml_preprocess.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ def preprocess_model(
365365

366366
match model_type:
367367
case CoreMLBackend.MODEL_TYPE.COMPILED_MODEL:
368-
shutil.rmtree(str(model_path.resolve()))
368+
shutil.rmtree(str(model_path.resolve()), ignore_errors=True)
369369
model_path = model_dir_path / MODEL_PATHS.COMPILED_MODEL.value
370370
compiled_model_path = mlmodel.get_compiled_model_path()
371371
shutil.move(
@@ -396,7 +396,7 @@ def preprocess_model(
396396
for key, value in model_debug_info.debugSymbolToHandles.items()
397397
}
398398

399-
shutil.rmtree(str(dir_path.resolve()))
399+
shutil.rmtree(str(dir_path.resolve()), ignore_errors=True)
400400
return PreprocessResult(
401401
processed_bytes=processed_bytes,
402402
debug_handle_map=debug_handle_map,

0 commit comments

Comments
 (0)