[FEA] Add option to report hash collisions
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
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- cpp
- Bereich
- performance
Rechercherichtung
Beginne in include/cuco/detail/static_map.inl beim no-CG static_map::find-Pfad in Zeile 252 und verfolge dann die anderen im Issue erwähnten Insert- und Find-Gerätefunktionen. Definiere das Opt-in-Verhalten zur Kollisionszählung über static_map und dynamic_map hinweg und stelle sicher, dass der Zähler auf dem Host zugänglich und standardmäßig deaktiviert ist, ohne die Standardperformance zu beeinträchtigen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Is your feature request related to a problem? Please describe.
Hash collisions impact performance of hash map insert and probe. It will be useful to find a way to report the number of collisions for static_map and dynamic_map to help assess performance of insert or probe when developers are evaluating perf on their dataset. It would also allow developers to tune the hash function or occupancy to reduce collisions and find the right balance for their scenario.
Describe the solution you'd like
The map can have an optional template argument that specifies if we need to count collisions (disabled by default), so it's opt-in and doesn't impact perf for the standard case. The number of collisions would be stored in a class variable that's accessible with something like get_num_collisions(). Implementation: allocate memory for device variable uint64_t *d_num_collisions, update all insert and find device code to do atomicAdd(d_num_collisions, 1) to that variable, then copy the contents to the host variable after the kernel. Here is where we can count the collisions for no-CG static_map::find:
https://github.com/NVIDIA/cuCollections/blob/2196040f0562a0280292eebef5295d914f615e63/include/cuco/detail/static_map.inl#L252
The atomic will be guarded by the template argument check, so should only impact perf if we're asked to count collisions. Similarly, would have to update all other insert and find functions.
Describe alternatives you've considered
None.
Additional context
None.
- Vorherrschende Sprache
- Cuda
- Sterne
- 674
- Forks
- 123
- Ø Merge
- 1 T. 13 Std.
- Gemergte PRs (30 T.)
- 8
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 36 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 276 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 75/100
modelscope/evalscope#1938 ·
Maintainer antworten meist innerhalb von 1 Tag
-
PlatformSpecific.hasGreenThreads incorrectly returns false for JDK updates and non-GA versionsEvtl. vergeben @hearnadam hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
zio/zio#11303 · 1 Reaktion · 2 zugewiesene Personen ·
Maintainer antworten meist innerhalb von 1 Tag
-
compress: block buffers get re-zeroed on every call, and the zeroing is immediately overwrittenOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
ClickHouse/ch-go#1218 ·
Maintainer antworten meist innerhalb von 13 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
Maintainer antworten meist innerhalb von 1 Tag
-
Restore runs its two nvidia-smi calls one after the other before CRIUEvtl. vergeben @galletas1712 hat das vor 1 Tag übernommen. Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 73/100
Maintainer antworten meist innerhalb von 2 Tagen