Skip to content

Fix GPU introspection constants for architecture 1070 #201

Description

@csadorf

Summary

cpp/include/nvforest/detail/gpu_introspection.hpp does not classify architecture 1070 as supporting 1,024 resident threads per SM. It therefore falls through to:

MAX_THREADS_PER_SM = 2048

Impact

MIN_BLOCKS_PER_SM is derived from MAX_THREADS_PER_SM / MAX_THREADS_PER_BLOCK. For architecture 1070, this produces 8 instead of 4.

This value is used by infer_kernel in its __launch_bounds__ declaration. As a result, downstream cuML source builds on architecture 1070 require a local patch adding __CUDA_ARCH__ == 1070 to the 1,024-thread branch.

Expected behavior

Architecture 1070 uses:

  • MAX_THREADS_PER_SM = 1024
  • MIN_BLOCKS_PER_SM = 4

Relevant code

  • cpp/include/nvforest/detail/gpu_introspection.hpp
  • cpp/include/nvforest/detail/infer_kernel/gpu.cuh

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions