CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
86 lines
2.6 KiB
CMake
86 lines
2.6 KiB
CMake
#
|
|
# Configures architecture options
|
|
#
|
|
|
|
set(_CpuArch_COMPONENTS)
|
|
if(TIMEMORY_BUILD_PORTABLE)
|
|
set(CpuArch_FIND_DEFAULT ON)
|
|
if(MSVC)
|
|
set(_CpuArch_COMPONENTS OPTIONAL_COMPONENTS sse sse2 avx avx2)
|
|
else()
|
|
set(_CpuArch_COMPONENTS
|
|
OPTIONAL_COMPONENTS
|
|
sse
|
|
sse2
|
|
sse3
|
|
ssse3
|
|
sse4
|
|
sse4_1
|
|
sse4_2
|
|
fma
|
|
avx
|
|
avx2
|
|
altivec)
|
|
endif()
|
|
endif()
|
|
|
|
find_package(CpuArch ${_CpuArch_COMPONENTS})
|
|
|
|
if(CpuArch_FOUND)
|
|
|
|
if(VECTOR_INTERFACE_TARGET AND VECTOR_DEFINITION)
|
|
set(_VEC_256 OFF)
|
|
set(_VEC_512 OFF)
|
|
foreach(_ARCH ${CpuArch_FEATURES})
|
|
if("${_ARCH}" MATCHES ".*avx512.*" OR "${_ARCH}" MATCHES ".*AVX512.*")
|
|
set(_VEC_512 ON)
|
|
elseif("${_ARCH}" MATCHES ".*avx.*" OR "${_ARCH}" MATCHES ".*AVX.*")
|
|
set(_VEC_256 ON)
|
|
endif()
|
|
endforeach()
|
|
|
|
if(_VEC_512)
|
|
set(TIMEMORY_VEC 512)
|
|
elseif(_VEC_256)
|
|
set(TIMEMORY_VEC 256)
|
|
else()
|
|
set(TIMEMORY_VEC 128)
|
|
endif()
|
|
timemory_message(STATUS "Compiling with vector width: ${TIMEMORY_VEC}")
|
|
timemory_target_compile_definitions(${VECTOR_INTERFACE_TARGET} INTERFACE
|
|
${VECTOR_DEFINITION}=${TIMEMORY_VEC})
|
|
endif()
|
|
|
|
if(ARCH_INTERFACE_TARGET)
|
|
if(CpuArch_FEATURES)
|
|
foreach(_ARCH ${CpuArch_FEATURES})
|
|
if(MSVC)
|
|
add_target_flag_if_avail(${ARCH_INTERFACE_TARGET} "/arch:${_ARCH}")
|
|
else()
|
|
add_target_flag_if_avail(${ARCH_INTERFACE_TARGET} "-m${_ARCH}")
|
|
endif()
|
|
endforeach()
|
|
|
|
# intel compiler
|
|
if(CMAKE_C_COMPILER_IS_INTEL OR CMAKE_CXX_COMPILER_IS_INTEL)
|
|
list(LENGTH CpuArch_FEATURES NUM_FEATURES)
|
|
math(EXPR LAST_FEATURE_IDX "${NUM_FEATURES}-1")
|
|
list(GET CpuArch_FEATURES ${LAST_FEATURE_IDX} _ARCH)
|
|
if(_ARCH)
|
|
add_target_flag_if_avail(${ARCH_INTERFACE_TARGET} "-ax${_ARCH}")
|
|
endif()
|
|
unset(_ARCH)
|
|
unset(NUM_FEATURES)
|
|
unset(LAST_FEATURE_IDX)
|
|
endif()
|
|
else()
|
|
if(MSVC)
|
|
add_target_flag_if_avail(${ARCH_INTERFACE_TARGET} "/arch")
|
|
else()
|
|
add_target_flag_if_avail(${ARCH_INTERFACE_TARGET} "-march=native")
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
endif()
|