Skip to content

Commit 6eb31c3

Browse files
authored
Merge branch 'master' into an/remove-ocv
2 parents 6c3abf7 + 2829fb3 commit 6eb31c3

26 files changed

Lines changed: 337 additions & 218 deletions

File tree

.clang-format

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
Language: Cpp
2+
Standard: c++20
23
BasedOnStyle: Google
34
ColumnLimit: 120
5+
UseTab: Never
6+
QualifierAlignment: Left
7+
PointerAlignment: Right

.github/workflows/main.yml

Lines changed: 110 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,53 @@ jobs:
3030
- name: Run linter
3131
run: |
3232
python3 -m flake8 .
33+
ubuntu-gcc-arm64-build:
34+
needs:
35+
- clang-format
36+
- python-lint
37+
runs-on: ubuntu-24.04-arm
38+
steps:
39+
- uses: actions/checkout@v4
40+
with:
41+
submodules: recursive
42+
- name: Setup environment
43+
run: |
44+
sudo apt-get update
45+
sudo apt-get install --no-install-recommends -y gcc-14 g++-14 ninja-build libmpich-dev libomp-dev valgrind
46+
python3 -m pip install -r requirements.txt
47+
- name: ccache
48+
uses: hendrikmuhs/ccache-action@v1.2
49+
with:
50+
key: ${{ runner.os }}-gcc-arm64
51+
create-symlink: true
52+
max-size: 1G
53+
- name: CMake configure
54+
run: >
55+
cmake -S . -B build
56+
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
57+
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
58+
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
59+
-D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=install
60+
env:
61+
CC: gcc-14
62+
CXX: g++-14
63+
- name: Build project
64+
run: |
65+
cmake --build build --parallel
66+
env:
67+
CC: gcc-14
68+
CXX: g++-14
69+
- name: Install project
70+
run: |
71+
cmake --build build --target install
72+
- name: Archive installed package
73+
run: |
74+
tar -czvf ubuntu-gcc-arm64-install.tar.gz -C install .
75+
- name: Upload installed package
76+
uses: actions/upload-artifact@v4
77+
with:
78+
name: ubuntu-gcc-arm64-install
79+
path: ubuntu-gcc-arm64-install.tar.gz
3380
ubuntu-gcc-build:
3481
needs:
3582
- clang-format
@@ -203,7 +250,7 @@ jobs:
203250
sudo apt-get install --no-install-recommends -y ninja-build libmpich-dev python3-pip valgrind
204251
wget https://apt.llvm.org/llvm.sh
205252
chmod u+x llvm.sh
206-
sudo ./llvm.sh 19 all
253+
sudo ./llvm.sh 20 all
207254
- name: ccache
208255
uses: hendrikmuhs/ccache-action@v1.2
209256
with:
@@ -218,14 +265,14 @@ jobs:
218265
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
219266
-D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=install
220267
env:
221-
CC: clang-19
222-
CXX: clang++-19
268+
CC: clang-20
269+
CXX: clang++-20
223270
- name: Build project
224271
run: |
225272
cmake --build build --parallel
226273
env:
227-
CC: clang-19
228-
CXX: clang++-19
274+
CC: clang-20
275+
CXX: clang++-20
229276
- name: Install project
230277
run: |
231278
cmake --build build --target install
@@ -237,6 +284,55 @@ jobs:
237284
with:
238285
name: ubuntu-clang-install
239286
path: ubuntu-clang-install.tar.gz
287+
ubuntu-clang-arm64-build:
288+
needs:
289+
- clang-format
290+
- python-lint
291+
runs-on: ubuntu-24.04-arm
292+
steps:
293+
- uses: actions/checkout@v4
294+
with:
295+
submodules: recursive
296+
- name: Setup environment
297+
run: |
298+
sudo apt-get update
299+
sudo apt-get install --no-install-recommends -y ninja-build libmpich-dev python3-pip valgrind
300+
wget https://apt.llvm.org/llvm.sh
301+
chmod u+x llvm.sh
302+
sudo ./llvm.sh 20 all
303+
- name: ccache
304+
uses: hendrikmuhs/ccache-action@v1.2
305+
with:
306+
key: ${{ runner.os }}-clang-arm64
307+
create-symlink: true
308+
max-size: 1G
309+
- name: CMake configure
310+
run: >
311+
cmake -S . -B build
312+
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
313+
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
314+
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
315+
-D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=install
316+
env:
317+
CC: clang-20
318+
CXX: clang++-20
319+
- name: Build project
320+
run: |
321+
cmake --build build --parallel
322+
env:
323+
CC: clang-20
324+
CXX: clang++-20
325+
- name: Install project
326+
run: |
327+
cmake --build build --target install
328+
- name: Archive installed package
329+
run: |
330+
tar -czvf ubuntu-clang-arm64-install.tar.gz -C install .
331+
- name: Upload installed package
332+
uses: actions/upload-artifact@v4
333+
with:
334+
name: ubuntu-clang-arm64-install
335+
path: ubuntu-clang-arm64-install.tar.gz
240336
ubuntu-clang-test:
241337
needs:
242338
- ubuntu-clang-build
@@ -249,7 +345,7 @@ jobs:
249345
sudo apt-get install --no-install-recommends -y ninja-build libmpich-dev python3-pip valgrind
250346
wget https://apt.llvm.org/llvm.sh
251347
chmod u+x llvm.sh
252-
sudo ./llvm.sh 19 all
348+
sudo ./llvm.sh 20 all
253349
- name: Download installed package
254350
uses: actions/download-artifact@v4
255351
with:
@@ -306,7 +402,7 @@ jobs:
306402
sudo apt-get install --no-install-recommends -y ninja-build libmpich-dev python3-pip valgrind
307403
wget https://apt.llvm.org/llvm.sh
308404
chmod u+x llvm.sh
309-
sudo ./llvm.sh 19 all
405+
sudo ./llvm.sh 20 all
310406
- name: Download installed package
311407
uses: actions/download-artifact@v4
312408
with:
@@ -362,7 +458,7 @@ jobs:
362458
openmpi-bin openmpi-common libopenmpi-dev
363459
wget https://apt.llvm.org/llvm.sh
364460
chmod u+x llvm.sh
365-
sudo ./llvm.sh 19 all
461+
sudo ./llvm.sh 20 all
366462
- name: ccache
367463
uses: hendrikmuhs/ccache-action@v1.2
368464
with:
@@ -378,14 +474,14 @@ jobs:
378474
-D CMAKE_BUILD_TYPE=RELEASE -D ENABLE_ADDRESS_SANITIZER=ON -D ENABLE_UB_SANITIZER=ON
379475
-D CMAKE_INSTALL_PREFIX=install
380476
env:
381-
CC: clang-19
382-
CXX: clang++-19
477+
CC: clang-20
478+
CXX: clang++-20
383479
- name: Build project
384480
run: |
385481
cmake --build build --parallel
386482
env:
387-
CC: clang-19
388-
CXX: clang++-19
483+
CC: clang-20
484+
CXX: clang++-20
389485
- name: Install project
390486
run: |
391487
cmake --build build --target install
@@ -409,7 +505,7 @@ jobs:
409505
sudo apt-get install --no-install-recommends -y ninja-build libmpich-dev python3-pip valgrind
410506
wget https://apt.llvm.org/llvm.sh
411507
chmod u+x llvm.sh
412-
sudo ./llvm.sh 19 all
508+
sudo ./llvm.sh 20 all
413509
- name: Download installed package
414510
uses: actions/download-artifact@v4
415511
with:
@@ -466,7 +562,7 @@ jobs:
466562
sudo apt-get install --no-install-recommends -y ninja-build libmpich-dev python3-pip valgrind
467563
wget https://apt.llvm.org/llvm.sh
468564
chmod u+x llvm.sh
469-
sudo ./llvm.sh 19 all
565+
sudo ./llvm.sh 20 all
470566
- name: Download installed package
471567
uses: actions/download-artifact@v4
472568
with:

