Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
dlib
Commits
104ffddb
Commit
104ffddb
authored
May 21, 2018
by
Davis King
Browse files
Make python extension automatically enable AVX instructions if the host machine
supports them.
parent
f21ac080
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
64 additions
and
1 deletion
+64
-1
dlib/cmake_utils/check_if_avx_instructions_executable_on_host.cmake
..._utils/check_if_avx_instructions_executable_on_host.cmake
+19
-0
dlib/cmake_utils/test_for_avx/CMakeLists.txt
dlib/cmake_utils/test_for_avx/CMakeLists.txt
+23
-0
dlib/cmake_utils/test_for_avx/avx_test.cpp
dlib/cmake_utils/test_for_avx/avx_test.cpp
+13
-0
dlib/cmake_utils/test_for_avx/this_file_doesnt_compile.cpp
dlib/cmake_utils/test_for_avx/this_file_doesnt_compile.cpp
+3
-0
tools/python/CMakeLists.txt
tools/python/CMakeLists.txt
+6
-1
No files found.
dlib/cmake_utils/check_if_avx_instructions_executable_on_host.cmake
0 → 100644
View file @
104ffddb
# This script checks if your compiler and host processor can generate and then run programs with AVX instructions.
cmake_minimum_required
(
VERSION 2.8.12
)
# Don't rerun this script if its already been executed.
if
(
DEFINED AVX_IS_AVAILABLE_ON_HOST
)
return
()
endif
()
# Set to false unless we find out otherwise in the code below.
set
(
AVX_IS_AVAILABLE_ON_HOST 0
)
try_compile
(
test_for_avx_worked
${
PROJECT_BINARY_DIR
}
/avx_test_build
${
CMAKE_CURRENT_LIST_DIR
}
/test_for_avx
avx_test
)
if
(
test_for_avx_worked
)
message
(
STATUS
"AVX instructions can be executed by the host processor."
)
set
(
AVX_IS_AVAILABLE_ON_HOST 1
)
endif
()
dlib/cmake_utils/test_for_avx/CMakeLists.txt
0 → 100644
View file @
104ffddb
cmake_minimum_required
(
VERSION 2.8.12
)
project
(
avx_test
)
set
(
USE_AVX_INSTRUCTIONS ON CACHE BOOL
"Use SSE4 instructions"
)
# Pull this in since it sets the AVX compile options by putting that kind of stuff into the active_compile_opts list.
include
(
../set_compiler_specific_options.cmake
)
try_run
(
run_result compile_result
${
PROJECT_BINARY_DIR
}
/avx_test_try_run_build
${
CMAKE_CURRENT_LIST_DIR
}
/avx_test.cpp
COMPILE_DEFINITIONS
${
active_compile_opts
}
)
message
(
STATUS
"run_result =
${
run_result
}
"
)
message
(
STATUS
"compile_result =
${
compile_result
}
"
)
if
(
${
run_result
}
EQUAL 0 AND compile_result
)
message
(
STATUS
"Ran AVX test program successfully, you have AVX available."
)
else
()
message
(
STATUS
"Unable to run AVX test program, you don't seem to have AVX instructions available."
)
# make this build fail so that calling try_compile statements will error in this case.
add_library
(
make_this_build_fail
${
CMAKE_CURRENT_LIST_DIR
}
/this_file_doesnt_compile.cpp
)
endif
()
dlib/cmake_utils/test_for_avx/avx_test.cpp
0 → 100644
View file @
104ffddb
#include <immintrin.h>
int
main
()
{
__m256
x
;
x
=
_mm256_set1_ps
(
1.23
);
x
=
_mm256_add_ps
(
x
,
x
);
return
0
;
}
// ------------------------------------------------------------------------------------
dlib/cmake_utils/test_for_avx/this_file_doesnt_compile.cpp
0 → 100644
View file @
104ffddb
#error "This file doesn't compile!"
tools/python/CMakeLists.txt
View file @
104ffddb
...
@@ -3,10 +3,15 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
...
@@ -3,10 +3,15 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
set
(
USE_SSE4_INSTRUCTIONS ON CACHE BOOL
"Use SSE4 instructions"
)
set
(
USE_SSE4_INSTRUCTIONS ON CACHE BOOL
"Use SSE4 instructions"
)
include
(
../../dlib/cmake_utils/check_if_avx_instructions_executable_on_host.cmake
)
if
(
AVX_IS_AVAILABLE_ON_HOST
)
set
(
USE_AVX_INSTRUCTIONS ON CACHE BOOL
"Use AVX instructions"
)
endif
()
# Set this to disable link time optimization. The only reason for
# Set this to disable link time optimization. The only reason for
# doing this to make the compile faster which is nice when developing
# doing this to make the compile faster which is nice when developing
# new modules.
# new modules.
set
(
PYBIND11_LTO_CXX_FLAGS
""
)
#
set(PYBIND11_LTO_CXX_FLAGS "")
# Avoid cmake warnings about changes in behavior of some Mac OS X path
# Avoid cmake warnings about changes in behavior of some Mac OS X path
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment