Skip to content

Commit e813962

Browse files
Ashkan Aliabadifacebook-github-bot
authored andcommitted
Search on system path for Vulkan headers and libraries as a last resort. (pytorch#43301)
Summary: Pull Request resolved: pytorch#43301 Test Plan: Imported from OSS Reviewed By: IvanKobzarev Differential Revision: D23252338 Pulled By: AshkanAliabadi fbshipit-source-id: 8eefe98eedf9dbeb570565bfb13ab61b1d6bca0e
1 parent 217ddea commit e813962

File tree

3 files changed

+62
-48
lines changed

3 files changed

+62
-48
lines changed

aten/src/ATen/native/vulkan/Vulkan.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -829,10 +829,10 @@ void ComputeUnit::createComputePipeline(
829829
void ComputeUnit::createComputePipelineCompile(
830830
const std::string& glslSrc,
831831
const VkPipelineCache pipelineCache,
832-
const VkDescriptorSetLayout& descrSetLayout,
832+
const VkDescriptorSetLayout descrSetLayout,
833833
const WorkGroupSize workGroupSize) {
834834
shaderc::Compiler compiler{};
835-
shaderc::CompileOptions options[];
835+
shaderc::CompileOptions options{};
836836
options.SetGenerateDebugInfo();
837837
options.SetTargetEnvironment(
838838
shaderc_target_env_vulkan, shaderc_env_version_vulkan_1_0);

cmake/VulkanCodegen.cmake

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,6 @@ if(NOT USE_VULKAN_SHADERC_RUNTIME)
3131

3232
set(GLSLC_PATH "${ANDROID_NDK}/shader-tools/${ANDROID_NDK_HOST_SYSTEM_NAME}/glslc")
3333
else()
34-
if(NOT DEFINED ENV{VULKAN_SDK})
35-
message(FATAL_ERROR "USE_VULKAN requires environment var VULKAN_SDK set")
36-
endif()
37-
3834
find_program(
3935
GLSLC_PATH glslc
4036
PATHS

cmake/VulkanDependencies.cmake

Lines changed: 60 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -85,62 +85,80 @@ if(ANDROID)
8585
list(APPEND Vulkan_LIBS ${GOOGLE_SHADERC_LIBRARIES})
8686
endif(USE_VULKAN_SHADERC_RUNTIME)
8787
else()
88-
# USE_VULKAN AND NOT ANDROID
89-
if(NOT DEFINED ENV{VULKAN_SDK})
90-
message(FATAL_ERROR "USE_VULKAN requires environment var VULKAN_SDK set")
91-
endif()
92-
message(STATUS "VULKAN_SDK:$ENV{VULKAN_SDK}")
88+
if(DEFINED ENV{VULKAN_SDK})
89+
message(STATUS "VULKAN_SDK:$ENV{VULKAN_SDK}")
9390

94-
set(VULKAN_INCLUDE_DIR "$ENV{VULKAN_SDK}/source/Vulkan-Headers/include")
95-
message(STATUS "VULKAN_INCLUDE_DIR:${VULKAN_INCLUDE_DIR}")
91+
set(VULKAN_INCLUDE_DIR "$ENV{VULKAN_SDK}/source/Vulkan-Headers/include")
92+
message(STATUS "VULKAN_INCLUDE_DIR:${VULKAN_INCLUDE_DIR}")
93+
94+
if(USE_VULKAN_WRAPPER)
95+
# Vulkan wrapper from VULKAN_SDK
96+
set(VULKAN_SDK_WRAPPER_DIR "$ENV{VULKAN_SDK}/source/Vulkan-Tools/common")
97+
message(STATUS "Vulkan_SDK_WRAPPER_DIR:${VULKAN_SDK_WRAPPER_DIR}")
98+
set(VULKAN_WRAPPER_DIR "${VULKAN_SDK_WRAPPER_DIR}")
99+
100+
add_library(
101+
VulkanWrapper
102+
STATIC
103+
${VULKAN_WRAPPER_DIR}/vulkan_wrapper.h
104+
${VULKAN_WRAPPER_DIR}/vulkan_wrapper.cpp)
105+
106+
target_include_directories(VulkanWrapper PUBLIC .)
107+
target_include_directories(VulkanWrapper PUBLIC "${VULKAN_INCLUDE_DIR}")
108+
109+
target_link_libraries(VulkanWrapper ${CMAKE_DL_LIBS})
110+
111+
list(APPEND Vulkan_INCLUDES ${VULKAN_WRAPPER_DIR})
112+
list(APPEND Vulkan_LIBS VulkanWrapper)
113+
else(USE_VULKAN_WRAPPER)
114+
find_library(VULKAN_LIBRARY
115+
NAMES vulkan
116+
PATHS
117+
"$ENV{VULKAN_SDK}/${CMAKE_HOST_SYSTEM_PROCESSOR}/lib")
118+
119+
if(NOT VULKAN_LIBRARY)
120+
message(FATAL_ERROR "USE_VULKAN: Vulkan library not found")
121+
endif()
122+
123+
message(STATUS "VULKAN_LIBRARY:${VULKAN_LIBRARY}")
124+
message(STATUS "VULKAN_INCLUDE_DIR:${VULKAN_INCLUDE_DIR}")
96125

97-
if(USE_VULKAN_WRAPPER)
98-
# Vulkan wrapper from VULKAN_SDK
99-
set(VULKAN_SDK_WRAPPER_DIR "$ENV{VULKAN_SDK}/source/Vulkan-Tools/common")
100-
message(STATUS "Vulkan_SDK_WRAPPER_DIR:${VULKAN_SDK_WRAPPER_DIR}")
101-
set(VULKAN_WRAPPER_DIR "${VULKAN_SDK_WRAPPER_DIR}")
102-
103-
add_library(
104-
VulkanWrapper
105-
STATIC
106-
${VULKAN_WRAPPER_DIR}/vulkan_wrapper.h
107-
${VULKAN_WRAPPER_DIR}/vulkan_wrapper.cpp)
108-
109-
target_include_directories(VulkanWrapper PUBLIC .)
110-
target_include_directories(VulkanWrapper PUBLIC "${VULKAN_INCLUDE_DIR}")
111-
112-
target_link_libraries(VulkanWrapper ${CMAKE_DL_LIBS})
113-
114-
list(APPEND Vulkan_INCLUDES ${VULKAN_WRAPPER_DIR})
115-
list(APPEND Vulkan_LIBS VulkanWrapper)
116-
else(USE_VULKAN_WRAPPER)
117-
find_library(VULKAN_LIBRARY
118-
NAMES vulkan
119-
PATHS
120-
"$ENV{VULKAN_SDK}/${CMAKE_HOST_SYSTEM_PROCESSOR}/lib")
121-
122-
if(NOT VULKAN_LIBRARY)
123-
message(FATAL_ERROR "USE_VULKAN: Vulkan library not found")
126+
list(APPEND Vulkan_INCLUDES ${VULKAN_INCLUDE_DIR})
127+
list(APPEND Vulkan_LIBS ${VULKAN_LIBRARY})
128+
endif(USE_VULKAN_WRAPPER)
129+
130+
set(GOOGLE_SHADERC_INCLUDE_SEARCH_PATH $ENV{VULKAN_SDK}/${CMAKE_HOST_SYSTEM_PROCESSOR}/include)
131+
set(GOOGLE_SHADERC_LIBRARY_SEARCH_PATH $ENV{VULKAN_SDK}/${CMAKE_HOST_SYSTEM_PROCESSOR}/lib)
132+
133+
else()
134+
# Try looking in system path as a last resort.
135+
find_package(Vulkan)
136+
if(NOT Vulkan_FOUND)
137+
message(FATAL_ERROR "USE_VULKAN requires either Vulkan installed on system path or environment var VULKAN_SDK set")
124138
endif()
125139

126-
message(STATUS "VULKAN_LIBRARY:${VULKAN_LIBRARY}")
127-
message(STATUS "VULKAN_INCLUDE_DIR:${VULKAN_INCLUDE_DIR}")
140+
list(APPEND Vulkan_INCLUDES ${Vulkan_INCLUDE_DIRS})
141+
list(APPEND Vulkan_LIBS ${Vulkan_LIBRARIES})
128142

129-
list(APPEND Vulkan_INCLUDES ${VULKAN_INCLUDE_DIR})
130-
list(APPEND Vulkan_LIBS ${VULKAN_LIBRARY})
131-
endif(USE_VULKAN_WRAPPER)
143+
if(USE_VULKAN_WRAPPER)
144+
message(STATUS "USE_VULKAN_WRAPPER is unsupported when environment var VULKAN_SDK not set")
145+
caffe2_update_option(USE_VULKAN_WRAPPER OFF)
146+
endif()
147+
148+
set(GOOGLE_SHADERC_INCLUDE_SEARCH_PATH ${Vulkan_INCLUDE_DIR})
149+
set(GOOGLE_SHADERC_LIBRARY_SEARCH_PATH ${Vulkan_LIBRARY})
150+
endif()
132151

133152
if(USE_VULKAN_SHADERC_RUNTIME)
134-
# shaderc from VULKAN_SDK
135153
find_path(
136154
GOOGLE_SHADERC_INCLUDE_DIRS
137155
NAMES shaderc/shaderc.hpp
138-
PATHS $ENV{VULKAN_SDK}/${CMAKE_HOST_SYSTEM_PROCESSOR}/include)
156+
PATHS ${GOOGLE_SHADERC_INCLUDE_SEARCH_PATH})
139157

140158
find_library(
141159
GOOGLE_SHADERC_LIBRARIES
142160
NAMES shaderc_combined
143-
PATHS $ENV{VULKAN_SDK}/${CMAKE_HOST_SYSTEM_PROCESSOR}/lib)
161+
PATHS ${GOOGLE_SHADERC_LIBRARY_SEARCH_PATH})
144162

145163
find_package_handle_standard_args(
146164
Shaderc

0 commit comments

Comments
 (0)