Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 0 additions & 43 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -178,49 +178,6 @@ jobs:
working-directory: ${{github.workspace}}/build
run: python3 ./Test.py "-r=.."

build_and_test_hexagon_cross:
runs-on: ubuntu-latest

strategy:
matrix:
build_type: [Debug, Release]

env:
HEXAGON_TOOLCHAIN: ${{github.workspace}}/clang+llvm-22.1.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu

steps:
- uses: actions/checkout@v6

- name: Host properties
run: lscpu

- name: Install host dependencies
run: sudo apt-get update && sudo apt-get install -y libc++1 libc++abi1 liburing2 libglib2.0-0t64

- name: Install Hexagon toolchain
run: |
wget -q https://artifacts.codelinaro.org/artifactory/codelinaro-toolchain-for-hexagon/22.1.0_/clang+llvm-22.1.0-cross-hexagon-unknown-linux-musl.tar.zst
tar --zstd -xf clang+llvm-22.1.0-cross-hexagon-unknown-linux-musl.tar.zst

- name: Configure CMake
run: >
cmake ./prj/cmake -B ${{github.workspace}}/build
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
-DSIMD_TOOLCHAIN="${{env.HEXAGON_TOOLCHAIN}}/bin/hexagon-linux-musl-clang"
-DSIMD_TARGET="hexagon"
-DSIMD_SYNET=OFF

- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} --parallel$(nproc)

- name: Test
working-directory: ${{github.workspace}}/build
run: >
${{env.HEXAGON_TOOLCHAIN}}/bin/qemu-hexagon -cpu any
-L ${{env.HEXAGON_TOOLCHAIN}}/target/hexagon-unknown-linux-musl
./Test "-r=.." -m=a -tt=0 "-ot=log_${{matrix.build_type}}.txt" -ts=5 -mt=1
-fi=SquareS -fi=ValueSum -fi=y8u -fi=amCo -fi=GetStat -fi=ColSums -fi=RowSums -fi=FillPixel -fi=FillBgra -fi=CorrelationSum -fi=BgrToRgb -fi=BgrToGray -fi=Abs -fi=AddFeat

build_and_test_mingw:
runs-on: windows-latest

Expand Down
13 changes: 3 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ neural network.

The algorithms are optimized with using of different SIMD CPU extensions.
In particular the library supports following CPU extensions:
SSE, AVX, AVX-512 and AMX for x86/x64, NEON, SVE, SVE2 for ARM, HVX for Hexagon.
SSE, AVX, AVX-512 and AMX for x86/x64, NEON, SVE, SVE2 for ARM.

The Simd Library has C API and also contains useful C++ classes and functions to facilitate access to C API.
The library supports dynamic and static linking, 32-bit and 64-bit Windows and Linux,
Expand Down Expand Up @@ -59,7 +59,7 @@ Files of CMake build systems are placed in the directory:

`simd/prj/cmake/`

The library can be built for x86/x64, ARM(32/64), and Hexagon platforms using the G++ or Clang compilers.
The library can be built for x86/x64 and ARM(32/64) platforms using the G++ or Clang compilers.
Using the native compiler (g++) for the current platform is simple:

mkdir build
Expand All @@ -82,13 +82,6 @@ And for ARM (64 bit):
cmake ../prj/cmake -DSIMD_TOOLCHAIN="/your_toolchain/usr/bin/aarch64-linux-gnu-g++" -DSIMD_TARGET="aarch64" -DCMAKE_BUILD_TYPE="Release"
make

And for Hexagon with HVX (cross-compilation using the Hexagon Clang toolchain):

mkdir build
cd build
cmake ../prj/cmake -DSIMD_TOOLCHAIN="/your_toolchain/bin/hexagon-linux-musl-clang" -DSIMD_TARGET="hexagon" -DCMAKE_BUILD_TYPE="Release"
make

As result the library and the test application will be built in the current directory.

There are addition build parameters:
Expand Down Expand Up @@ -195,7 +188,7 @@ Also you can use parameters:
* `-tr=2` a number of test execution repeats.
* `-ts=1` to print statistics of time of tests execution.
* `-cc=1` to check c++ API.
* `-de=2` a flags of SIMD extensions which testing are disabled. Base - 1, 2 - SSE4.1/NEON/HVX, 4 - AVX2/SVE2, 8 - AVX-512BW, 16 - AVX-512VNNI, 32 - AMX-BF16.
* `-de=2` a flags of SIMD extensions which testing are disabled. Base - 1, 2 - SSE4.1/NEON, 4 - AVX2/SVE2, 8 - AVX-512BW, 16 - AVX-512VNNI, 32 - AMX-BF16.
* `-wu=100` a time to warm up CPU before testing (in milliseconds).
* `-pt=1` a boolean flag to pin threads to cpu cores.

