Size computation slows bulk insert significantly
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- cpp
- Bereich
- performance
Rechercherichtung
Beginnen Sie mit include/cuco/detail/static_map.inl in den Zeilen 149–151 und erstellen Sie ein Profil der Bulk-Insertion, um die Kosten von device-to-host memcpy und Synchronisierung zu bestätigen. Vergleichen Sie Alternativen zur Berechnung oder Vermeidung der Größenverwaltung und überprüfen Sie anschließend, dass bulk insert nicht mehr den gemeldeten Overhead pro Operation verursacht, ohne das größenbezogene Verhalten zu beeinträchtigen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
The size computation requires a small memcpy from device to host and then a synchronization. Each one is the cause of serious performance degradation.
The synchronization is bad because it means that other unrelated streams are unable to do work.
The memcpy is bad because future copies are queued behind this one in architectures that have a limited number of cuda copy engines.
I was able to get a significant performance improvement by deleting these lines.
There ought to be a better way to compute size. Perhaps a lazy method. If this is too difficult, you might consider using templates to allow the user to choose to not maintain size_ at all! Use templates to change the type of size_ from int to a struct that has no members. That way it doesn't take up any space. Provide no methods on this struct so that the size_ doesn't get accidentally used. It will still use some space on the host but that seems like no big deal.
- Vorherrschende Sprache
- Cuda
- Sterne
- 674
- Forks
- 123
- Ø Merge
- 19 Std. 7 Min.
- Gemergte PRs (30 T.)
- 10
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus NVIDIA/cuCollections
-
Add cuco::detail::stream_sync(cuda::stream_ref) to centralize CCCL version-specific API namingEvtl. wieder frei @0z5a hat das vor 44 Tagen übernommen, und es ist kein Pull Request offen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
NVIDIA/cuCollections#840 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
nvidia-runners
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 25/100
NVIDIA/cuCollections#853 ·
Maintainer antworten meist innerhalb von 1 Tag
-
topic: performance type: feature request
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
NVIDIA/cuCollections#817 · 7 Kommentare · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
good first issue P2: Nice to have type: improvement
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 38/100
NVIDIA/cuCollections#805 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
[FEA] Add MPSC/MPMC concurrent queueEvtl. wieder frei @sleeepyjack hat das vor 284 Tagen übernommen, und es ist kein Pull Request offen. Offenmaintainer-only type: feature request
NVIDIA/cuCollections#791 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in NVIDIA/cuCollections
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
Maintainer antworten meist innerhalb von 1 Tag
-
area: backends bug priority: low
Schwierigkeit 2/5 Ein halber Tag Anfängerfreundlichkeit 66/100
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
enhancement good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
iamsaquib8/stockwise#29 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
ccch1mneyyy/dsh-TUI#1839 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag