未验证 提交 20c9e23f 编写于 作者: G Gines 提交者: GitHub

Cpu in Windows non-nvidia machines (#620)

上级 50ce91e2
...@@ -102,6 +102,7 @@ distribute/ ...@@ -102,6 +102,7 @@ distribute/
3rdparty/caffe/.github 3rdparty/caffe/.github
3rdparty/eigen/ 3rdparty/eigen/
3rdparty/windows/caffe/ 3rdparty/windows/caffe/
3rdparty/windows/caffe_cpu/
3rdparty/windows/caffe_opencl/ 3rdparty/windows/caffe_opencl/
3rdparty/windows/caffe3rdparty/ 3rdparty/windows/caffe3rdparty/
3rdparty/windows/opencv/ 3rdparty/windows/opencv/
......
...@@ -301,7 +301,7 @@ if (UNIX AND NOT APPLE) ...@@ -301,7 +301,7 @@ if (UNIX AND NOT APPLE)
elseif (OpenCV_INCLUDE_DIRS AND OpenCV_LIBS_DIR) elseif (OpenCV_INCLUDE_DIRS AND OpenCV_LIBS_DIR)
file(GLOB_RECURSE OpenCV_LIBS "${OpenCV_LIBS_DIR}*.so") file(GLOB_RECURSE OpenCV_LIBS "${OpenCV_LIBS_DIR}*.so")
set(OpenCV_FOUND 1) set(OpenCV_FOUND 1)
else () else (OpenCV_CONFIG_FILE)
find_package(OpenCV) find_package(OpenCV)
endif (OpenCV_CONFIG_FILE) endif (OpenCV_CONFIG_FILE)
...@@ -386,6 +386,8 @@ if (WIN32) ...@@ -386,6 +386,8 @@ if (WIN32)
download_zip("caffe3rdparty_2018_02_13.zip" ${OP_WIN_URL} ${FIND_LIB_PREFIX} 6653E07E3D2D7226D64FAD2DF0B407FB) download_zip("caffe3rdparty_2018_02_13.zip" ${OP_WIN_URL} ${FIND_LIB_PREFIX} 6653E07E3D2D7226D64FAD2DF0B407FB)
if (${GPU_MODE} MATCHES "OPENCL") if (${GPU_MODE} MATCHES "OPENCL")
download_zip("caffe_opencl_2018_02_13.zip" ${OP_WIN_URL} ${FIND_LIB_PREFIX} 3ac3e1acf5ee6a4e57920be73053067a) download_zip("caffe_opencl_2018_02_13.zip" ${OP_WIN_URL} ${FIND_LIB_PREFIX} 3ac3e1acf5ee6a4e57920be73053067a)
elseif (${GPU_MODE} MATCHES "CPU_ONLY")
download_zip("caffe_cpu_2018_05_27.zip" ${OP_WIN_URL} ${FIND_LIB_PREFIX} 87E8401B6DFBAC5B8E909DD20E3B3390)
else (${GPU_MODE} MATCHES "OPENCL") else (${GPU_MODE} MATCHES "OPENCL")
download_zip("caffe_2018_01_18.zip" ${OP_WIN_URL} ${FIND_LIB_PREFIX} 4b8e548cc7ea20abea472950dd5301bd) download_zip("caffe_2018_01_18.zip" ${OP_WIN_URL} ${FIND_LIB_PREFIX} 4b8e548cc7ea20abea472950dd5301bd)
endif (${GPU_MODE} MATCHES "OPENCL") endif (${GPU_MODE} MATCHES "OPENCL")
...@@ -401,22 +403,30 @@ if (WIN32) ...@@ -401,22 +403,30 @@ if (WIN32)
find_library(GLOG_LIBRARY_DEBUG glogd HINTS ${FIND_LIB_PREFIX}/caffe3rdparty/lib) find_library(GLOG_LIBRARY_DEBUG glogd HINTS ${FIND_LIB_PREFIX}/caffe3rdparty/lib)
find_library(OpenCV_LIBS opencv_world310 HINTS ${FIND_LIB_PREFIX}/opencv/x64/vc14/lib) find_library(OpenCV_LIBS opencv_world310 HINTS ${FIND_LIB_PREFIX}/opencv/x64/vc14/lib)
if (${GPU_MODE} MATCHES "OPENCL") # If OpenPose builds it
SET(CAFFE_CL_CHECKED True CACHE BOOL "") if (BUILD_CAFFE)
unset(Caffe_INCLUDE_DIRS CACHE)
unset(Caffe_LIB CACHE) unset(Caffe_LIB CACHE)
unset(Caffe_Proto_LIB CACHE) unset(Caffe_Proto_LIB CACHE)
set(CL "_CL") endif (BUILD_CAFFE)
# OpenCL
if (${GPU_MODE} MATCHES "OPENCL")
set(VCXPROJ_FILE_GPU_MODE "_CL")
find_library(Caffe_LIB caffe HINTS ${FIND_LIB_PREFIX}/caffe_opencl/lib) find_library(Caffe_LIB caffe HINTS ${FIND_LIB_PREFIX}/caffe_opencl/lib)
find_library(Caffe_Proto_LIB caffeproto HINTS ${FIND_LIB_PREFIX}/caffe_opencl/lib) find_library(Caffe_Proto_LIB caffeproto HINTS ${FIND_LIB_PREFIX}/caffe_opencl/lib)
# CPU & CUDA
else (${GPU_MODE} MATCHES "OPENCL") else (${GPU_MODE} MATCHES "OPENCL")
if (CAFFE_CL_CHECKED) # CPU
unset(Caffe_LIB CACHE) if (${GPU_MODE} MATCHES "CPU_ONLY")
unset(Caffe_Proto_LIB CACHE) set(VCXPROJ_FILE_GPU_MODE "_CPU")
endif (CAFFE_CL_CHECKED) find_library(Caffe_LIB caffe HINTS ${FIND_LIB_PREFIX}/caffe_cpu/lib)
set(CAFFE_CL_CHECKED 0) find_library(Caffe_Proto_LIB caffeproto HINTS ${FIND_LIB_PREFIX}/caffe_cpu/lib)
set(CL "") # CUDA
find_library(Caffe_LIB caffe HINTS ${FIND_LIB_PREFIX}/caffe/lib) else (${GPU_MODE} MATCHES "CPU_ONLY")
find_library(Caffe_Proto_LIB caffeproto HINTS ${FIND_LIB_PREFIX}/caffe/lib) set(VCXPROJ_FILE_GPU_MODE "")
find_library(Caffe_LIB caffe HINTS ${FIND_LIB_PREFIX}/caffe/lib)
find_library(Caffe_Proto_LIB caffeproto HINTS ${FIND_LIB_PREFIX}/caffe/lib)
endif (${GPU_MODE} MATCHES "CPU_ONLY")
endif (${GPU_MODE} MATCHES "OPENCL") endif (${GPU_MODE} MATCHES "OPENCL")
if (${GPU_MODE} MATCHES "OPENCL") if (${GPU_MODE} MATCHES "OPENCL")
...@@ -435,16 +445,19 @@ if (WIN32) ...@@ -435,16 +445,19 @@ if (WIN32)
endif (WITH_FLIR_CAMERA) endif (WITH_FLIR_CAMERA)
set(Caffe_LIBS ${Caffe_LIB};${Caffe_Proto_LIB}) set(Caffe_LIBS ${Caffe_LIB};${Caffe_Proto_LIB})
set(OpenCV_INCLUDE_DIRS "3rdparty/windows/opencv/include") set(OpenCV_INCLUDE_DIRS "3rdparty/windows/opencv/include")
# OpenCL
if (${GPU_MODE} MATCHES "OPENCL") if (${GPU_MODE} MATCHES "OPENCL")
SET(CAFFE_CL_CHECKED2 True CACHE BOOL "")
unset(Caffe_INCLUDE_DIRS CACHE) unset(Caffe_INCLUDE_DIRS CACHE)
set(Caffe_INCLUDE_DIRS "3rdparty/windows/caffe_opencl/include;3rdparty/windows/caffe_opencl/include2" CACHE FILEPATH "Caffe_INCLUDE_DIRS") set(Caffe_INCLUDE_DIRS "3rdparty/windows/caffe_opencl/include;3rdparty/windows/caffe_opencl/include2" CACHE FILEPATH "Caffe_INCLUDE_DIRS")
# CUDA and CPU
else (${GPU_MODE} MATCHES "OPENCL") else (${GPU_MODE} MATCHES "OPENCL")
if (CAFFE_CL_CHECKED2) # CPU
unset(Caffe_INCLUDE_DIRS CACHE) if (${GPU_MODE} MATCHES "CPU_ONLY")
endif (CAFFE_CL_CHECKED2) set(Caffe_INCLUDE_DIRS "3rdparty/windows/caffe_cpu/include;3rdparty/windows/caffe_cpu/include2" CACHE FILEPATH "Caffe_INCLUDE_DIRS")
set(CAFFE_CL_CHECKED2 0) # CUDA
set(Caffe_INCLUDE_DIRS "3rdparty/windows/caffe/include;3rdparty/windows/caffe/include2" CACHE FILEPATH "Caffe_INCLUDE_DIRS") else (${GPU_MODE} MATCHES "CPU_ONLY")
set(Caffe_INCLUDE_DIRS "3rdparty/windows/caffe/include;3rdparty/windows/caffe/include2" CACHE FILEPATH "Caffe_INCLUDE_DIRS")
endif (${GPU_MODE} MATCHES "CPU_ONLY")
endif (${GPU_MODE} MATCHES "OPENCL") endif (${GPU_MODE} MATCHES "OPENCL")
set(Boost_INCLUDE_DIRS "3rdparty/windows/caffe3rdparty/include/boost-1_61") set(Boost_INCLUDE_DIRS "3rdparty/windows/caffe3rdparty/include/boost-1_61")
set(WINDOWS_INCLUDE_DIRS "3rdparty/windows/caffe3rdparty/include") set(WINDOWS_INCLUDE_DIRS "3rdparty/windows/caffe3rdparty/include")
......
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe_cpu\bin\;3rdparty\windows\opencv\x64\vc14\bin;3rdparty\windows\freeglut\bin\;3rdparty\windows\spinnaker\bin\</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe_cpu\bin\;3rdparty\windows\opencv\x64\vc14\bin;3rdparty\windows\freeglut\bin\;3rdparty\windows\spinnaker\bin\</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
</Project>
\ No newline at end of file
...@@ -17,7 +17,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES}) ...@@ -17,7 +17,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES})
if (WIN32) if (WIN32)
set_property(TARGET ${EXE_NAME} PROPERTY FOLDER "Examples") set_property(TARGET ${EXE_NAME} PROPERTY FOLDER "Examples")
configure_file(${CMAKE_SOURCE_DIR}/cmake/OpenPose${CL}.vcxproj.user configure_file(${CMAKE_SOURCE_DIR}/cmake/OpenPose${VCXPROJ_FILE_GPU_MODE}.vcxproj.user
${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME}.vcxproj.user @ONLY) ${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME}.vcxproj.user @ONLY)
# Properties->General->Output Directory # Properties->General->Output Directory
set_property(TARGET ${EXE_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration)) set_property(TARGET ${EXE_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration))
......
...@@ -18,7 +18,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES}) ...@@ -18,7 +18,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES})
if (WIN32) if (WIN32)
set_property(TARGET ${EXE_NAME} PROPERTY FOLDER "Examples/Tutorial/Tests") set_property(TARGET ${EXE_NAME} PROPERTY FOLDER "Examples/Tutorial/Tests")
configure_file(${CMAKE_SOURCE_DIR}/cmake/OpenPose${CL}.vcxproj.user configure_file(${CMAKE_SOURCE_DIR}/cmake/OpenPose${VCXPROJ_FILE_GPU_MODE}.vcxproj.user
${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME}.vcxproj.user @ONLY) ${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME}.vcxproj.user @ONLY)
# Properties->General->Output Directory # Properties->General->Output Directory
set_property(TARGET ${EXE_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration)) set_property(TARGET ${EXE_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration))
......
...@@ -19,7 +19,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES}) ...@@ -19,7 +19,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES})
if (WIN32) if (WIN32)
set_property(TARGET ${EXE_NAME} PROPERTY FOLDER "Examples/Tutorial/AddModule") set_property(TARGET ${EXE_NAME} PROPERTY FOLDER "Examples/Tutorial/AddModule")
configure_file(${CMAKE_SOURCE_DIR}/cmake/OpenPose${CL}.vcxproj.user configure_file(${CMAKE_SOURCE_DIR}/cmake/OpenPose${VCXPROJ_FILE_GPU_MODE}.vcxproj.user
${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME}.vcxproj.user @ONLY) ${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME}.vcxproj.user @ONLY)
# Properties->General->Output Directory # Properties->General->Output Directory
set_property(TARGET ${EXE_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration)) set_property(TARGET ${EXE_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration))
......
...@@ -18,7 +18,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES}) ...@@ -18,7 +18,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES})
if (WIN32) if (WIN32)
set_property(TARGET ${EXE_NAME} PROPERTY FOLDER "Examples/Tutorial/Pose") set_property(TARGET ${EXE_NAME} PROPERTY FOLDER "Examples/Tutorial/Pose")
configure_file(${CMAKE_SOURCE_DIR}/cmake/OpenPose${CL}.vcxproj.user configure_file(${CMAKE_SOURCE_DIR}/cmake/OpenPose${VCXPROJ_FILE_GPU_MODE}.vcxproj.user
${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME}.vcxproj.user @ONLY) ${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME}.vcxproj.user @ONLY)
# Properties->General->Output Directory # Properties->General->Output Directory
set_property(TARGET ${EXE_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration)) set_property(TARGET ${EXE_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration))
......
...@@ -20,7 +20,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES}) ...@@ -20,7 +20,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES})
if (WIN32) if (WIN32)
set_property(TARGET ${EXE_NAME} PROPERTY FOLDER "Examples/Tutorial/Thread") set_property(TARGET ${EXE_NAME} PROPERTY FOLDER "Examples/Tutorial/Thread")
configure_file(${CMAKE_SOURCE_DIR}/cmake/OpenPose${CL}.vcxproj.user configure_file(${CMAKE_SOURCE_DIR}/cmake/OpenPose${VCXPROJ_FILE_GPU_MODE}.vcxproj.user
${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME}.vcxproj.user @ONLY) ${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME}.vcxproj.user @ONLY)
# Properties->General->Output Directory # Properties->General->Output Directory
set_property(TARGET ${EXE_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration)) set_property(TARGET ${EXE_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration))
......
...@@ -24,7 +24,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES}) ...@@ -24,7 +24,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES})
if (WIN32) if (WIN32)
set_property(TARGET ${EXE_NAME} PROPERTY FOLDER "Examples/Tutorial/Wrapper") set_property(TARGET ${EXE_NAME} PROPERTY FOLDER "Examples/Tutorial/Wrapper")
configure_file(${CMAKE_SOURCE_DIR}/cmake/OpenPose${CL}.vcxproj.user configure_file(${CMAKE_SOURCE_DIR}/cmake/OpenPose${VCXPROJ_FILE_GPU_MODE}.vcxproj.user
${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME}.vcxproj.user @ONLY) ${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME}.vcxproj.user @ONLY)
# Properties->General->Output Directory # Properties->General->Output Directory
set_property(TARGET ${EXE_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration)) set_property(TARGET ${EXE_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration))
......
...@@ -149,10 +149,16 @@ namespace op ...@@ -149,10 +149,16 @@ namespace op
#ifdef USE_CUDA #ifdef USE_CUDA
caffe::Caffe::set_mode(caffe::Caffe::GPU); caffe::Caffe::set_mode(caffe::Caffe::GPU);
caffe::Caffe::SetDevice(upImpl->mGpuId); caffe::Caffe::SetDevice(upImpl->mGpuId);
upImpl->upCaffeNet.reset(new caffe::Net<float>{upImpl->mCaffeProto, caffe::TEST});
#else #else
caffe::Caffe::set_mode(caffe::Caffe::CPU); caffe::Caffe::set_mode(caffe::Caffe::CPU);
#ifdef _WIN32
upImpl->upCaffeNet.reset(new caffe::Net<float>{upImpl->mCaffeProto, caffe::TEST,
caffe::Caffe::GetCPUDevice()});
#else
upImpl->upCaffeNet.reset(new caffe::Net<float>{upImpl->mCaffeProto, caffe::TEST});
#endif
#endif #endif
upImpl->upCaffeNet.reset(new caffe::Net<float>{upImpl->mCaffeProto, caffe::TEST});
upImpl->upCaffeNet->CopyTrainedLayersFrom(upImpl->mCaffeTrainedModel); upImpl->upCaffeNet->CopyTrainedLayersFrom(upImpl->mCaffeTrainedModel);
#ifdef USE_CUDA #ifdef USE_CUDA
cudaCheck(__LINE__, __FUNCTION__, __FILE__); cudaCheck(__LINE__, __FUNCTION__, __FILE__);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册