7 changes: 7 additions & 0 deletions docs/2026.html
Original file line number Diff line number Diff line change
Expand Up @@ -176,12 +176,15 @@ <h5>Removing</h5>
<li>HVX optimization of function GetColSums.</li>
<li>HVX optimization of function GetRowSums.</li>
<li>HVX optimization of function GetStatistic.</li>
<li>HVX optimization of function HistogramConditional.</li>
<li>HVX optimization of function HistogramMasked.</li>
<li>HVX optimization of function OperationBinary8u.</li>
<li>HVX optimization of function SquareSum.</li>
<li>HVX optimization of function ValueSquareSum.</li>
<li>HVX optimization of function ValueSquareSums.</li>
<li>HVX optimization of function ValueSum.</li>
<li>Enum value SimdCpuInfoHvx.</li>
<li>Stopping of support of HVX extension (Hexagon platform).</li>
</ul>

<h4>Python wrapper</h4>
Expand All @@ -198,6 +201,7 @@ <h5>Improving</h5>
<h5>Removing</h5>
<ul>
<li>Function Simd.Lib.AlphaBlending2x.</li>
<li>Enum value Simd.CpuInfo.HVX.</li>
</ul>

<h4>Test framework</h4>
Expand Down Expand Up @@ -284,6 +288,9 @@ <h5>Removing</h5>
<ul>
<li>SIMD_INT8_DEBUG cmake option.</li>
<li>SIMD_INT8_DEBUG_DISABLE macro.</li>
<li>SIMD_HVX_DISABLE macro.</li>
<li>CMake build for Hexagon platform.</li>
<li>Job build_and_test_hexagon_cross in Github actions script for CMake.</li>
</ul>

<h4>Documentation</h4>
Expand Down
6 changes: 1 addition & 5 deletions docs/help/class_simd_1_1_cpu_info.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion docs/help/functions_h.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion docs/help/functions_vars_h.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 0 additions & 4 deletions docs/help/group__c__types.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions docs/help/group__info.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion docs/help/group__memory.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions docs/help/index.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ <h3>Description</h3>
pixel format conversion, image scaling and filtration, extraction of statistic information from images, motion detection,
object detection and classification, neural network.</p>
<p>The algorithms are optimized with using of different SIMD CPU extensions.
In particular the library supports following CPU extensions: SSE, AVX, AVX-512 and AMX for x86/x64, NEON, SVE, SVE2 for ARM, HVX for Hexagon.</p>
In particular the library supports following CPU extensions: SSE, AVX, AVX-512 and AMX for x86/x64, NEON, SVE, SVE2 for ARM.</p>
<p>The Simd Library has C API and also contains useful C++ and Python wrapper classes and functions to facilitate access to C API.
The library supports dynamic and static linking, 32-bit and 64-bit Windows and Linux,
MSVS, G++ and Clang compilers, MSVS project and CMake build systems.</p>
Expand Down
2 changes: 0 additions & 2 deletions prj/cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -185,8 +185,6 @@ else()
include(x86.cmake)
elseif((CMAKE_SYSTEM_PROCESSOR MATCHES "arm") OR (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64"))
include(arm.cmake)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "hexagon")
include(hexagon.cmake)
else()
message(FATAL_ERROR "Unknown value of CMAKE_SYSTEM_PROCESSOR!")
endif()
Expand Down
33 changes: 0 additions & 33 deletions prj/cmake/hexagon.cmake

This file was deleted.

4 changes: 2 additions & 2 deletions prj/txt/DoxygenOverview.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
extraction of statistic information from images, motion detection, neural network.

The algorithms are optimized with using of different SIMD CPU extensions.
In particular the library supports following CPU extensions: SSE, AVX, AVX-512 and AMX for x86/x64, NEON, SVE, SVE2 for ARM, HVX for Hexagon.
In particular the library supports following CPU extensions: SSE, AVX, AVX-512 and AMX for x86/x64, NEON, SVE, SVE2 for ARM.

The %Simd Library has C API and also contains useful C++ classes and functions to facilitate access to C API.
The library supports dynamic and static linking, 32-bit and 64-bit Windows and Linux, MSVS, G++ and Clang compilers, MSVS project and CMake build systems.
Expand Down Expand Up @@ -163,7 +163,7 @@
- `-tr=2` a number of test execution repeats.
- `-ts=1` to print statistics of time of tests execution.
- `-cc=1` to check c++ API.
- `-de=2` a flags of SIMD extensions which testing are disabled. Base - 1, 2 - SSE4.1/NEON/HVX, 4 - AVX2/SVE2, 8 - AVX-512BW, 16 - AVX-512VNNI, 32 - AMX-BF16.
- `-de=2` a flags of SIMD extensions which testing are disabled. Base - 1, 2 - SSE4.1/NEON, 4 - AVX2/SVE2, 8 - AVX-512BW, 16 - AVX-512VNNI, 32 - AMX-BF16.
- `-wu=100` a time to warm up CPU before testing (in milliseconds).
- `-pt=1` a boolean flag to pin threads to cpu cores.
*/
Loading