Skip to content

[Workaround available]: SIGILL Illegal instruction on systems that lack AVX-512 support. #185

@feihongxu0824

Description

@feihongxu0824

Description

Hi everyone,

We sincerely apologize for the disruption caused by the recent SIGILL ("Illegal instruction") crashes on Linux systems with x86-64 CPUs that do not support AVX-512—such as some AMD processors (including EPYC and Ryzen) and older Intel CPUs. This issue affected many of you, and we truly appreciate your patience and detailed reports.

To help you get back on track immediately, we’re providing two temporary workarounds:

✅ Workaround 1: Install the AVX2-only pre-release package

This version contains no AVX-512 instructions and runs safely on all modern x86-64 CPUs with AVX2:

pip install zvec==0.2.1b0

✅ Workaround 2: Build from source (now defaults to -march=native)

If you prefer building locally, the current main branch automatically uses -march=native, which will generate an optimized binary for your specific machine. Please refer to the Build from Source documentation.

⚠️ Note: Only use this if you’re building on the same machine where you’ll run Zvec.


🙏 Community appreciation

We’re especially grateful to the following contributors for their insightful suggestions, debugging help, and code contributions that accelerated this fix:

🔜 What’s next?

We’re actively working on a robust, long-term solution: a single universal package with runtime CPU feature detection that automatically selects the best SIMD implementation (SSE2 / AVX2 / AVX-512).

We expect to release this as part of the official v0.3.0 around early to mid-March 2026.

Until then, please try one of the workarounds above and let us know if you run into any issues. Your feedback is invaluable!

Thank you for your understanding and continued support.


💡 We’ll keep this issue pinned until the official v0.3.0 release.


Steps to Reproduce

-

Logs / Stack Trace

Operating System

Linux x86-64

Build & Runtime Environment

Linux x86-64

Additional Context

  • I've checked git status — no uncommitted submodule changes
  • I built with CMAKE_BUILD_TYPE=Debug
  • This occurs with or without COVERAGE=ON
  • The issue involves Python ↔ C++ integration (pybind11)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions