From 77d88d576bb6b8cb8fcab7886f016e7f00ca1e45 Mon Sep 17 00:00:00 2001 From: Gregory James Comer Date: Wed, 20 Aug 2025 16:05:14 -0700 Subject: [PATCH 1/8] Update [ghstack-poisoned] --- .github/workflows/build-presets.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-presets.yml b/.github/workflows/build-presets.yml index 9140c91c99b..8cb25c74691 100644 --- a/.github/workflows/build-presets.yml +++ b/.github/workflows/build-presets.yml @@ -109,7 +109,7 @@ jobs: strategy: fail-fast: false matrix: - preset: [windows] # TODO (gjcomer) Re-enable pybind once functional + preset: [pybind, windows] with: job-name: build ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} From efe8513e972979444412b79c5bbb76982545e031 Mon Sep 17 00:00:00 2001 From: Gregory James Comer Date: Wed, 20 Aug 2025 16:29:58 -0700 Subject: [PATCH 2/8] Update [ghstack-poisoned] --- .github/workflows/build-presets.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-presets.yml b/.github/workflows/build-presets.yml index 8cb25c74691..9fa8fb50151 100644 --- a/.github/workflows/build-presets.yml +++ b/.github/workflows/build-presets.yml @@ -127,7 +127,7 @@ jobs: conda activate et python install_requirements.py - cmake --preset ${{ matrix.preset }} + cmake --preset ${{ matrix.preset }} -T ClangCL if (\$LASTEXITCODE -ne 0) { Write-Host "CMake configuration was unsuccessful. Exit code: \$LASTEXITCODE." exit \$LASTEXITCODE From 35815db33bad76b6ef4960c7ff24a68f33c705bb Mon Sep 17 00:00:00 2001 From: Gregory James Comer Date: Wed, 20 Aug 2025 17:01:35 -0700 Subject: [PATCH 3/8] Update [ghstack-poisoned] --- tools/cmake/preset/pybind.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/cmake/preset/pybind.cmake b/tools/cmake/preset/pybind.cmake index e13fe026ef2..7321a29e72e 100644 --- a/tools/cmake/preset/pybind.cmake +++ b/tools/cmake/preset/pybind.cmake @@ -25,8 +25,10 @@ set_overridable_option(EXECUTORCH_BUILD_EXTENSION_TRAINING ON) if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") set_overridable_option(EXECUTORCH_BUILD_COREML ON) + set_overridable_option(EXECUTORCH_BUILD_EXTENSION_TRAINING ON) elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") set_overridable_option(EXECUTORCH_BUILD_COREML ON) + set_overridable_option(EXECUTORCH_BUILD_EXTENSION_TRAINING ON) elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "WIN32" ) From 35e6070122a2afea315c278b4d8652ac390a897c Mon Sep 17 00:00:00 2001 From: Gregory James Comer Date: Wed, 20 Aug 2025 17:02:28 -0700 Subject: [PATCH 4/8] Update [ghstack-poisoned] --- tools/cmake/preset/pybind.cmake | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/cmake/preset/pybind.cmake b/tools/cmake/preset/pybind.cmake index 7321a29e72e..c7ad94cd8be 100644 --- a/tools/cmake/preset/pybind.cmake +++ b/tools/cmake/preset/pybind.cmake @@ -21,7 +21,6 @@ set_overridable_option(EXECUTORCH_BUILD_EXTENSION_FLAT_TENSOR ON) set_overridable_option(EXECUTORCH_BUILD_EXTENSION_DATA_LOADER ON) set_overridable_option(EXECUTORCH_BUILD_KERNELS_OPTIMIZED ON) set_overridable_option(EXECUTORCH_BUILD_EXTENSION_MODULE ON) -set_overridable_option(EXECUTORCH_BUILD_EXTENSION_TRAINING ON) if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") set_overridable_option(EXECUTORCH_BUILD_COREML ON) From c71aace7bee6718236a54897b9c85e223d938fb7 Mon Sep 17 00:00:00 2001 From: Gregory James Comer Date: Wed, 20 Aug 2025 17:46:06 -0700 Subject: [PATCH 5/8] Update [ghstack-poisoned] --- tools/cmake/preset/pybind.cmake | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tools/cmake/preset/pybind.cmake b/tools/cmake/preset/pybind.cmake index c7ad94cd8be..3f63a056afa 100644 --- a/tools/cmake/preset/pybind.cmake +++ b/tools/cmake/preset/pybind.cmake @@ -31,7 +31,15 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "WIN32" ) - # Windows or other OS-specific code here + if (NOT CMAKE_GENERATOR_TOOLSET MATCHES "ClangCL") + message(FATAL_ERROR "ExecuTorch requires the ClangCL toolset on Windows. Please configure with -T ClangCL.") + endif() + + # These XNNPACK options don't currently build on Windows with Clang. + set_overridable_option(XNNPACK_ENABLE_AVX256SKX OFF) + set_overridable_option(XNNPACK_ENABLE_AVX256VNNI OFF) + set_overridable_option(XNNPACK_ENABLE_AVX256VNNIGFNI OFF) + set_overridable_option(XNNPACK_ENABLE_AVX512BF16 OFF) else() message( FATAL_ERROR "Unsupported CMAKE_SYSTEM_NAME for pybind: ${CMAKE_SYSTEM_NAME}" From 9fbb993e9179b0e3f9b8d8057184de912a1305d4 Mon Sep 17 00:00:00 2001 From: Gregory James Comer Date: Wed, 20 Aug 2025 18:27:06 -0700 Subject: [PATCH 6/8] Update [ghstack-poisoned] --- extension/data_loader/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/extension/data_loader/CMakeLists.txt b/extension/data_loader/CMakeLists.txt index 104cd23c977..1e7987a31eb 100644 --- a/extension/data_loader/CMakeLists.txt +++ b/extension/data_loader/CMakeLists.txt @@ -24,6 +24,9 @@ if(NOT ET_HAVE_SYS_MMAN_H AND NOT WIN32) "extension/data_loader/mmap_data_loader.cpp" ) endif() +if (WIN32) + list(APPEND _extension_data_loader__srcs "extension/data_loader/mman_windows.cpp") +endif() list(TRANSFORM _extension_data_loader__srcs PREPEND "${EXECUTORCH_ROOT}/") add_library(extension_data_loader ${_extension_data_loader__srcs}) target_link_libraries(extension_data_loader executorch_core) From 395d2d43b3b2a8ca3db6c1dbd3b702c38847932d Mon Sep 17 00:00:00 2001 From: Gregory James Comer Date: Wed, 20 Aug 2025 19:04:36 -0700 Subject: [PATCH 7/8] Update [ghstack-poisoned] --- tools/cmake/preset/windows.cmake | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tools/cmake/preset/windows.cmake b/tools/cmake/preset/windows.cmake index c22a019e701..ebd2a6ff7a2 100644 --- a/tools/cmake/preset/windows.cmake +++ b/tools/cmake/preset/windows.cmake @@ -12,6 +12,8 @@ set_overridable_option(EXECUTORCH_BUILD_EXTENSION_FLAT_TENSOR ON) set_overridable_option(EXECUTORCH_BUILD_EXTENSION_MODULE ON) set_overridable_option(EXECUTORCH_BUILD_EXTENSION_RUNNER_UTIL ON) set_overridable_option(EXECUTORCH_BUILD_EXTENSION_TENSOR ON) +set_overridable_option(EXECUTORCH_BUILD_KERNELS_OPTIMIZED ON) +set_overridable_option(EXECUTORCH_BUILD_KERNELS_QUANTIZED ON) set_overridable_option(EXECUTORCH_BUILD_XNNPACK ON) # These XNNPACK options don't currently build on Windows. @@ -19,7 +21,3 @@ set_overridable_option(XNNPACK_ENABLE_AVX256SKX OFF) set_overridable_option(XNNPACK_ENABLE_AVX256VNNI OFF) set_overridable_option(XNNPACK_ENABLE_AVX256VNNIGFNI OFF) set_overridable_option(XNNPACK_ENABLE_AVX512BF16 OFF) - -# Below options are not yet buildable on Windows, but should be. -# set_overridable_option(EXECUTORCH_BUILD_KERNELS_OPTIMIZED ON) -# set_overridable_option(EXECUTORCH_BUILD_KERNELS_QUANTIZED ON) From a2de8919a8040f099ee5621472df269e646324b4 Mon Sep 17 00:00:00 2001 From: Gregory James Comer Date: Wed, 20 Aug 2025 20:34:07 -0700 Subject: [PATCH 8/8] Update [ghstack-poisoned] --- extension/data_loader/CMakeLists.txt | 6 ++++-- tools/cmake/preset/pybind.cmake | 7 +++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/extension/data_loader/CMakeLists.txt b/extension/data_loader/CMakeLists.txt index 1e7987a31eb..a5e7a0c4a81 100644 --- a/extension/data_loader/CMakeLists.txt +++ b/extension/data_loader/CMakeLists.txt @@ -24,8 +24,10 @@ if(NOT ET_HAVE_SYS_MMAN_H AND NOT WIN32) "extension/data_loader/mmap_data_loader.cpp" ) endif() -if (WIN32) - list(APPEND _extension_data_loader__srcs "extension/data_loader/mman_windows.cpp") +if(WIN32) + list(APPEND _extension_data_loader__srcs + "extension/data_loader/mman_windows.cpp" + ) endif() list(TRANSFORM _extension_data_loader__srcs PREPEND "${EXECUTORCH_ROOT}/") add_library(extension_data_loader ${_extension_data_loader__srcs}) diff --git a/tools/cmake/preset/pybind.cmake b/tools/cmake/preset/pybind.cmake index 3f63a056afa..2a69a33cee4 100644 --- a/tools/cmake/preset/pybind.cmake +++ b/tools/cmake/preset/pybind.cmake @@ -31,8 +31,11 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "WIN32" ) - if (NOT CMAKE_GENERATOR_TOOLSET MATCHES "ClangCL") - message(FATAL_ERROR "ExecuTorch requires the ClangCL toolset on Windows. Please configure with -T ClangCL.") + if(NOT CMAKE_GENERATOR_TOOLSET MATCHES "ClangCL") + message( + FATAL_ERROR + "ExecuTorch requires the ClangCL toolset on Windows. Please configure with -T ClangCL." + ) endif() # These XNNPACK options don't currently build on Windows with Clang.