huggingface / huggingface/candle

candle-core::quantized::avx contains AVX2 instructions which of course crashes on AVX machines

Open
#1,818 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
21.1k
Forks
1.8k
Avg merge
16h 42m
Merged PRs (30d)
25

Description

Maybe CPU probing should detect whether AVX2 is available as a start. If it is determined that AVX should be supported perhaps let the probe set an enum to what instruction set is available, so that the file can provide both (or more in the future?) versions? I might look into making AVX-clean functions... but I don't promise, I just happened to try mistral on an Xeon E5 2650, and it crashed with SIGILL on mmm256_cvtepu8_epi16. If I get bored, perhaps :-)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting candle-core::quantized::avx and the CPU probing behavior described in the issue, then reproduce the SIGILL on the Xeon E5 2650 or another AVX-only machine. Done means AVX2 instructions are not executed when AVX2 is unavailable, while the existing AVX2 path remains usable where supported.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
machine-learning, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.