Skip to content

Redefined threading logic for GESV and GEMV on WoA #5150

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

Merged
merged 1 commit into from
Mar 3, 2025

Conversation

Harishmcw
Copy link
Contributor

Summary of Changes

This PR optimizes the threading logic in GESV and GEMV by refining switchover thresholds for parallel execution, particularly for Windows on ARM64 (WoA).

GEMV:

  • Performs better in single-threaded mode compared to multi-threaded up to input size:
    • 5,000 for COMPLEX data type
    • 10,000 for SINGLE/DOUBLE data types

GESV:

  • Benefits from 4-thread execution at input sizes:
    • 300-1000 for COMPLEX
    • 500-1000 for SINGLE/DOUBLE

Ensures optimal threading on WoA-based devices while preserving existing thresholds for other platforms.

Benchmark Data (Timings in ms)

Below is the benchmark data of GEMV function comparing single-threaded vs. parallel execution for different input sizes on WoA.

image

@martin-frbg martin-frbg added this to the 0.3.30 milestone Mar 3, 2025
@martin-frbg martin-frbg merged commit 7338a47 into OpenMathLib:develop Mar 3, 2025
62 of 65 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants