Skip to content

Commit 49769c0

Browse files
author
Raghuveer Devulapalli
authored
Merge pull request #91 from r-devulap/reorg
Reorganize code and add examples to build
2 parents f0d35bd + 1ce2f46 commit 49769c0

16 files changed

+685
-593
lines changed

.github/workflows/c-cpp.yml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- name: Install dependencies
1818
run: |
1919
sudo apt update
20-
sudo apt -y install g++-9 libgtest-dev meson curl git cmake
20+
sudo apt -y install g++-9 libgtest-dev meson curl git
2121
2222
- name: Install Intel SDE
2323
run: |
@@ -47,7 +47,7 @@ jobs:
4747
- name: Install dependencies
4848
run: |
4949
sudo apt update
50-
sudo apt -y install g++-10 libgtest-dev meson curl git cmake
50+
sudo apt -y install g++-10 libgtest-dev meson curl git
5151
5252
- name: Install Intel SDE
5353
run: |
@@ -77,7 +77,7 @@ jobs:
7777
- name: Install dependencies
7878
run: |
7979
sudo apt update
80-
sudo apt -y install g++-11 libgtest-dev meson curl git cmake
80+
sudo apt -y install g++-11 libgtest-dev meson curl git
8181
8282
- name: Install Intel SDE
8383
run: |
@@ -106,14 +106,21 @@ jobs:
106106
- name: Install dependencies
107107
run: |
108108
sudo apt update
109-
sudo apt -y install g++-13 libgtest-dev meson curl git cmake
109+
sudo apt -y install g++-13 libgtest-dev meson curl git
110110
111111
- name: Install Intel SDE
112112
run: |
113113
curl -o /tmp/sde.tar.xz https://downloadmirror.intel.com/784319/sde-external-9.24.0-2023-07-13-lin.tar.xz
114114
mkdir /tmp/sde && tar -xvf /tmp/sde.tar.xz -C /tmp/sde/
115115
sudo mv /tmp/sde/* /opt/sde && sudo ln -s /opt/sde/sde64 /usr/bin/sde
116116
117+
- name: Build examples
118+
env:
119+
CXX: g++-13
120+
run: |
121+
cd examples
122+
make all
123+
117124
- name: Build
118125
env:
119126
CXX: g++-13
@@ -136,7 +143,7 @@ jobs:
136143
- name: Install dependencies
137144
run: |
138145
sudo apt update
139-
sudo apt -y install g++-13 libgtest-dev meson curl git cmake
146+
sudo apt -y install g++-13 libgtest-dev meson curl git
140147
141148
- name: Install Intel SDE
142149
run: |

examples/Makefile

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
CXX ?= g++-12
2+
CFLAGS = -I../src -std=c++17 -O3
3+
EXE = argsort kvsort qsortfp16 qsort16 qsort32 qsort64
4+
5+
default: all
6+
all : $(EXE)
7+
8+
qsortfp16: avx512fp-16bit-qsort.cpp
9+
$(CXX) -o qsortfp16 -march=sapphirerapids $(CFLAGS) avx512fp-16bit-qsort.cpp
10+
11+
qsort16: avx512-16bit-qsort.cpp
12+
$(CXX) -o qsort16 -march=icelake-client $(CFLAGS) avx512-16bit-qsort.cpp
13+
14+
qsort32: avx512-32bit-qsort.cpp
15+
$(CXX) -o qsort32 -march=skylake-avx512 $(CFLAGS) avx512-32bit-qsort.cpp
16+
17+
qsort64: avx512-64bit-qsort.cpp
18+
$(CXX) -o qsort64 -march=skylake-avx512 $(CFLAGS) avx512-64bit-qsort.cpp
19+
20+
argsort: avx512-argsort.cpp
21+
$(CXX) -o argsort -march=skylake-avx512 $(CFLAGS) avx512-argsort.cpp
22+
23+
kvsort: avx512-kv.cpp
24+
$(CXX) -o kvsort -march=skylake-avx512 $(CFLAGS) avx512-kv.cpp
25+
26+
clean:
27+
$(RM) $(EXE)

examples/avx512-16bit-qsort.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include "avx512-16bit-qsort.hpp"
2+
3+
int main() {
4+
const int size = 1000;
5+
short arr[size];
6+
avx512_qsort(arr, size);
7+
avx512_qselect(arr, 10, size);
8+
avx512_partial_qsort(arr, 10, size);
9+
return 0;
10+
}

examples/avx512-32bit-qsort.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include "avx512-32bit-qsort.hpp"
2+
3+
int main() {
4+
const int size = 1000;
5+
float arr[size];
6+
avx512_qsort(arr, size);
7+
avx512_qselect(arr, 10, size);
8+
avx512_partial_qsort(arr, 10, size);
9+
return 0;
10+
}

examples/avx512-64bit-qsort.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include "avx512-64bit-qsort.hpp"
2+
3+
int main() {
4+
const int size = 1000;
5+
double arr[size];
6+
avx512_qsort(arr, size);
7+
avx512_qselect(arr, 10, size);
8+
avx512_partial_qsort(arr, 10, size);
9+
return 0;
10+
}

examples/avx512-argsort.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#include "avx512-64bit-argsort.hpp"
2+
3+
int main() {
4+
const int size = 1000;
5+
float arr[size];
6+
std::vector<size_t> arg1 = avx512_argsort(arr, size);
7+
std::vector<size_t> arg2 = avx512_argselect(arr, 10, size);
8+
return 0;
9+
}

examples/avx512-kv.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#include "avx512-64bit-keyvaluesort.hpp"
2+
3+
int main() {
4+
const int size = 1000;
5+
int64_t arr1[size];
6+
uint64_t arr2[size];
7+
double arr3[size];
8+
avx512_qsort_kv(arr1, arr1, size);
9+
avx512_qsort_kv(arr1, arr2, size);
10+
avx512_qsort_kv(arr1, arr3, size);
11+
avx512_qsort_kv(arr2, arr1, size);
12+
avx512_qsort_kv(arr2, arr2, size);
13+
avx512_qsort_kv(arr2, arr3, size);
14+
avx512_qsort_kv(arr3, arr1, size);
15+
avx512_qsort_kv(arr3, arr2, size);
16+
avx512_qsort_kv(arr3, arr3, size);
17+
return 0;
18+
}

examples/avx512fp-16bit-qsort.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include "avx512fp16-16bit-qsort.hpp"
2+
3+
int main() {
4+
const int size = 1000;
5+
_Float16 arr[size];
6+
avx512_qsort(arr, size);
7+
avx512_qselect(arr, 10, size);
8+
avx512_partial_qsort(arr, 10, size);
9+
return 0;
10+
}

0 commit comments

Comments
 (0)