Skip to content

Commit 0eb2b79

Browse files
committed
Port from x86 intrinsics to CPU native ones using SIMDe
Obsoletes: microsoft#136 Fixes: microsoft#134 Fixes: microsoft#316 Blocked-by: simd-everywhere/simde#961
1 parent 953f9e2 commit 0eb2b79

6 files changed

Lines changed: 23 additions & 6 deletions

File tree

AnnService/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ add_library (DistanceUtils STATIC
3434
)
3535

3636
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
37-
target_compile_options(DistanceUtils PRIVATE -mavx2 -mavx -msse -msse2 -mavx512f -mavx512bw -mavx512dq -fPIC)
37+
target_compile_options(DistanceUtils PRIVATE -fPIC -fopenmp-simd -O3)
38+
target_compile_definitions(DistanceUtils PRIVATE SIMDE_ENABLE_NATIVE_ALIASES SIMDE_ENABLE_OPENMP)
3839
endif()
3940

4041
add_library (SPTAGLib SHARED ${SRC_FILES} ${HDR_FILES})

AnnService/inc/Core/Common/DistanceUtils.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#ifndef _SPTAG_COMMON_DISTANCEUTILS_H_
55
#define _SPTAG_COMMON_DISTANCEUTILS_H_
66

7-
#include <xmmintrin.h>
7+
#include <simde/x86/sse.h>
88
#include <functional>
99
#include <iostream>
1010

AnnService/inc/Core/Common/RelativeNeighborhoodGraph.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#ifndef _SPTAG_COMMON_RNG_H_
55
#define _SPTAG_COMMON_RNG_H_
66

7-
#include <xmmintrin.h>
7+
#include <simde/x86/sse.h>
88
#include "NeighborhoodGraph.h"
99

1010
namespace SPTAG

AnnService/inc/Core/Common/SIMDUtils.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#ifndef _SPTAG_COMMON_SIMDUTILS_H_
55
#define _SPTAG_COMMON_SIMDUTILS_H_
66

7-
#include <xmmintrin.h>
7+
#include <simde/x86/sse.h>
88
#include <functional>
99
#include <iostream>
1010

AnnService/src/Core/Common/DistanceUtils.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,21 @@
22
// Licensed under the MIT License.
33

44
#include "inc/Core/Common/DistanceUtils.h"
5-
#include <immintrin.h>
5+
#include <simde/x86/avx.h>
6+
#include <simde/x86/avx2.h>
7+
#include <simde/x86/avx512.h>
8+
9+
#ifndef __mmask32
10+
#define __mmask32 simde__mmask32
11+
#endif
12+
13+
#ifndef __mmask64
14+
#define __mmask64 simde__mmask64
15+
#endif
16+
17+
#ifndef _mm512_setzero_ps
18+
#define _mm512_setzero_ps simde_mm512_setzero_ps
19+
#endif
620

721
using namespace SPTAG;
822
using namespace SPTAG::COMMON;

AnnService/src/Core/Common/SIMDUtils.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
// Licensed under the MIT License.
33

44
#include "inc/Core/Common/SIMDUtils.h"
5-
#include <immintrin.h>
5+
#include <simde/x86/avx.h>
6+
#include <simde/x86/avx2.h>
7+
#include <simde/x86/avx512.h>
68

79
using namespace SPTAG;
810
using namespace SPTAG::COMMON;

0 commit comments

Comments
 (0)