-
Notifications
You must be signed in to change notification settings - Fork 35
CPUArch dispatching and unified shared library #113
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Alexsandruss
wants to merge
97
commits into
intel:main
Choose a base branch
from
Alexsandruss:dev/unified-so
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 87 commits
Commits
Show all changes
97 commits
Select commit
Hold shift + click to select a range
9378b05
Initial implementation of CPUArch dispatcher and unified shared library
Alexsandruss d812859
Fix cpuid header
Alexsandruss 08a272e
Remove dynamic _svs_* loading
Alexsandruss c7343aa
Remove tests for _svs_* loader
Alexsandruss 56a84e7
TEMP: enable cmake verbosity options
Alexsandruss 6cecfed
Correct instantiation macros workflow
Alexsandruss edd5c9b
Extend support to L2 and IP distances
Alexsandruss 5ae4861
Revert "TEMP: enable cmake verbosity options"
Alexsandruss c8c9190
Extend x86_64 archs check
Alexsandruss 43ee728
Remove pybind11 module name define
Alexsandruss f42bece
Linting and other fixes
Alexsandruss 2ebee92
Enable microarch dispatcher for all build targets
Alexsandruss 83588cf
Install archspec in all github workflows;
Alexsandruss 27790b8
Add error message for unknown CMAKE_SYSTEM_PROCESSOR
Alexsandruss 5fe8239
Fixes for aarch64 uArch targets list
Alexsandruss 8980d7d
Fix license exception
Alexsandruss 0c88c73
Add host microarch output
Alexsandruss 9e2934c
Fix aarch64 support
Alexsandruss 2a4ada7
Fix macOS-ARM support
Alexsandruss a27aa8b
Fix macOS-ARM support v2
Alexsandruss 4c307f7
Remove unnecessary registers on ARM
Alexsandruss c2251dd
Change native options in last build target
Alexsandruss fd675dc
Change macOS-ARM check to based on brand string
Alexsandruss 5ee411e
Align naming: cpuarch -> microarch
Alexsandruss 085114a
Remove uArchs spec in setup.py
Alexsandruss a86397f
Add basic uArch python bindings;
Alexsandruss 1f5f531
Restructure cpuid and uArch headers
Alexsandruss 5570b82
Fix typo in m1 branch
Alexsandruss fb277e9
Update x86_64 targets
Alexsandruss e45db18
Revert "Update x86_64 targets"
Alexsandruss 4dfd0ce
Add x86_64_v4 target
Alexsandruss 30b2fcd
Change MICROARCH_OBJECT_FILES setting
Alexsandruss b9167b8
Change microarch Python API
Alexsandruss 5360dd2
fix: make microarch compatiable with sde usecase
yuejiaointel 0fbff56
fix: move dispatcher pipeline to public repo
yuejiaointel 6360464
fix: add compielrs and os to test dispatcher
yuejiaointel 2d594f5
fix: test x86 only
yuejiaointel bb397db
fix: test x86 only
yuejiaointel 936635a
fix: use actual os name instead of self hosted runners
yuejiaointel 37184df
fix: checkout erros
yuejiaointel a54d187
fix: checkout erros
yuejiaointel b3ac750
fix: add comiler matric for x86 targets as well
yuejiaointel 1095355
add: add cpu name and avx support info print
yuejiaointel 449d49c
fix: fix cpu info print for arm and macos
yuejiaointel 687a5fd
fix: format
yuejiaointel aa5bf2b
Add microarch_info example
Alexsandruss bd4bcef
Merge dispatcher testing with SDE into build-linux pipeline
Alexsandruss 658c770
Fix typo in pipeline
Alexsandruss d520b37
Add `describe` static function to `svs.microarch`and fix pipelines
Alexsandruss f3f076b
Remove merged dispatcher testing; macos pipeline fix; test_microarch.…
Alexsandruss d07fead
Fix for SDE
Alexsandruss e9ee015
Replace x86_64 base uarch (nehalem) with x86_64_v2
Alexsandruss ee2309c
Fix for base uarch flags
Alexsandruss 11c6c09
Exp.: change base uarch to sandybridge
Alexsandruss 9010819
Exp.: change base uarch to haswell
Alexsandruss 5d639a5
Revert x86_64 base uarch changes
Alexsandruss ce48782
Change template args for DistanceImpl
Alexsandruss b1a51c5
Extend macros to correct linking
Alexsandruss 74dc321
Linting
Alexsandruss aea0390
Fix for ARM platforms and correct naming
Alexsandruss e539cac
Fix for ARM platforms
Alexsandruss ec32357
Finalize tests for CosineSimilarity
ahuber21 6bdc0ae
Finalize standard distances
ahuber21 f039955
Add uarch tests to scalar.cpp
ahuber21 131722c
Merge remote-tracking branch 'origin/main' into dev/ahuber/unified-so…
ahuber21 04ae57c
Merge pull request #2 from intel/dev/ahuber/unified-so-with-macros
Alexsandruss 36eb21c
Minor corrections for uarch-specific assertions
Alexsandruss 0e31bef
Remove microarch output duplications;
Alexsandruss 81b7933
Simplify uarch macros
Alexsandruss 6c566ae
Reduce number of macros per uarch
Alexsandruss fef9ce7
Autogeneration of microarch macros
Alexsandruss 4dad7d1
Update license ignores
Alexsandruss b0b5f60
Add registry for static dimensions for dispatching
Alexsandruss ecf01d9
Fix for cmake options
Alexsandruss 85e3a44
Redirect unregistered static n_dims to dynamic in svs::distance::compute
Alexsandruss a5b8efb
Fix unused variable error
Alexsandruss b4b96f6
Code improvements
Alexsandruss bebd267
Code improvements and comments, microarch cmake fix
Alexsandruss 28001dd
Merge remote-tracking branch 'origin/main' into dev/unified-so
Alexsandruss 1bb7a1d
Update examples/cpp/shared/CMakeLists.txt
Alexsandruss d6397e7
External source files for `create_microarch_instantiations`
Alexsandruss 7de6be9
Avoid duplicated registry of static dimensions
Alexsandruss aa05a37
Parallelize uarch-specific objects building
Alexsandruss fdf9768
Merge remote-tracking branch 'origin/main' into dev/unified-so
Alexsandruss 1755d65
Remove SGX requirement for skylake
Alexsandruss 3513e68
Merge remote-tracking branch 'origin/main' into dev/unified-so
Alexsandruss 7131bfc
Simplify microarch options and split base svs target in cmake configs
Alexsandruss 96fe9dd
Fix for cmake exports
Alexsandruss cd60afb
Update benchmark static dimensions
Alexsandruss 0f60cd1
Fix cmake exports
Alexsandruss ff0559c
Fix cmake exports
Alexsandruss 51928ac
Set up microarch symbols validation
Alexsandruss bb79863
Fix path to python script
Alexsandruss c43f901
Structure microarch cmake options
Alexsandruss afac126
Fix for cmake exports
Alexsandruss 8ece9d7
Fix for cmake exports
Alexsandruss 6cf042a
Extend SDE python testing with examples
Alexsandruss File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| #!/bin/bash | ||
| # Copyright 2025 Intel Corporation | ||
| # | ||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||
| # you may not use this file except in compliance with the License. | ||
| # You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, software | ||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| # See the License for the specific language governing permissions and | ||
| # limitations under the License. | ||
|
|
||
| # Script to get CPU information using platform-agnostic python packages | ||
|
|
||
| # Install python packages if not present in the environment | ||
| if ! python -m pip show archspec > /dev/null 2>&1; then | ||
| python -m pip install archspec | ||
| fi | ||
|
|
||
| if ! python -m pip show py-cpuinfo > /dev/null 2>&1; then | ||
| python -m pip install py-cpuinfo | ||
| fi | ||
|
|
||
| # Print host microarchitecture | ||
| python -c "import archspec.cpu; \ | ||
| print('Host Microarchitecture[archspec]:', archspec.cpu.host().name)" | ||
|
|
||
| # Print full CPU information | ||
| python -c "import pprint, cpuinfo; \ | ||
| print('CPU info[py-cpuinfo]:'); \ | ||
| pprint.pprint(cpuinfo.get_cpu_info(), indent=4, compact=True)" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| #!/bin/bash | ||
| # Copyright 2025 Intel Corporation | ||
| # | ||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||
| # you may not use this file except in compliance with the License. | ||
| # You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, software | ||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| # See the License for the specific language governing permissions and | ||
| # limitations under the License. | ||
|
|
||
| wget --content-disposition "https://downloadmirror.intel.com/850782/sde-external-9.53.0-2025-03-16-lin.tar.xz" | ||
| tar -xf sde-external-*-lin.tar.xz | ||
| cd sde-external-*/ | ||
| echo "$PWD" >> $GITHUB_PATH |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.