[ENHANCEMENT]: Add hasher/comparator adaptor to better support mapping table use case
Maintainer thường phản hồi trong vòng 2 ngày
@njones93531 đang làm issue này rồi.
Từ ngày 3/6/2024.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 50/100
Hướng nghiên cứu
Bắt đầu với include/cuco/utility/mapping_table.cuh và so sánh cách sử dụng mapping_table_example.cu hiện tại. Xem xét các câu hỏi về cách đặt tên cùng với các quy ước utility hiện có, sau đó cập nhật ví dụ và liên kết godbolt trong README. Hoàn thành khi cả hai adaptor đều được cung cấp và cả ba mục TODO đều được xử lý.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Is your feature request related to a problem? Please describe.
Many hash-based implementations rely on the mapping table method to handle large keys/values that are expensive to copy or move around. Every time users need to write the mapping table hasher/key_equal adaptors on their own, they shouldn't have to.
Describe the solution you'd like
As proposed by @esoha-nvidia, to better serve all users in this scenario, cuco could provide two handy utilities to the user:
mapping_table_hashwrapper constructed from a span (a pointer to the beginning of the original data and a size) and the original hashermapping_table_key_eqwrapper constructed from a span and the original key comparator
TODO:
- Add two utilities (probably in
include/cuco/utility/mapping_table.cuh) - Update the example accordingly
- Update godbolt link in README
Describe alternatives you've considered
Seeking help for better naming
- Is the
mapping_table_prefix descriptive enough? Any other suggestions? - STL also use
pred/predicateto refer to key comparators but I foundmapping_table_key_pred/mapping_table_predcan be misleading since we support conditional operations likeinsert_ifandcontains_ifwhere the condition is also named aspredicate mapping_table_equalgood enough?key_eqis the STL canonical but the_eqabbreviation is ambiguous.
- Ngôn ngữ chính
- Cuda
- Star
- 671
- Fork
- 122
- Merge trung bình
- 4 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 10
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của NVIDIA/cuCollections
-
Add cuco::detail::stream_sync(cuda::stream_ref) to centralize CCCL version-specific API namingCó thể làm lại được @0z5a đã nhận 25 ngày trước và không có pull request nào đang mở. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
NVIDIA/cuCollections#840 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
nvidia-runners
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 25/100
NVIDIA/cuCollections#853 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
topic: performance type: feature request
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
NVIDIA/cuCollections#817 · 7 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 2 ngày
-
good first issue P2: Nice to have type: improvement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 38/100
NVIDIA/cuCollections#805 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
[FEA] Add MPSC/MPMC concurrent queueCó thể làm lại được @sleeepyjack đã nhận 264 ngày trước và không có pull request nào đang mở. Đang mởtype: feature request
NVIDIA/cuCollections#791 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của NVIDIA/cuCollections
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
FuRongJun-1999/dsh-memory#226 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug difficulty:2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
MakazhanAlpamys/Soup#1856 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Add: MS NOWĐang mởcheck:passed streams:add
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Boolean statistics (Covered, Confident, JaccardDistant) aggregate to 1.0 without float weightsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 63/100
google-research/weatherbenchX#310 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
request-theme
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 65/100
LizardByte/ThemerrDB#8924 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày