GPU并行优化
This commit is contained in:
1 parent
5814b15eff
commit
a395698345
3 files changed
+105
-16
No files matched your search
+40
-1
@@ -12,6 +12,37 @@ if(VCG_FOUND)
|
||||
add_definitions(${VCG_DEFINITIONS})
|
||||
endif()
|
||||
|
||||
# 在find_package(CUDA)之前设置全局PIC
|
||||
SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
find_package(CUDA REQUIRED)
|
||||
|
||||
SET(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS}
|
||||
-Xcompiler=-fPIC
|
||||
--relocatable-device-code=true
|
||||
--ptxas-options=-v
|
||||
-gencode arch=compute_75,code=sm_75
|
||||
")
|
||||
|
||||
# 启用CUDA语言支持(现代CMake方式)
|
||||
IF(CMAKE_VERSION VERSION_GREATER_EQUAL 3.18)
|
||||
ENABLE_LANGUAGE(CUDA)
|
||||
ENDIF()
|
||||
|
||||
cuda_add_library(MeshTextureCUDA
|
||||
cuda/MeshTextureCUDA.cu
|
||||
)
|
||||
|
||||
SET_TARGET_PROPERTIES(MeshTextureCUDA PROPERTIES
|
||||
CUDA_SEPARABLE_COMPILATION ON
|
||||
CUDA_RESOLVE_DEVICE_SYMBOLS ON # 关键:解析设备符号
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
# 为CUDA目标显式添加编译标志
|
||||
TARGET_COMPILE_OPTIONS(MeshTextureCUDA PRIVATE
|
||||
$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=-fPIC>
|
||||
)
|
||||
|
||||
set(CERES_LIBS "")
|
||||
if(OpenMVS_USE_CERES)
|
||||
FIND_PACKAGE(Ceres)
|
||||
@@ -44,11 +75,19 @@ IF(CMAKE_VERSION VERSION_GREATER_EQUAL 3.16.0)
|
||||
TARGET_PRECOMPILE_HEADERS(MVS PRIVATE "Common.h")
|
||||
endif()
|
||||
|
||||
TARGET_LINK_LIBRARIES(MeshTextureCUDA
|
||||
${CUDA_LIBRARIES}
|
||||
${OpenCV_LIBRARIES}
|
||||
cudart_static
|
||||
)
|
||||
|
||||
# Link its dependencies
|
||||
if(_USE_CUDA)
|
||||
SET_TARGET_PROPERTIES(MVS PROPERTIES CUDA_ARCHITECTURES "50;72;75")
|
||||
endif()
|
||||
TARGET_LINK_LIBRARIES(MVS PRIVATE Common Math IO CGAL::CGAL ${CERES_LIBRARIES} ${CUDA_CUDA_LIBRARY})
|
||||
TARGET_LINK_LIBRARIES(MVS PRIVATE Common Math IO CGAL::CGAL ${CERES_LIBRARIES} ${CUDA_CUDA_LIBRARY}
|
||||
MeshTextureCUDA
|
||||
${CUDA_LIBRARIES})
|
||||
|
||||
if(OpenMVS_USE_PYTHON)
|
||||
# Create the Python wrapper
|
||||
|
||||
Reference in new issue
Block a user