[BUG] `Array::get_backend()` can never return `OPENCL`

Offen Anfängerfreundlich
#387 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
1/5
Geschätzter Aufwand
Unter einer Stunde
Anfängerfreundlichkeit
88/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Ruhig
Tech-Stack
rust
Bereich
backend

Rechercherichtung

Beginnen Sie mit src/core/array.rs:392-404 und vergleichen Sie die Backend-Werte in include/af/defines.h:414-417. Aktualisieren Sie die Zuordnung, sodass ein mit OpenCL erstelltes Array als Backend::OPENCL gemeldet wird, und führen Sie dann die vorhandene Testsuite oder die backendbezogenen Tests aus, um das Ergebnis zu überprüfen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Bug

src/core/array.rs:392-404:

match (err_val, ret_val) {
    (0, 1) => Backend::CPU,
    (0, 2) => Backend::CUDA,
    (0, 3) => Backend::OPENCL,
    _ => Backend::DEFAULT,
}

af_backend is a bit-flag enum, not sequential (include/af/defines.h:414-417, v3.8.0):

AF_BACKEND_DEFAULT = 0,
AF_BACKEND_CPU     = 1,
AF_BACKEND_CUDA    = 2,
AF_BACKEND_OPENCL  = 4

There is no backend with value 3. An OpenCL-created array returns 4, falls through to the wildcard, and is reported as Backend::DEFAULT.

Fix: (0, 4) => Backend::OPENCL.


Found by Claude Opus 5

Vorherrschende Sprache
Rust
Sterne
827
Forks
59
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus arrayfire/arrayfire-rust

Alle Issues in arrayfire/arrayfire-rust

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.