NVIDIA / NVIDIA/cuda-python

[PERF]: Converting arguments of generic int or fixed-size int (e.g. cuuint32_t) are suboptimal

Offen
#1,642 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

cuda.bindings P2 performance
Vorherrschende Sprache
Cython
Sterne
3.4k
Forks
329
Ø Merge
1 T. 21 Std.
Gemergte PRs (30 T.)
113

Beschreibung

In driver, runtime and nvrtc, the conversion of an argument that accepts any Python int or None, but converts to one of the fixed-size C ints in CUDA (e.g. cuuint32_t) looks like:

    cdef cydriver.cuuint32_t cytensorRank
    if tensorRank is None:
        ptensorRank = 0
    elif isinstance(tensorRank, (cuuint32_t,)):
        ptensorRank = int(tensorRank)
    else:
        ptensorRank = int(cuuint32_t(tensorRank))

This can be reduced to:

    cdef cydriver.cuuint32_t cytensorRank
    if tensorRank is None:
        ptensorRank = 0
    else:
        ptensorRank = int(tensorRank)

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Durchsuche den Driver-, Runtime- und nvrtc-Konvertierungscode nach dem im Issue gezeigten isinstance-based-Muster; beginne damit, diese Call Sites mit der vereinfachten Form zu vergleichen. Ersetze die anwendbaren Konvertierungen unter Beibehaltung des None-to-zero-Verhaltens und überprüfe anschließend die bestehenden Checks der betroffenen Komponenten.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
performance
Issue-Typ
Refactoring
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

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