.github/workflows/static-analysis-pr.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,22 @@ jobs:
7676
run: |
7777
echo "clang-tidy run has failed. See previous 'Run clang-tidy' stage logs"
7878
exit 1
79+
nolint-check:
80+
runs-on: ubuntu-24.04
81+
steps:
82+
- uses: actions/checkout@v4
83+
- name: Search for NOLINT
84+
run: |
85+
export BASE_REF=${{ github.event.pull_request.base.ref }}
86+
export CHANGED_FILES="$(git diff --name-only origin/$BASE_REF HEAD | grep '^tasks/')"
87+
if [ -z "$CHANGED_FILES" ]; then
88+
echo "No changed files in tasks directory."
89+
exit 0
90+
fi
91+
for file in $CHANGED_FILES; do
92+
if grep -n "NOLINT" "$file"; then
93+
echo "::error::Found 'NOLINT' in $file."
94+
exit 1
95+
fi
96+
done
97+
echo "No 'NOLINT' markers found in changed files."

cmake/configure.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ if( MSVC )
7373
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_COMPILER_FLAGS}")
7474
endif()
7575
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
76-
set(COMMON_FLAGS "/W4 /wd4267 /wd4244 /wd4100")
76+
set(COMMON_FLAGS "/W4 /wd4267 /wd4244")
7777
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${COMMON_FLAGS}" )
7878
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMMON_FLAGS}")
7979
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAGS}" )

