[PERF]: Converting arguments of generic int or fixed-size int (e.g. cuuint32_t) are suboptimal
Offen
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
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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