Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
215 commits
Select commit Hold shift + click to select a range
18691a5
Improve performance (mainly on AMD GPUs) and change implementations s…
breyerml May 24, 2025
6cddbb6
Additional performance improvement tests.
breyerml May 26, 2025
a185caf
Preliminary changes.
breyerml May 26, 2025
c74aca8
Update CUDA implementation and update comments.
breyerml May 28, 2025
dbc00ae
Do not use std::vector directly for the kernel matrix since it sequen…
breyerml May 28, 2025
10d303e
Improve the performance of the OpenMP cg_explicit kernel matrix assem…
breyerml May 29, 2025
2e64193
Improve the performance of the OpenMP cg_implicit kernel matrix assem…
breyerml May 30, 2025
8aa1c93
Improve the performance of the OpenMP predict implementation. Align n…
breyerml May 30, 2025
51b75b6
Improve variable names and remove some implicit conversions.
breyerml May 30, 2025
8a570a8
Fix tests after slight API changes.
breyerml May 30, 2025
3025c76
Remove unnecessary conditions. Improve variable naming.
breyerml May 30, 2025
46a9558
Update variable names.
breyerml May 30, 2025
0c68206
Update documentation and add missing headers.
breyerml May 31, 2025
a9e8271
Update the HIP backend kernels.
breyerml May 31, 2025
45832e7
Fix Doxygen documentation.
breyerml May 31, 2025
10ff3c2
Add additional assert.
breyerml May 31, 2025
dad55f2
Fix variable names.
breyerml May 31, 2025
e6b76f2
Use typename instead of class.
breyerml May 31, 2025
5913b50
Move parallel zero memset to header function (used in multiple places).
breyerml May 31, 2025
a67751b
Add documentation and rearrange constant declarations.
breyerml May 31, 2025
54741ff
Inverse all temp indices for better consistency.
breyerml May 31, 2025
46891d9
Add missing doxygen documentation.
breyerml May 31, 2025
fa5cea3
Update the HPX backend kernels.
breyerml May 31, 2025
ff89212
Some small changes: where possible change remaining const to constexp…
breyerml Jun 14, 2025
b4d553a
Update comments.
breyerml Jun 14, 2025
4020339
Rename sv to support_vectors for better readability and consistency.
breyerml Jun 14, 2025
39513f8
Update some comments.
breyerml Jun 20, 2025
3ef281d
Also use trimmed names in performance tracking output.
breyerml Jun 20, 2025
a20d76d
Always use a loop for the custom powi function.
breyerml Jun 20, 2025
1c55fb1
The get_default_queue now honors the default target platform.
breyerml Jun 20, 2025
b6b98fc
Improve the AdaptiveCpp device pointer creation performance on CPUs w…
breyerml Jun 21, 2025
88e5d80
Based on the provided CPU target architectures, set the correct prefe…
breyerml Jun 22, 2025
56a0f7d
Update the SYCL backend kernels.
breyerml Jun 22, 2025
8f390d0
Renamed all mentions of SYCL kernel invocation type to SYCL data para…
breyerml Jun 22, 2025
63f8b6b
Add missing include.
breyerml Jun 30, 2025
ed5d124
Update the Kokkos backend kernels.
breyerml Jun 30, 2025
7f8acb5
Update power function implementation.
breyerml Jun 30, 2025
cfc3d68
Fix Kokkos related compiler error.
breyerml Jul 1, 2025
31b4f99
Update the OpenCL backend kernels.
breyerml Jul 1, 2025
b3f8b22
Fix OpenCL kernel.
breyerml Jul 1, 2025
dc6c267
Rename variable for better consistency with other backends.
breyerml Jul 5, 2025
23d6350
Make blocking sizes constexpr instead of only const.
breyerml Jul 5, 2025
3eea873
Update comments.
breyerml Jul 5, 2025
1c4e479
Update formatting for better consistency with the other backends.
breyerml Jul 5, 2025
a029f23
Change THREAD_BLOCK_SIZE to THREAD_BLOCK_SIZE_uz.
breyerml Jul 5, 2025
efda49d
Fix documentation error using q vector instead of w vector.
breyerml Jul 5, 2025
8ecd618
Update the stdpar backend kernels.
breyerml Jul 5, 2025
ee08eaa
Fix stdpar tests after changing the kernel function interface (from f…
breyerml Jul 5, 2025
04afa46
Correctly trim the device name in the stdpar Intel LLVM backend.
breyerml Jul 7, 2025
795da8b
Improve stdpar NVHPC output if the CPU target platform is used.
breyerml Jul 7, 2025
c28ba90
Use omp_set_max_active_levels instead of the deprecated omp_set_nested.
breyerml Jul 7, 2025
9d35cc8
If Kokkos::Experimental::HPX is used, we explicitly have to initializ…
breyerml Jul 7, 2025
49658c9
Explicitly use the full namespace to prevent problems if the macros a…
breyerml Jul 10, 2025
1490b7e
Use simple ifdef instead of the PLSSVM_KOKKOS_BACKEND_INVOKE_IF_HPX m…
breyerml Jul 10, 2025
d912ce5
Refactor some parser functionality into utility functions to reduce c…
breyerml Jul 10, 2025
8adade4
Improve the README file (grammar related stuff).
breyerml Jul 10, 2025
39ecc5a
State that we support the HPX and Kokkos specific command line option…
breyerml Jul 10, 2025
321ac81
Update description of the PLSSVM_THREAD_BLOCK_SIZE behavior CMake opt…
breyerml Jul 10, 2025
2b3e11f
Undo align center changes.
breyerml Jul 10, 2025
dd15efb
Update include documentation.
breyerml Jul 12, 2025
cb5c485
Update includes.
breyerml Jul 12, 2025
25b2922
Reimplement the OpenCL device_ptr memset and fill functions using cus…
breyerml Jul 12, 2025
88c69a3
Fix decltype error.
breyerml Jul 13, 2025
d4145fe
Improve AdaptiveCpp CMake warning for hierarchical and scoped kernels.
breyerml Jul 20, 2025
06fa031
Fix wrong PLSSVM_ASSERT and update test case.
breyerml Jul 20, 2025
b8ad451
Fix error where the CPU kernels where used on GPUs and vice-versa.
breyerml Aug 9, 2025
c48818f
Interchange / and % in the stdpar kernel index calculation. Now, the …
breyerml Aug 9, 2025
c6eb56b
Fix error when using rocstdpar on AMD GPUs.
breyerml Aug 10, 2025
104d2b9
Update .gitignore file.
breyerml Aug 10, 2025
366fed4
Disable compiler flags check for the third party library igor since i…
breyerml Aug 10, 2025
b658c4e
Add Python pickle support.
breyerml Aug 17, 2025
4196499
Bump Pybind11 version to 3.0.0.
breyerml Aug 17, 2025
d99e8b8
Convert the usage of py::enum_ to the new and recommended py::native_…
breyerml Aug 17, 2025
a3e3f45
Fix compiler warnings and remove deprecated functions.
breyerml Aug 17, 2025
43257c2
Interchange / and % in the stdpar kernel index calculation. Now, the …
breyerml Aug 23, 2025
76a4f58
If AdaptiveCpp is built with OpenCL support, it may happen that multi…
breyerml Aug 23, 2025
c17ea43
Fix some inconsistencies (mainly documentation).
breyerml Sep 4, 2025
56668db
Fix typo.
breyerml Sep 4, 2025
37468bc
Add check to the device_ptr such that if an empty device_ptr is const…
breyerml Sep 7, 2025
6f9a051
Improve final error message if an exception would escape the main fun…
breyerml Sep 7, 2025
5b48b35
Add checks that the used amount of local memory (also shared memory o…
breyerml Sep 9, 2025
4b52b47
Change logic to directly use the context_ member that already stores …
breyerml Sep 9, 2025
22f9eec
Explicitly initialize the private memory matrix to zero to prevent sp…
breyerml Sep 9, 2025
018e1a4
The number of contexts must be greater or equal than one and not exac…
breyerml Sep 12, 2025
e1a1940
Also output the device names for the stdpar implementations as list t…
breyerml Sep 28, 2025
74b5658
add AdaptiveCpp related JIT directory to the gitignore
breyerml Sep 28, 2025
9bc7619
Fix error in basic data parallel predict w kernel function.
breyerml Oct 13, 2025
bf607cf
Use correct constant in index calculation (integer width).
breyerml Oct 13, 2025
7f57d36
If the local memory size is not available, output 0 in the performanc…
breyerml Oct 13, 2025
5c895c4
The Kokkos execution space and stdpar implementation type should be p…
breyerml Oct 13, 2025
8163270
Minor version bumps for third party libraries.
breyerml Oct 18, 2025
986a34a
Increase version of the cxxopts library. Replace .count() in favor of…
breyerml Oct 18, 2025
6640b6f
Increase version of the {fmt}} library. Replace the removed fmt::loca…
breyerml Oct 18, 2025
26546ab
Consistently trim all device names from whitespaces. Add new tests an…
breyerml Oct 18, 2025
3148b7d
Add a custom PLSSVM_OPENCL_DEVICE_SELECTOR functionality to the OpenC…
breyerml Oct 18, 2025
c5e3f99
Update Doxygen documentation and README renderings.
breyerml Oct 18, 2025
4b5fb16
Fix CMake formatting.
breyerml Oct 18, 2025
d0644f2
Fix clang-format formatting.
breyerml Oct 18, 2025
c6e9d92
Fix wrong include guards and add missing #pragma once.
breyerml Nov 30, 2025
959a7f4
Update documentation and includes.
breyerml Nov 30, 2025
5ef41c6
Fix Doxygen parsing error.
breyerml Nov 30, 2025
c1e217e
Replace magic numbers with named constants.
breyerml Nov 30, 2025
104c636
Move overloaded helper struct to the utility header.
breyerml Nov 30, 2025
4af72fd
Add explicit NOLINT statements.
breyerml Nov 30, 2025
54113f4
Add missing const, noexcept, [[nodiscard]], etc specifiers.
breyerml Nov 30, 2025
cae9b9c
Remove redundant explicit default initializers.
breyerml Nov 30, 2025
fbb7a96
Add new type trait.
breyerml Nov 30, 2025
18df510
Move the sign function to the operators namespace.
breyerml Nov 30, 2025
aec4a0a
Do not use else after a return or throw.
breyerml Nov 30, 2025
534961a
Update some logical conditions and optional handlings.
breyerml Nov 30, 2025
404c34d
Use anonymous namespaces.
breyerml Nov 30, 2025
7a8f2f7
Add configuration option to NOT include the "hpx/hpx_main.hpp" header…
breyerml Nov 30, 2025
7e18480
Handle potential exception.
breyerml Nov 30, 2025
0555816
Correctly handle SYCL namespaces.
breyerml Nov 30, 2025
1b903dd
Correctly use move, forward, and cref.
breyerml Nov 30, 2025
8ee721f
Explicitly add unused parameter names.
breyerml Nov 30, 2025
16f715b
Do not make map_label virtual since it is called inside a constructor.
breyerml Nov 30, 2025
eeb5d38
Use the comm_ member variable instead of the (moved-from) comm parame…
breyerml Nov 30, 2025
7f6597e
Add friend declaration and make some constructors private.
breyerml Nov 30, 2025
5900b0d
Add explicit casts and remove some unnecessary ones.
breyerml Nov 30, 2025
1968526
Add requires to narrow down potential template parameter type.
breyerml Nov 30, 2025
db75ce7
Fix an error where for some reason the fill_array kernel is NOT calle…
breyerml Nov 30, 2025
6e54ac0
Try to allocate the device_ptr memory only for sizes > 0.
breyerml Nov 30, 2025
e06b562
Use the operator[] instead of pointer arithmetic.
breyerml Nov 30, 2025
712c486
Remove TODO.
breyerml Nov 30, 2025
71cf7a6
Prevent exception escape.
breyerml Nov 30, 2025
02ad38d
Rename variables.
breyerml Nov 30, 2025
0ed284f
Add reserve call.
breyerml Nov 30, 2025
1be3eeb
Update the source location logic in case of MPI is available.
breyerml Nov 30, 2025
d5eef1a
Fix wrong PLSSVM_ASSERT condition.
breyerml Nov 30, 2025
de0f1e8
Rename variable.
breyerml Nov 30, 2025
6d8ea0b
Fix some clang-tidy warnings.
breyerml Nov 30, 2025
286ff8b
Add CMake warning for the combination:
breyerml Nov 30, 2025
624d343
Warning needs not to be silenced anymore.
breyerml Nov 30, 2025
347492c
Add reinterpret_array functions.
breyerml Nov 30, 2025
f44915c
Update documentation.
breyerml Nov 30, 2025
68dd5b3
Use standard std::array instead of C-style arrays.
breyerml Nov 30, 2025
025211e
Add missing const and update scratch memory declaration.
breyerml Nov 30, 2025
121c692
Add comment regarding the hpx_main.hpp header to the README file.
breyerml Nov 30, 2025
5e1551b
Add clang-tidy.
breyerml Nov 30, 2025
2070e65
Update documentation.
breyerml Nov 30, 2025
9bc4418
Move forward declarations to a header file.
breyerml Nov 30, 2025
68e57a0
Update includes and header guards.
breyerml Nov 30, 2025
2e29f95
Do not use else after return or throw.
breyerml Nov 30, 2025
10d7f07
Remove forward declaration.
breyerml Nov 30, 2025
d50e747
Add missing const or reference.
breyerml Nov 30, 2025
f55de2d
Remove wrong return.
breyerml Nov 30, 2025
1c2218f
Remove redundant default initializations.
breyerml Nov 30, 2025
75f15b0
Update documentation strings.
breyerml Nov 30, 2025
2bb9a02
Replace magic number with named variable.
breyerml Nov 30, 2025
5f4bf11
Explicitly name all parameters.
breyerml Nov 30, 2025
a1077bf
Add explicit NOLINT.
breyerml Nov 30, 2025
a1b81e5
Replace std::move with std::forward.
breyerml Nov 30, 2025
91cb6a4
Explicitly add pointer type.
breyerml Nov 30, 2025
621790c
Remove redundant statement.
breyerml Nov 30, 2025
977c42d
Improve documentation.
breyerml Nov 30, 2025
c8393e3
Correctly guard compilation flag behind a generator expression.
breyerml Nov 30, 2025
11388d4
Add clang-tidy support to the Python bindings directory.
breyerml Nov 30, 2025
fb3473d
Rename all test cases to comply with GoogleTest's naming conventions.
breyerml Dec 2, 2025
7500fb7
Split the matrix tests into multiple files.
breyerml Dec 2, 2025
29a6bb0
Update includes.
breyerml Dec 2, 2025
559ba11
Update include guards.
breyerml Dec 2, 2025
bb4473f
Add missing references and const, use auto with explicit casts, remov…
breyerml Dec 2, 2025
6ea9549
Update (failing) test cases.
breyerml Dec 2, 2025
9bcf86e
Update namespace handling.
breyerml Dec 2, 2025
4888708
Fix HPX linker error.
breyerml Dec 2, 2025
79f3e0d
Fix some default initialization warnings.
breyerml Dec 2, 2025
6b33c5a
Improve optional handling.
breyerml Dec 2, 2025
d727d47
Add explicit clang-tidy NOLINT, add directory specific .clang-tidy fi…
breyerml Dec 2, 2025
2d05730
Fix various clang-tidy warnings.
breyerml Dec 2, 2025
202fb8d
Fix compilation errors and warnings.
breyerml Dec 2, 2025
5a77963
Use correct factory function.
breyerml Dec 2, 2025
6ba55df
Add missing tests.
breyerml Dec 2, 2025
cac1d22
Add the SVM parameter to the performance tracking output for the plss…
breyerml Dec 2, 2025
3f9d263
Fix runtime warning that an unused SVM parameter is set in the linear…
breyerml Dec 8, 2025
7e1ce8a
Fix compiler warning with icpx.
breyerml Dec 8, 2025
a36f921
If no hostname or username could be retrieved, set it to "not availab…
breyerml Dec 8, 2025
bf3a08d
Fix runtime warning that an unused SVM parameter is set in the linear…
breyerml Dec 11, 2025
9f969fd
Revert "Fix runtime warning that an unused SVM parameter is set in th…
breyerml Dec 11, 2025
5dc9cba
Apply cmake-format and clang-format.
breyerml Dec 11, 2025
cd86d4b
Add missing includes.
breyerml Dec 11, 2025
7c8342f
For the dpcpp/icpx test presets disable PLSSVM_ENABLE_SYCL_HIERARCHIC…
breyerml Dec 12, 2025
fa74433
Emit a CMake warning for AdaptiveCpp stdpar tests if the configuratio…
breyerml Dec 14, 2025
1cebfff
The Kokkos backend may return a std::nullopt for get_local_memory() f…
breyerml Dec 14, 2025
ffbfd00
Improve stdpar CMake test preset backend test regex to also include t…
breyerml Dec 14, 2025
ce61c9f
Completely disable Kokkos::SYCL multi-GPU support (previously, in thi…
breyerml Dec 14, 2025
d62b4ee
hpx_main must be in the global namespace, internal linkage is not pos…
breyerml Dec 14, 2025
a20af0a
Fix clang-format.
breyerml Dec 15, 2025
5a4db76
Update GitHub actions.
breyerml Dec 15, 2025
c6d107d
Fix install documentation.
breyerml Dec 15, 2025
2416aba
Revert py::native_enum changes back to py::enum_ to again support str…
breyerml Dec 19, 2025
3c1bd4d
Try using Python virtual env to fix macOS GitHub action error.
breyerml Dec 19, 2025
9387abd
Try using older {fmt} version to fix MSVC GitHub action error.
breyerml Dec 19, 2025
da1fbbe
Reduce ctest output.
breyerml Dec 19, 2025
2573017
Fix formatting.
breyerml Dec 19, 2025
f934876
Try removing pip install.
breyerml Dec 19, 2025
86462df
Add __sklearn_tags__ function which is mandatory since version 1.8.0.
breyerml Dec 20, 2025
e8f9413
Try reducing the amount of dots in the GitHub action output.
breyerml Dec 20, 2025
3cd4b16
Add necessary pickle support to the new Tag classes.
breyerml Dec 21, 2025
e4f87cb
Fix some warnings in newer scikit-learn versions.
breyerml Dec 21, 2025
2417369
Try making the ctest output quiet and instead write it to a file and …
breyerml Dec 21, 2025
eae87f5
Try alternative macOs Python library build.
breyerml Dec 21, 2025
67c9c22
Revert recent changes and use older CMake version again (maybe fixing…
breyerml Dec 21, 2025
cbaefb4
Try fixing the macOS runner related errors.
breyerml Dec 21, 2025
98d7a1e
Switch back to older LLVM version.
breyerml Dec 21, 2025
353ee2c
Fix regex after test name refactor.
breyerml Dec 21, 2025
de7a0fc
Remove all trailing \0 of the retrieved hostname and username (result…
breyerml Dec 21, 2025
017ea87
Add hostname and username support for Windows.
breyerml Dec 21, 2025
ca7cc7c
Fix the macOS GitHub action.
breyerml Dec 21, 2025
5e12c3b
Fix linker error.
breyerml Dec 22, 2025
2b3611b
Remove Windows support for hostname and username query again due to e…
breyerml Dec 22, 2025
9a34225
Use std::find + iterator approach instead of potential error prone st…
breyerml Dec 22, 2025
82e8766
Fix out-of-bounce read access in the linear predict kernel.
breyerml Dec 22, 2025
936bf0d
In Debug mode, enable special standard library modes to catch more er…
breyerml Dec 22, 2025
9c8e786
Remove special STL debug flags from the macOS action (runs too long, …
breyerml Dec 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^"plssvm/'
Priority: 1
- Regex: '^"(cuda|hip|CL|sycl|omp|hpx|Kokkos)'
- Regex: '^"(cuda|driver_types|vector_types|hip|CL|sycl|omp|hpx|Kokkos)'
Priority: 2
- Regex: '^"(tests|bindings)/'
Priority: 3
Expand Down
83 changes: 47 additions & 36 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,47 +1,58 @@
# Generated from CLion Inspection settings
---
Checks: '-*,
Checks: '
bugprone-*,
-bugprone-branch-clone,
-bugprone-easily-swappable-parameters,
-bugprone-exception-escape,
-bugprone-macro-parentheses,

cert-*,
misc-*,
mpi-*,

clang-analyzer-*,
-clang-analyzer-optin.core.EnumCastOutOfRange,

cppcoreguidelines-*,
-cppcoreguidelines-avoid-do-while,
-cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-pro-bounds-pointer-arithmetic,
-cppcoreguidelines-macro-usage,
-cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-pro-bounds-constant-array-index,
google-default-arguments,
google-runtime-operator,
google-explicit-constructor,
hicpp-multiway-paths-covered,
hicpp-exception-baseclass,
-cppcoreguidelines-pro-bounds-pointer-arithmetic,

google-*,
-google-readability-todo,
-google-runtime-int,

hicpp-*,
-hicpp-uppercase-literal-suffix,

misc-*,
-misc-non-private-member-variables-in-classes,
-misc-no-recursion,

modernize-*,
-modernize-use-trailing-return-type,
-modernize-avoid-c-arrays,
-modernize-use-using,
-modernize-use-default-member-init,
-modernize-macro-to-enum,
portability-simd-intrinsics,
-modernize-type-traits,

mpi-*,

openmp-*,
-openmp-exception-escape,
-openmp-use-default-none,

performance-*,
-performance-avoid-endl,
-performance-enum-size,

portability-*,
-portability-avoid-pragma-once,

readability-*,
-readability-redundant-preprocessor,
-readability-named-parameter,
-readability-function-size,
-readability-simplify-boolean-expr,
-readability-convert-member-functions-to-static,
-readability-function-cognitive-complexity,
-readability-identifier-length,
-readability-duplicate-include,
-readability-magic-numbers,
-readability-braces-around-statements,
-readability-redundant-member-init,
-readability-math-missing-parentheses,
-readability-suspicious-call-argument,
-readability-qualified-auto,
-readability-isolate-declaration,
-readability-uppercase-literal-suffix,
-readability-container-data-pointer,
-readability-else-after-return,
-readability-redundant-access-specifiers,
-readability-function-cognitive-complexity,
-readability-implicit-bool-conversion,
-readability-container-contains,
-readability-identifier-naming,
bugprone-*'
'

CheckOptions: { misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic: true }
UseColor: true
HeaderFilterRegex: ".*(include\\/plssvm|bindings\\/Python|tests).*"
6 changes: 3 additions & 3 deletions .github/workflows/clang_gcc_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
- name: "Install cmake 3.31.0"
uses: lukka/get-cmake@v3.31.0
- name: "Clone the PLSSVM repository into PLSSVM/"
uses: actions/checkout@v4.1.1
uses: actions/checkout@v6.0.1
with:
path: PLSSVM
- name: "Install Python dependencies"
Expand All @@ -37,7 +37,7 @@ jobs:
- name: "Configure PLSSVM using CMake"
run: |
cd PLSSVM
cmake --preset openmp_test -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DPLSSVM_TARGET_PLATFORMS="cpu" -DPLSSVM_ENABLE_LANGUAGE_BINDINGS=ON -DPLSSVM_ENABLE_PERFORMANCE_TRACKING=ON -DPLSSVM_ENABLE_MPI=ON -DPLSSVM_TEST_FILE_NUM_DATA_POINTS=50 -DPLSSVM_TEST_FILE_NUM_FEATURES=20 -DPLSSVM_ENABLE_LTO=OFF
cmake --preset openmp_test -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DPLSSVM_ENABLE_STL_DEBUG_MODE=${{ matrix.build_type == 'Debug' && 'ON' || 'OFF' }} -DPLSSVM_TARGET_PLATFORMS="cpu" -DPLSSVM_ENABLE_LANGUAGE_BINDINGS=ON -DPLSSVM_ENABLE_PERFORMANCE_TRACKING=ON -DPLSSVM_ENABLE_MPI=ON -DPLSSVM_TEST_FILE_NUM_DATA_POINTS=50 -DPLSSVM_TEST_FILE_NUM_FEATURES=20 -DPLSSVM_ENABLE_LTO=OFF
- name: "Build PLSSVM"
run: |
cd PLSSVM
Expand All @@ -48,4 +48,4 @@ jobs:
cd PLSSVM
mkdir tmp
export TMPDIR=$PWD/tmp
ctest --preset openmp_test -C ${{ matrix.build_type }} --parallel 2
ctest --preset openmp_test -C ${{ matrix.build_type }} --parallel 2 --output-on-failure
34 changes: 12 additions & 22 deletions .github/workflows/clang_macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,51 +7,41 @@ on:
workflow_dispatch:
jobs:
macOS-Test:
runs-on: macos-13
runs-on: macos-15-intel
strategy:
matrix:
build_type: [Debug, Release]
steps:
- name: "Install cmake 3.31.0"
uses: lukka/get-cmake@v3.31.0
- name: "Install LLVM and Clang"
uses: KyleMayes/install-llvm-action@v2
with:
version: "15.0"
- name: "Install dependencies via brew"
run: |
brew install python3
brew install numpy
brew install libomp
- name: "Set up Python"
uses: actions/setup-python@v6.1.0
with:
python-version: "3.12"
- name: "Install Python dependencies"
run: |
python3 -m pip install -U pip
pip install argparse scikit-learn humanize --break-system-packages
- name: "Set PYTHONPATH"
run: |
export PYTHONPATH=$(python3 -c "import site; print(site.getsitepackages()[0])")
echo "PYTHONPATH=$PYTHONPATH" >> $GITHUB_ENV
pip install --upgrade pip setuptools wheel
pip install numpy scikit-learn humanize
- name: "Clone the PLSSVM repository into PLSSVM/"
uses: actions/checkout@v4.1.1
uses: actions/checkout@v6.0.1
with:
path: PLSSVM
- name: "Configure PLSSVM using CMake"
run: |
cd PLSSVM
export LDFLAGS="-L/opt/homebrew/opt/libomp/lib"
export CPPFLAGS="-I/opt/homebrew/opt/libomp/include"
cmake --preset openmp_test -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DPLSSVM_TARGET_PLATFORMS="cpu" -DPLSSVM_ENABLE_LANGUAGE_BINDINGS=ON -DPLSSVM_ENABLE_PERFORMANCE_TRACKING=ON -DPLSSVM_ENABLE_MPI=OFF -DPLSSVM_TEST_FILE_NUM_DATA_POINTS=50 -DPLSSVM_TEST_FILE_NUM_FEATURES=20 -DPLSSVM_ENABLE_LTO=OFF
cmake --preset openmp_test -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DPLSSVM_TARGET_PLATFORMS="cpu" -DPLSSVM_ENABLE_LANGUAGE_BINDINGS=ON -DPLSSVM_ENABLE_PERFORMANCE_TRACKING=ON -DPLSSVM_ENABLE_MPI=OFF -DPLSSVM_TEST_FILE_NUM_DATA_POINTS=50 -DPLSSVM_TEST_FILE_NUM_FEATURES=20 -DPLSSVM_ENABLE_LTO=OFF -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp" -DOpenMP_CXX_LIB_NAMES="omp" -DOpenMP_omp_LIBRARY="/usr/local/opt/libomp/lib/libomp.dylib" -DOpenMP_CXX_INCLUDE_DIRS="/usr/local/opt/libomp/include"
- name: "Build PLSSVM"
shell: bash
run: |
cd PLSSVM
export LDFLAGS="-L/opt/homebrew/opt/libomp/lib"
export CPPFLAGS="-I/opt/homebrew/opt/libomp/include"
export CPLUS_INCLUDE_PATH="/usr/local/opt/libomp/include":$CPLUS_INCLUDE_PATH
cmake --build --preset openmp_test --config ${{ matrix.build_type }}
echo "${GITHUB_WORKSPACE}/PLSSVM/build" >> $GITHUB_PATH
- name: "Run tests"
run: |
cd PLSSVM
export LDFLAGS="-L/opt/homebrew/opt/libomp/lib"
export CPPFLAGS="-I/opt/homebrew/opt/libomp/include"
ctest --preset openmp_test -C ${{ matrix.build_type }} -E ".*executable.*" --parallel 2
export LD_LIBRARY_PATH="/usr/local/opt/libomp/lib":$LD_LIBRARY_PATH
ctest --preset openmp_test -C ${{ matrix.build_type }} -E ".*Executable.*" --parallel 2 --output-on-failure
6 changes: 3 additions & 3 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
steps:
# checkout repository
- name: "Checkout PLSSVM"
uses: actions/checkout@v4.1.1
uses: actions/checkout@v6.0.1
with:
path: PLSSVM
# install dependencies
Expand All @@ -25,8 +25,8 @@ jobs:
sudo apt update
sudo apt-get install -y doxygen graphviz
# install new CMake version
- name: "Install cmake 3.31.0"
uses: lukka/get-cmake@v3.31.0
- name: "Install cmake 4.2.1"
uses: lukka/get-cmake@v4.2.1
# configure project via CMake
- name: "Configure"
run: |
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
steps:
# checkout repository
- name: "Checkout PLSSVM"
uses: actions/checkout@v4.1.1
uses: actions/checkout@v6.0.1
with:
path: PLSSVM
# install dependencies
Expand All @@ -22,8 +22,8 @@ jobs:
sudo apt install libomp-dev clang-format
pip install "git+https://github.com/vancraar/cmake_format@master"
# install new CMake version
- name: "Install cmake 3.31.0"
uses: lukka/get-cmake@v3.31.0
- name: "Install cmake 4.2.1"
uses: lukka/get-cmake@v4.2.1
# configure project via CMake
- name: "Configure"
run: |
Expand All @@ -47,7 +47,7 @@ jobs:
# upload the clang-format git patch, if available
- name: "Upload clang-format patch"
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6.0.0
with:
name: clang-format-patch
path: PLSSVM/clang-format-patch.txt
Expand All @@ -70,7 +70,7 @@ jobs:
# upload the cmake-format git patch, if available
- name: "Upload cmake-format patch"
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6.0.0
with:
name: cmake-format-patch
path: PLSSVM/cmake-format-patch.txt
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/msvc_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- name: "Install cmake 3.31.0"
uses: lukka/get-cmake@v3.31.0
- name: "Clone the PLSSVM repository into PLSSVM/"
uses: actions/checkout@v4.1.1
uses: actions/checkout@v6.0.1
with:
path: PLSSVM
- name: "Install Python dependencies"
Expand All @@ -27,7 +27,7 @@ jobs:
- name: "Configure PLSSVM using CMake"
run: |
cd PLSSVM
cmake --preset openmp_test -DCMAKE_CONFIGURATION_TYPES=${{ matrix.build_type }} -DPLSSVM_TARGET_PLATFORMS="cpu" -DPLSSVM_ENABLE_LANGUAGE_BINDINGS=ON -DPLSSVM_ENABLE_PERFORMANCE_TRACKING=ON -DPLSSVM_ENABLE_MPI=OFF -DPLSSVM_TEST_FILE_NUM_DATA_POINTS=50 -DPLSSVM_TEST_FILE_NUM_FEATURES=20
cmake --preset openmp_test -DCMAKE_CONFIGURATION_TYPES=${{ matrix.build_type }} -DPLSSVM_ENABLE_STL_DEBUG_MODE=${{ matrix.build_type == 'Debug' && 'ON' || 'OFF' }} -DPLSSVM_TARGET_PLATFORMS="cpu" -DPLSSVM_ENABLE_LANGUAGE_BINDINGS=ON -DPLSSVM_ENABLE_PERFORMANCE_TRACKING=ON -DPLSSVM_ENABLE_MPI=OFF -DPLSSVM_TEST_FILE_NUM_DATA_POINTS=50 -DPLSSVM_TEST_FILE_NUM_FEATURES=20
- name: "Build PLSSVM"
shell: bash
run: |
Expand All @@ -37,4 +37,4 @@ jobs:
- name: "Run tests"
run: |
cd PLSSVM
ctest --preset openmp_test -C ${{ matrix.build_type }} -E ".*executable.*" --parallel 2
ctest --preset openmp_test -C ${{ matrix.build_type }} -E ".*Executable.*" --parallel 2 --output-on-failure
4 changes: 2 additions & 2 deletions .github/workflows/pip.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ jobs:
run: |
sudo apt install libopenmpi-dev
- name: "Clone the PLSSVM repository into PLSSVM/"
uses: actions/checkout@v4.1.1
uses: actions/checkout@v6.0.1
with:
path: PLSSVM
- name: "Set up Python"
uses: actions/setup-python@v5
uses: actions/setup-python@v6.1.0
with:
python-version: "3.11"
- name: "Create and activate virtual environment"
Expand Down
11 changes: 6 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,10 @@ docs/*
!docs/plssvm-scale.1.in

# data in test folder
!tests/data/
tests/data/*
!tests/data/model/
!tests/data/libsvm/
!tests/data/arff/
!tests/data/predict/

# model files
*.model

# auto-generated AdaptiveCpp directory for JIT related information
.acpp-*
Loading
Loading