1
- # The name of the shared library that results after compiling qsim for Pybind11
2
- QSIMLIB = ../qsimcirq/qsim` python3-config --extension-suffix `
1
+ # The names of the shared libraries that result after compiling qsim for Pybind11
2
+ QSIMLIB_BASIC = ../qsimcirq/qsim_basic` python3-config --extension-suffix `
3
+ QSIMLIB_SSE = ../qsimcirq/qsim_sse` python3-config --extension-suffix `
4
+ QSIMLIB_AVX2 = ../qsimcirq/qsim_avx2` python3-config --extension-suffix `
5
+ QSIMLIB_AVX512 = ../qsimcirq/qsim_avx512` python3-config --extension-suffix `
6
+ QSIMLIB_DECIDE = ../qsimcirq/qsim_decide` python3-config --extension-suffix `
3
7
4
- # The flags for the compilation of the Pybind11 interface
5
- PYBINDFLAGS = -Wall -shared -std=c++17 -fPIC ` python3 -m pybind11 --includes `
8
+
9
+ # The flags for the compilation of the simd-specific Pybind11 interfaces
10
+ PYBINDFLAGS_BASIC = -Wall -shared -std=c++17 -fPIC ` python3 -m pybind11 --includes `
11
+ PYBINDFLAGS_SSE = -msse4.1 -Wall -shared -std=c++17 -fPIC ` python3 -m pybind11 --includes `
12
+ PYBINDFLAGS_AVX2 = -mavx2 -mfma -Wall -shared -std=c++17 -fPIC ` python3 -m pybind11 --includes `
13
+ PYBINDFLAGS_AVX512 = -mavx512f -Wall -shared -std=c++17 -fPIC ` python3 -m pybind11 --includes `
6
14
7
15
.PHONY : pybind
8
16
pybind :
9
- $(CXX ) pybind_main.cpp -o $(QSIMLIB ) $(CXXFLAGS ) $(PYBINDFLAGS )
17
+ $(CXX ) basic/pybind_main_basic.cpp -o $(QSIMLIB_BASIC ) $(CXXFLAGS ) $(PYBINDFLAGS_BASIC )
18
+ $(CXX ) sse/pybind_main_sse.cpp -o $(QSIMLIB_SSE ) $(CXXFLAGS ) $(PYBINDFLAGS_SSE )
19
+ $(CXX ) avx2/pybind_main_avx2.cpp -o $(QSIMLIB_AVX2 ) $(CXXFLAGS ) $(PYBINDFLAGS_AVX2 )
20
+ $(CXX ) avx512/pybind_main_avx512.cpp -o $(QSIMLIB_AVX512 ) $(CXXFLAGS ) $(PYBINDFLAGS_AVX512 )
21
+ $(CXX ) decide/decide.cpp -o $(QSIMLIB_DECIDE ) $(CXXFLAGS ) $(PYBINDFLAGS_BASIC )
10
22
11
23
.PHONY : clean
12
24
clean :
13
- -rm -f ./* .x ./* .a ./* .so ./* .mod $(QSIMLIB )
25
+ -rm -f ./basic/* .x ./basic/* .a ./basic/* .so ./basic/* .mod $(QSIMLIB_BASIC )
26
+ -rm -f ./sse/* .x ./sse/* .a ./sse/* .so ./sse/* .mod $(QSIMLIB_SSE )
27
+ -rm -f ./avx2/* .x ./avx2/* .a ./avx2/* .so ./avx2/* .mod $(QSIMLIB_AVX2 )
28
+ -rm -f ./avx512/* .x ./avx512/* .a ./avx512/* .so ./avx512/* .mod $(QSIMLIB_AVX512 )
29
+ -rm -f ./decide/* .x ./decide/* .a ./decide/* .so ./decide/* .mod $(QSIMLIB_DECIDE )
0 commit comments