Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[ENHANCEMENT]: Add hasher/comparator adaptor to better support mapping table use case

オープン
#476 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 2 日以内に返信

@njones93531 がすでに取り組んでいます。

2024年6月3日 から。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
50/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
cpp
領域
data

調査の方向性

include/cuco/utility/mapping_table.cuh から始め、現在の mapping_table_example.cu の使用方法と比較します。既存の utility の規約と併せて命名に関する問題を確認し、その後、example と README の godbolt リンクを更新します。両方のアダプターが提供され、3 つすべての TODO 項目に対応できれば完了です。

索引モデルが issue の本文から書いたものです。

説明

good first issue P2: Nice to have type: improvement
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:

  1. mapping_table_hash wrapper constructed from a span (a pointer to the beginning of the original data and a size) and the original hasher
  2. mapping_table_key_eq wrapper 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/predicate to refer to key comparators but I found mapping_table_key_pred/mapping_table_pred can be misleading since we support conditional operations like insert_if and contains_if where the condition is also named as predicate
  • mapping_table_equal good enough? key_eq is the STL canonical but the _eq abbreviation is ambiguous.
主要言語
Cuda
スター
671
フォーク
122
平均マージ
4日 19時間
マージ済み PR(30日)
10

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

NVIDIA/cuCollections のほかの issue

NVIDIA/cuCollections の issue をすべて見る

似ている issue

Data Engineering の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。