Skip to content

Commit b8a28d4

Browse files
SS-JIAfacebook-github-bot
authored andcommitted
Build with forked API instead of depending on PyTorch (#2813)
Summary: Pull Request resolved: #2813 ## Context #2797 forked the required components from PyTorch-Vulkan into the ExecuTorch directory, which means that building the ExecuTorch Vulkan delegate no longer needs to depend on PyTorch. This is a simple change to the Vulkan delegate CMakeLists.txt to build using the forked Vulkan API instead of the Vulkan API contained in `pytorch` submodule. imported-using-ghimport Test Plan: Imported from OSS Reviewed By: jorgep31415 Differential Revision: D55660791 Pulled By: SS-JIA fbshipit-source-id: 3c4b018de1092028d02a7d269d62749a38f98a83
1 parent 4b0ed91 commit b8a28d4

File tree

2 files changed

+23
-47
lines changed

2 files changed

+23
-47
lines changed

backends/vulkan/CMakeLists.txt

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,12 @@ if(NOT EXECUTORCH_ROOT)
2020
set(EXECUTORCH_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../..)
2121
endif()
2222

23-
include(${EXECUTORCH_ROOT}/build/Utils.cmake)
24-
2523
if(NOT RUNTIME_PATH)
2624
set(RUNTIME_PATH ${CMAKE_CURRENT_SOURCE_DIR}/runtime)
2725
endif()
2826

2927
if(NOT PYTHON_EXECUTABLE)
30-
resolve_python_executable()
28+
set(PYTHON_EXECUTABLE python3)
3129
endif()
3230

3331
if(NOT FLATC_EXECUTABLE)
@@ -40,13 +38,29 @@ endif()
4038
# perform dynamic registration via static initialization.
4139
include(${EXECUTORCH_ROOT}/build/Utils.cmake)
4240

43-
# ATen Vulkan Libs
41+
include(cmake/ShaderLibrary.cmake)
42+
43+
# Third party libs
4444

45-
set(PYTORCH_PATH ${EXECUTORCH_ROOT}/third-party/pytorch)
4645
set(VULKAN_THIRD_PARTY_PATH ${CMAKE_CURRENT_SOURCE_DIR}/third-party)
47-
include(cmake/ATenVulkan.cmake)
4846

49-
set(COMMON_INCLUDES ${VULKAN_API_HEADERS} ${EXECUTORCH_ROOT}/..)
47+
set(VULKAN_HEADERS_PATH ${VULKAN_THIRD_PARTY_PATH}/Vulkan-Headers/include)
48+
set(VOLK_PATH ${VULKAN_THIRD_PARTY_PATH}/volk)
49+
set(VMA_PATH ${VULKAN_THIRD_PARTY_PATH}/VulkanMemoryAllocator)
50+
51+
# Compile settings
52+
53+
set(VULKAN_CXX_FLAGS "")
54+
list(APPEND VULKAN_CXX_FLAGS "-DUSE_VULKAN_WRAPPER")
55+
list(APPEND VULKAN_CXX_FLAGS "-DUSE_VULKAN_VOLK")
56+
57+
# Vulkan Compute API
58+
59+
file(GLOB vulkan_api_cpp ${RUNTIME_PATH}/api/*.cpp)
60+
list(APPEND vulkan_api_cpp ${VOLK_PATH}/volk.c)
61+
62+
set(COMMON_INCLUDES ${EXECUTORCH_ROOT}/.. ${VULKAN_HEADERS_PATH} ${VOLK_PATH}
63+
${VMA_PATH})
5064

5165
# vulkan_graph_lib
5266

backends/vulkan/cmake/ATenVulkan.cmake renamed to backends/vulkan/cmake/ShaderLibrary.cmake

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -14,45 +14,6 @@
1414
#
1515
# The targets in this file will be built if EXECUTORCH_BUILD_VULKAN is ON
1616

17-
if(NOT PYTORCH_PATH)
18-
set(PYTORCH_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../third-party/pytorch)
19-
endif()
20-
21-
if(NOT VULKAN_THIRD_PARTY_PATH)
22-
set(VULKAN_THIRD_PARTY_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../third-party)
23-
endif()
24-
25-
# Source file paths
26-
27-
set(ATEN_PATH ${PYTORCH_PATH}/aten/src)
28-
set(ATEN_VULKAN_PATH ${ATEN_PATH}/ATen/native/vulkan)
29-
30-
set(VULKAN_HEADERS_PATH ${VULKAN_THIRD_PARTY_PATH}/Vulkan-Headers/include)
31-
set(VOLK_PATH ${VULKAN_THIRD_PARTY_PATH}/volk)
32-
set(VMA_PATH ${VULKAN_THIRD_PARTY_PATH}/VulkanMemoryAllocator)
33-
34-
# Compile settings
35-
36-
set(VULKAN_CXX_FLAGS "")
37-
list(APPEND VULKAN_CXX_FLAGS "-DUSE_VULKAN_API")
38-
list(APPEND VULKAN_CXX_FLAGS "-DUSE_VULKAN_WRAPPER")
39-
list(APPEND VULKAN_CXX_FLAGS "-DUSE_VULKAN_VOLK")
40-
list(APPEND VULKAN_CXX_FLAGS "-DVK_NO_PROTOTYPES")
41-
list(APPEND VULKAN_CXX_FLAGS "-DVOLK_DEFAULT_VISIBILITY")
42-
43-
# vulkan_api source files
44-
45-
file(GLOB vulkan_api_cpp ${ATEN_VULKAN_PATH}/api/*.cpp)
46-
list(APPEND vulkan_api_cpp ${VOLK_PATH}/volk.c)
47-
48-
set(VULKAN_API_HEADERS)
49-
list(APPEND VULKAN_API_HEADERS ${ATEN_PATH})
50-
list(APPEND VULKAN_API_HEADERS ${VULKAN_HEADERS_PATH})
51-
list(APPEND VULKAN_API_HEADERS ${VOLK_PATH})
52-
list(APPEND VULKAN_API_HEADERS ${VMA_PATH})
53-
54-
# Find GLSL compiler executable
55-
5617
if(ANDROID)
5718
if(NOT ANDROID_NDK)
5819
message(FATAL_ERROR "ANDROID_NDK not set")
@@ -84,7 +45,8 @@ macro(VULKAN_SHADER_LIBRARY shaders_path library_name)
8445

8546
execute_process(
8647
COMMAND
87-
"${PYTHON_EXECUTABLE}" ${PYTORCH_PATH}/tools/gen_vulkan_spv.py --glsl-path
48+
"${PYTHON_EXECUTABLE}"
49+
${CMAKE_CURRENT_SOURCE_DIR}/runtime/api/gen_vulkan_spv.py --glsl-path
8850
${shaders_path} --output-path ${VULKAN_SHADERGEN_OUT_PATH}
8951
--glslc-path=${GLSLC_PATH} --tmp-dir-path=${VULKAN_SHADERGEN_OUT_PATH}
9052
--env ${VULKAN_GEN_ARG_ENV}

0 commit comments

Comments
 (0)