modules/ref/average_of_vector_elements/func_tests/ref_tests.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ TEST(average_of_vector_elements, check_int32_t) {
1414

1515
// Create task_data
1616
auto task_data = std::make_shared<ppc::core::TaskData>();
17-
task_data->inputs.emplace_back(reinterpret_cast<uint8_t*>(in.data()));
17+
task_data->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
1818
task_data->inputs_count.emplace_back(in.size());
19-
task_data->outputs.emplace_back(reinterpret_cast<uint8_t*>(out.data()));
19+
task_data->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
2020
task_data->outputs_count.emplace_back(out.size());
2121

2222
// Create Task
@@ -36,9 +36,9 @@ TEST(average_of_vector_elements, check_validate_func) {
3636

3737
// Create task_data
3838
auto task_data = std::make_shared<ppc::core::TaskData>();
39-
task_data->inputs.emplace_back(reinterpret_cast<uint8_t*>(in.data()));
39+
task_data->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
4040
task_data->inputs_count.emplace_back(in.size());
41-
task_data->outputs.emplace_back(reinterpret_cast<uint8_t*>(out.data()));
41+
task_data->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
4242
task_data->outputs_count.emplace_back(out.size());
4343

4444
// Create Task
@@ -54,9 +54,9 @@ TEST(average_of_vector_elements, check_double) {
5454

5555
// Create task_data
5656
auto task_data = std::make_shared<ppc::core::TaskData>();
57-
task_data->inputs.emplace_back(reinterpret_cast<uint8_t*>(in.data()));
57+
task_data->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
5858
task_data->inputs_count.emplace_back(in.size());
59-
task_data->outputs.emplace_back(reinterpret_cast<uint8_t*>(out.data()));
59+
task_data->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
6060
task_data->outputs_count.emplace_back(out.size());
6161

6262
// Create Task
@@ -76,9 +76,9 @@ TEST(average_of_vector_elements, check_uint8_t) {
7676

7777
// Create task_data
7878
auto task_data = std::make_shared<ppc::core::TaskData>();
79-
task_data->inputs.emplace_back(reinterpret_cast<uint8_t*>(in.data()));
79+
task_data->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
8080
task_data->inputs_count.emplace_back(in.size());
81-
task_data->outputs.emplace_back(reinterpret_cast<uint8_t*>(out.data()));
81+
task_data->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
8282
task_data->outputs_count.emplace_back(out.size());
8383

8484
// Create Task
@@ -98,9 +98,9 @@ TEST(average_of_vector_elements, check_int64_t) {
9898

9999
// Create task_data
100100
auto task_data = std::make_shared<ppc::core::TaskData>();
101-
task_data->inputs.emplace_back(reinterpret_cast<uint8_t*>(in.data()));
101+
task_data->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
102102
task_data->inputs_count.emplace_back(in.size());
103-
task_data->outputs.emplace_back(reinterpret_cast<uint8_t*>(out.data()));
103+
task_data->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
104104
task_data->outputs_count.emplace_back(out.size());
105105

106106
// Create Task
@@ -120,9 +120,9 @@ TEST(average_of_vector_elements, check_float) {
120120

121121
// Create task_data
122122
auto task_data = std::make_shared<ppc::core::TaskData>();
123-
task_data->inputs.emplace_back(reinterpret_cast<uint8_t*>(in.data()));
123+
task_data->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
124124
task_data->inputs_count.emplace_back(in.size());
125-
task_data->outputs.emplace_back(reinterpret_cast<uint8_t*>(out.data()));
125+
task_data->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
126126
task_data->outputs_count.emplace_back(out.size());
127127

128128
// Create Task

modules/ref/average_of_vector_elements/include/ref_task.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class AverageOfVectorElements : public ppc::core::Task {
1616
bool PreProcessingImpl() override {
1717
// Init vectors
1818
input_ = std::vector<InType>(task_data->inputs_count[0]);
19-
auto tmp_ptr = reinterpret_cast<InType*>(task_data->inputs[0]);
19+
auto tmp_ptr = reinterpret_cast<InType *>(task_data->inputs[0]);
2020
for (unsigned i = 0; i < task_data->inputs_count[0]; i++) {
2121
input_[i] = tmp_ptr[i];
2222
}
@@ -37,7 +37,7 @@ class AverageOfVectorElements : public ppc::core::Task {
3737
}
3838

3939
bool PostProcessingImpl() override {
40-
reinterpret_cast<OutType*>(task_data->outputs[0])[0] = average_;
40+
reinterpret_cast<OutType *>(task_data->outputs[0])[0] = average_;
4141
return true;
4242
}
4343

0 commit comments

Comments
 (0)