{ "pull": { "url": "https://api.github.com/repos/NVIDIA/cccl/pulls/7571", "id": 3262811853, "node_id": "PR_kwDOEar1-c7Ceo7N", "html_url": "https://github.com/NVIDIA/cccl/pull/7571", "diff_url": "https://github.com/NVIDIA/cccl/pull/7571.diff", "patch_url": "https://github.com/NVIDIA/cccl/pull/7571.patch", "issue_url": "https://api.github.com/repos/NVIDIA/cccl/issues/7571", "number": 7571, "state": "closed", "locked": false, "title": "Vectorize reduction also for trivially relocatable types", "user": { "login": "bernhardmgruber", "id": 1224051, "node_id": "MDQ6VXNlcjEyMjQwNTE=", "avatar_url": "https://avatars.githubusercontent.com/u/1224051?v=4", "gravatar_id": "", "url": "https://api.github.com/users/bernhardmgruber", "html_url": "https://github.com/bernhardmgruber", "followers_url": "https://api.github.com/users/bernhardmgruber/followers", "following_url": "https://api.github.com/users/bernhardmgruber/following{/other_user}", "gists_url": "https://api.github.com/users/bernhardmgruber/gists{/gist_id}", "starred_url": "https://api.github.com/users/bernhardmgruber/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/bernhardmgruber/subscriptions", "organizations_url": "https://api.github.com/users/bernhardmgruber/orgs", "repos_url": "https://api.github.com/users/bernhardmgruber/repos", "events_url": "https://api.github.com/users/bernhardmgruber/events{/privacy}", "received_events_url": "https://api.github.com/users/bernhardmgruber/received_events", "type": "User", "user_view_type": "public", "site_admin": false }, "body": "I want to reduce our use of `cub::is_primitive`, but switching to `cuda::std::trivially_copyable` is a breaking change for any user that specializes `cub::Traits` for any non-trivially copyable type. So let's use both and drop `cub::is_primitive` in CCCL 4.0.", "created_at": "2026-02-09T13:09:17Z", "updated_at": "2026-02-22T22:23:13Z", "closed_at": "2026-02-22T22:23:11Z", "merged_at": "2026-02-22T22:23:11Z", "merge_commit_sha": "d9ef8983065f95ae1bd97ded5498294b3fe9cd16", "assignees": [], "requested_reviewers": [ { "login": "pauleonix", "id": 23128868, "node_id": "MDQ6VXNlcjIzMTI4ODY4", "avatar_url": "https://avatars.githubusercontent.com/u/23128868?v=4", "gravatar_id": "", "url": "https://api.github.com/users/pauleonix", "html_url": "https://github.com/pauleonix", "followers_url": "https://api.github.com/users/pauleonix/followers", "following_url": "https://api.github.com/users/pauleonix/following{/other_user}", "gists_url": "https://api.github.com/users/pauleonix/gists{/gist_id}", "starred_url": "https://api.github.com/users/pauleonix/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/pauleonix/subscriptions", "organizations_url": "https://api.github.com/users/pauleonix/orgs", "repos_url": "https://api.github.com/users/pauleonix/repos", "events_url": "https://api.github.com/users/pauleonix/events{/privacy}", "received_events_url": "https://api.github.com/users/pauleonix/received_events", "type": "User", "user_view_type": "public", "site_admin": false } ], "requested_teams": [], "labels": [], "milestone": null, "draft": false, "commits_url": "https://api.github.com/repos/NVIDIA/cccl/pulls/7571/commits", "review_comments_url": "https://api.github.com/repos/NVIDIA/cccl/pulls/7571/comments", "review_comment_url": "https://api.github.com/repos/NVIDIA/cccl/pulls/comments{/number}", "comments_url": "https://api.github.com/repos/NVIDIA/cccl/issues/7571/comments", "statuses_url": "https://api.github.com/repos/NVIDIA/cccl/statuses/7ec67a53946e2352082ccb02ab2b9b34f9969c55", "head": { "label": "bernhardmgruber:reduce_more", "ref": "reduce_more", "sha": "7ec67a53946e2352082ccb02ab2b9b34f9969c55", "user": { "login": "bernhardmgruber", "id": 1224051, "node_id": "MDQ6VXNlcjEyMjQwNTE=", "avatar_url": "https://avatars.githubusercontent.com/u/1224051?v=4", "gravatar_id": "", "url": "https://api.github.com/users/bernhardmgruber", "html_url": "https://github.com/bernhardmgruber", "followers_url": "https://api.github.com/users/bernhardmgruber/followers", "following_url": "https://api.github.com/users/bernhardmgruber/following{/other_user}", "gists_url": "https://api.github.com/users/bernhardmgruber/gists{/gist_id}", "starred_url": "https://api.github.com/users/bernhardmgruber/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/bernhardmgruber/subscriptions", "organizations_url": "https://api.github.com/users/bernhardmgruber/orgs", "repos_url": "https://api.github.com/users/bernhardmgruber/repos", "events_url": "https://api.github.com/users/bernhardmgruber/events{/privacy}", "received_events_url": "https://api.github.com/users/bernhardmgruber/received_events", "type": "User", "user_view_type": "public", "site_admin": false }, "repo": { "id": 786959287, "node_id": "R_kgDOLugLtw", "name": "cccl", "full_name": "bernhardmgruber/cccl", "private": false, "owner": { "login": "bernhardmgruber", "id": 1224051, "node_id": "MDQ6VXNlcjEyMjQwNTE=", "avatar_url": "https://avatars.githubusercontent.com/u/1224051?v=4", "gravatar_id": "", "url": "https://api.github.com/users/bernhardmgruber", "html_url": "https://github.com/bernhardmgruber", "followers_url": "https://api.github.com/users/bernhardmgruber/followers", "following_url": "https://api.github.com/users/bernhardmgruber/following{/other_user}", "gists_url": "https://api.github.com/users/bernhardmgruber/gists{/gist_id}", "starred_url": "https://api.github.com/users/bernhardmgruber/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/bernhardmgruber/subscriptions", "organizations_url": "https://api.github.com/users/bernhardmgruber/orgs", "repos_url": "https://api.github.com/users/bernhardmgruber/repos", "events_url": "https://api.github.com/users/bernhardmgruber/events{/privacy}", "received_events_url": "https://api.github.com/users/bernhardmgruber/received_events", "type": "User", "user_view_type": "public", "site_admin": false }, "html_url": "https://github.com/bernhardmgruber/cccl", "description": "CUDA C++ Core Libraries", "fork": true, "url": "https://api.github.com/repos/bernhardmgruber/cccl", "forks_url": "https://api.github.com/repos/bernhardmgruber/cccl/forks", "keys_url": "https://api.github.com/repos/bernhardmgruber/cccl/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/bernhardmgruber/cccl/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/bernhardmgruber/cccl/teams", "hooks_url": "https://api.github.com/repos/bernhardmgruber/cccl/hooks", "issue_events_url": "https://api.github.com/repos/bernhardmgruber/cccl/issues/events{/number}", "events_url": "https://api.github.com/repos/bernhardmgruber/cccl/events", "assignees_url": "https://api.github.com/repos/bernhardmgruber/cccl/assignees{/user}", "branches_url": "https://api.github.com/repos/bernhardmgruber/cccl/branches{/branch}", "tags_url": "https://api.github.com/repos/bernhardmgruber/cccl/tags", "blobs_url": "https://api.github.com/repos/bernhardmgruber/cccl/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/bernhardmgruber/cccl/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/bernhardmgruber/cccl/git/refs{/sha}", "trees_url": "https://api.github.com/repos/bernhardmgruber/cccl/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/bernhardmgruber/cccl/statuses/{sha}", "languages_url": "https://api.github.com/repos/bernhardmgruber/cccl/languages", "stargazers_url": "https://api.github.com/repos/bernhardmgruber/cccl/stargazers", "contributors_url": "https://api.github.com/repos/bernhardmgruber/cccl/contributors", "subscribers_url": "https://api.github.com/repos/bernhardmgruber/cccl/subscribers", "subscription_url": "https://api.github.com/repos/bernhardmgruber/cccl/subscription", "commits_url": "https://api.github.com/repos/bernhardmgruber/cccl/commits{/sha}", "git_commits_url": "https://api.github.com/repos/bernhardmgruber/cccl/git/commits{/sha}", "comments_url": "https://api.github.com/repos/bernhardmgruber/cccl/comments{/number}", "issue_comment_url": "https://api.github.com/repos/bernhardmgruber/cccl/issues/comments{/number}", "contents_url": "https://api.github.com/repos/bernhardmgruber/cccl/contents/{+path}", "compare_url": "https://api.github.com/repos/bernhardmgruber/cccl/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/bernhardmgruber/cccl/merges", "archive_url": "https://api.github.com/repos/bernhardmgruber/cccl/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/bernhardmgruber/cccl/downloads", "issues_url": "https://api.github.com/repos/bernhardmgruber/cccl/issues{/number}", "pulls_url": "https://api.github.com/repos/bernhardmgruber/cccl/pulls{/number}", "milestones_url": "https://api.github.com/repos/bernhardmgruber/cccl/milestones{/number}", "notifications_url": "https://api.github.com/repos/bernhardmgruber/cccl/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/bernhardmgruber/cccl/labels{/name}", "releases_url": "https://api.github.com/repos/bernhardmgruber/cccl/releases{/id}", "deployments_url": "https://api.github.com/repos/bernhardmgruber/cccl/deployments", "created_at": "2024-04-15T16:14:10Z", "updated_at": "2025-11-05T18:15:27Z", "pushed_at": "2026-05-16T00:01:08Z", "git_url": "git://github.com/bernhardmgruber/cccl.git", "ssh_url": "git@github.com:bernhardmgruber/cccl.git", "clone_url": "https://github.com/bernhardmgruber/cccl.git", "svn_url": "https://github.com/bernhardmgruber/cccl", "homepage": "", "size": 117106, "stargazers_count": 0, "watchers_count": 0, "language": "C++", "has_issues": false, "has_projects": true, "has_downloads": true, "has_wiki": true, "has_pages": false, "has_discussions": false, "forks_count": 0, "mirror_url": null, "archived": false, "disabled": false, "open_issues_count": 0, "license": { "key": "other", "name": "Other", "spdx_id": "NOASSERTION", "url": null, "node_id": "MDc6TGljZW5zZTA=" }, "allow_forking": true, "is_template": false, "web_commit_signoff_required": false, "has_pull_requests": true, "pull_request_creation_policy": "all", "topics": [], "visibility": "public", "forks": 0, "open_issues": 0, "watchers": 0, "default_branch": "main" } }, "base": { "label": "NVIDIA:main", "ref": "main", "sha": "809f01acdf5c12714b073acf88a141fc6751bda9", "user": { "login": "NVIDIA", "id": 1728152, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE3MjgxNTI=", "avatar_url": "https://avatars.githubusercontent.com/u/1728152?v=4", "gravatar_id": "", "url": "https://api.github.com/users/NVIDIA", "html_url": "https://github.com/NVIDIA", "followers_url": "https://api.github.com/users/NVIDIA/followers", "following_url": "https://api.github.com/users/NVIDIA/following{/other_user}", "gists_url": "https://api.github.com/users/NVIDIA/gists{/gist_id}", "starred_url": "https://api.github.com/users/NVIDIA/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/NVIDIA/subscriptions", "organizations_url": "https://api.github.com/users/NVIDIA/orgs", "repos_url": "https://api.github.com/users/NVIDIA/repos", "events_url": "https://api.github.com/users/NVIDIA/events{/privacy}", "received_events_url": "https://api.github.com/users/NVIDIA/received_events", "type": "Organization", "user_view_type": "public", "site_admin": false }, "repo": { "id": 296416761, "node_id": "MDEwOlJlcG9zaXRvcnkyOTY0MTY3NjE=", "name": "cccl", "full_name": "NVIDIA/cccl", "private": false, "owner": { "login": "NVIDIA", "id": 1728152, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE3MjgxNTI=", "avatar_url": "https://avatars.githubusercontent.com/u/1728152?v=4", "gravatar_id": "", "url": "https://api.github.com/users/NVIDIA", "html_url": "https://github.com/NVIDIA", "followers_url": "https://api.github.com/users/NVIDIA/followers", "following_url": "https://api.github.com/users/NVIDIA/following{/other_user}", "gists_url": "https://api.github.com/users/NVIDIA/gists{/gist_id}", "starred_url": "https://api.github.com/users/NVIDIA/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/NVIDIA/subscriptions", "organizations_url": "https://api.github.com/users/NVIDIA/orgs", "repos_url": "https://api.github.com/users/NVIDIA/repos", "events_url": "https://api.github.com/users/NVIDIA/events{/privacy}", "received_events_url": "https://api.github.com/users/NVIDIA/received_events", "type": "Organization", "user_view_type": "public", "site_admin": false }, "html_url": "https://github.com/NVIDIA/cccl", "description": "CUDA Core Compute Libraries", "fork": false, "url": "https://api.github.com/repos/NVIDIA/cccl", "forks_url": "https://api.github.com/repos/NVIDIA/cccl/forks", "keys_url": "https://api.github.com/repos/NVIDIA/cccl/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/NVIDIA/cccl/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/NVIDIA/cccl/teams", "hooks_url": "https://api.github.com/repos/NVIDIA/cccl/hooks", "issue_events_url": "https://api.github.com/repos/NVIDIA/cccl/issues/events{/number}", "events_url": "https://api.github.com/repos/NVIDIA/cccl/events", "assignees_url": "https://api.github.com/repos/NVIDIA/cccl/assignees{/user}", "branches_url": "https://api.github.com/repos/NVIDIA/cccl/branches{/branch}", "tags_url": "https://api.github.com/repos/NVIDIA/cccl/tags", "blobs_url": "https://api.github.com/repos/NVIDIA/cccl/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/NVIDIA/cccl/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/NVIDIA/cccl/git/refs{/sha}", "trees_url": "https://api.github.com/repos/NVIDIA/cccl/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/NVIDIA/cccl/statuses/{sha}", "languages_url": "https://api.github.com/repos/NVIDIA/cccl/languages", "stargazers_url": "https://api.github.com/repos/NVIDIA/cccl/stargazers", "contributors_url": "https://api.github.com/repos/NVIDIA/cccl/contributors", "subscribers_url": "https://api.github.com/repos/NVIDIA/cccl/subscribers", "subscription_url": "https://api.github.com/repos/NVIDIA/cccl/subscription", "commits_url": "https://api.github.com/repos/NVIDIA/cccl/commits{/sha}", "git_commits_url": "https://api.github.com/repos/NVIDIA/cccl/git/commits{/sha}", "comments_url": "https://api.github.com/repos/NVIDIA/cccl/comments{/number}", "issue_comment_url": "https://api.github.com/repos/NVIDIA/cccl/issues/comments{/number}", "contents_url": "https://api.github.com/repos/NVIDIA/cccl/contents/{+path}", "compare_url": "https://api.github.com/repos/NVIDIA/cccl/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/NVIDIA/cccl/merges", "archive_url": "https://api.github.com/repos/NVIDIA/cccl/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/NVIDIA/cccl/downloads", "issues_url": "https://api.github.com/repos/NVIDIA/cccl/issues{/number}", "pulls_url": "https://api.github.com/repos/NVIDIA/cccl/pulls{/number}", "milestones_url": "https://api.github.com/repos/NVIDIA/cccl/milestones{/number}", "notifications_url": "https://api.github.com/repos/NVIDIA/cccl/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/NVIDIA/cccl/labels{/name}", "releases_url": "https://api.github.com/repos/NVIDIA/cccl/releases{/id}", "deployments_url": "https://api.github.com/repos/NVIDIA/cccl/deployments", "created_at": "2020-09-17T18:58:41Z", "updated_at": "2026-05-15T21:01:43Z", "pushed_at": "2026-05-16T00:10:52Z", "git_url": "git://github.com/NVIDIA/cccl.git", "ssh_url": "git@github.com:NVIDIA/cccl.git", "clone_url": "https://github.com/NVIDIA/cccl.git", "svn_url": "https://github.com/NVIDIA/cccl", "homepage": "https://nvidia.github.io/cccl/", "size": 128972, "stargazers_count": 2331, "watchers_count": 2331, "language": "C++", "has_issues": true, "has_projects": true, "has_downloads": true, "has_wiki": true, "has_pages": true, "has_discussions": true, "forks_count": 390, "mirror_url": null, "archived": false, "disabled": false, "open_issues_count": 1519, "license": { "key": "other", "name": "Other", "spdx_id": "NOASSERTION", "url": null, "node_id": "MDc6TGljZW5zZTA=" }, "allow_forking": true, "is_template": false, "web_commit_signoff_required": false, "has_pull_requests": true, "pull_request_creation_policy": "all", "topics": [ "accelerated-computing", "cpp", "cpp-programming", "cuda", "cuda-cpp", "cuda-kernels", "cuda-library", "cuda-programming", "gpu", "gpu-acceleration", "gpu-computing", "gpu-programming", "hpc", "modern-cpp", "nvidia", "nvidia-gpu", "parallel-algorithm", "parallel-computing", "parallel-programming" ], "visibility": "public", "forks": 390, "open_issues": 1519, "watchers": 2331, "default_branch": "main" } }, "_links": { "self": { "href": "https://api.github.com/repos/NVIDIA/cccl/pulls/7571" }, "html": { "href": "https://github.com/NVIDIA/cccl/pull/7571" }, "issue": { "href": "https://api.github.com/repos/NVIDIA/cccl/issues/7571" }, "comments": { "href": "https://api.github.com/repos/NVIDIA/cccl/issues/7571/comments" }, "review_comments": { "href": "https://api.github.com/repos/NVIDIA/cccl/pulls/7571/comments" }, "review_comment": { "href": "https://api.github.com/repos/NVIDIA/cccl/pulls/comments{/number}" }, "commits": { "href": "https://api.github.com/repos/NVIDIA/cccl/pulls/7571/commits" }, "statuses": { "href": "https://api.github.com/repos/NVIDIA/cccl/statuses/7ec67a53946e2352082ccb02ab2b9b34f9969c55" } }, "author_association": "CONTRIBUTOR", "auto_merge": null, "assignee": null, "active_lock_reason": null, "merged": true, "mergeable": null, "rebaseable": null, "mergeable_state": "unknown", "merged_by": { "login": "bernhardmgruber", "id": 1224051, "node_id": "MDQ6VXNlcjEyMjQwNTE=", "avatar_url": "https://avatars.githubusercontent.com/u/1224051?v=4", "gravatar_id": "", "url": "https://api.github.com/users/bernhardmgruber", "html_url": "https://github.com/bernhardmgruber", "followers_url": "https://api.github.com/users/bernhardmgruber/followers", "following_url": "https://api.github.com/users/bernhardmgruber/following{/other_user}", "gists_url": "https://api.github.com/users/bernhardmgruber/gists{/gist_id}", "starred_url": "https://api.github.com/users/bernhardmgruber/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/bernhardmgruber/subscriptions", "organizations_url": "https://api.github.com/users/bernhardmgruber/orgs", "repos_url": "https://api.github.com/users/bernhardmgruber/repos", "events_url": "https://api.github.com/users/bernhardmgruber/events{/privacy}", "received_events_url": "https://api.github.com/users/bernhardmgruber/received_events", "type": "User", "user_view_type": "public", "site_admin": false }, "comments": 5, "review_comments": 4, "maintainer_can_modify": false, "commits": 2, "additions": 6, "deletions": 1, "changed_files": 1 }, "files": [ { "filename": "cub/cub/agent/agent_reduce.cuh", "status": "unknown" } ], "files_source": "diff-parse", "source_page": "sources/prs/cccl-cub/PR-7571.md" }