Skip to content

Prepare testing in tile mode for libcu++#8505

Open
miscco wants to merge 2 commits intoNVIDIA:mainfrom
miscco:basic_tile_support
Open

Prepare testing in tile mode for libcu++#8505
miscco wants to merge 2 commits intoNVIDIA:mainfrom
miscco:basic_tile_support

Conversation

@miscco
Copy link
Copy Markdown
Contributor

@miscco miscco commented Apr 17, 2026

tile programing has been anounced and we want to be ready for the user to use libcu++ features in tile mode

This adds basic functionality to build libcu++ in tile mode once the next CTK is actually released.

Note that there are a number of additional changes needed to make some features work and that some features are not going to be suppported in the future

@miscco miscco requested review from a team as code owners April 17, 2026 16:49
@miscco miscco requested a review from bernhardmgruber April 17, 2026 16:49
@github-project-automation github-project-automation bot moved this to Todo in CCCL Apr 17, 2026
@cccl-authenticator-app cccl-authenticator-app bot moved this from Todo to In Review in CCCL Apr 17, 2026
@miscco miscco force-pushed the basic_tile_support branch 2 times, most recently from 2a00de5 to 59e21d4 Compare April 17, 2026 17:05
# define _CCCL_CUDA_COMPILATION() 0
#endif // ^^^ not compiling .cu file ^^^

#ifdef __CUDACC_TILE__
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#ifdef __CUDACC_TILE__
#if defined(__CUDACC_TILE__)

I think we always use defined, I don't even know why :D

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe there will be a lot of clang-tidy issues because that prefers ifdef when possible

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lol, okay

Comment on lines +31 to 42
# ifdef __CUDACC_TILE__
# define _CCCL_TILE __tile__
# else // ^^^ __CUDACC_TILE__ ^^^ / vvv !__CUDACC_TILE__ vvv
# define _CCCL_TILE
# endif // !__CUDACC_TILE__
#else // ^^^ _CCCL_CUDA_COMPILATION ^^^ / vvv !_CCCL_CUDA_COMPILATION vvv
# define _CCCL_HOST
# define _CCCL_DEVICE
# define _CCCL_HOST_DEVICE
# define _CCCL_TILE
#endif // !_CCCL_CUDA_COMPILATION

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# ifdef __CUDACC_TILE__
# define _CCCL_TILE __tile__
# else // ^^^ __CUDACC_TILE__ ^^^ / vvv !__CUDACC_TILE__ vvv
# define _CCCL_TILE
# endif // !__CUDACC_TILE__
#else // ^^^ _CCCL_CUDA_COMPILATION ^^^ / vvv !_CCCL_CUDA_COMPILATION vvv
# define _CCCL_HOST
# define _CCCL_DEVICE
# define _CCCL_HOST_DEVICE
# define _CCCL_TILE
#endif // !_CCCL_CUDA_COMPILATION
#else // ^^^ _CCCL_CUDA_COMPILATION ^^^ / vvv !_CCCL_CUDA_COMPILATION vvv
# define _CCCL_HOST
# define _CCCL_DEVICE
# define _CCCL_HOST_DEVICE
#endif // !_CCCL_CUDA_COMPILATION
#if _CCCL_TILE_COMPILATION()
# define _CCCL_TILE __tile__
#else // ^^^ _CCCL_TILE_COMPILATION() ^^^ / vvv !_CCCL_TILE_COMPILATION() vvv
# define _CCCL_TILE
#endif // ^^^ !_CCCL_TILE_COMPILATION() ^^^

Comment thread CMakeLists.txt Outdated
Comment on lines +67 to +72
if (CMAKE_CUDA_COMPILER_VERSION VERSION_LESS_EQUAL 13.2)
message(
FATAL_ERROR
"tile programs are not supported in NVCC until after 13.2"
)
endif()
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should check that the CUDA compiler is nvcc

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also, I would suggest the opposite condition VERSION_GREATER_EQUAL 13.3

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but we do not know the next version of NVCC

@github-actions
Copy link
Copy Markdown
Contributor

😬 CI Workflow Results

🟥 Finished in 3h 25m: Pass: 97%/478 | Total: 15d 04h | Max: 3h 25m | Hits: 47%/521527

See results here.

@miscco miscco force-pushed the basic_tile_support branch from 59e21d4 to 7135d16 Compare April 20, 2026 07:29
miscco added 2 commits April 20, 2026 10:07
Many headers are not suitable for tile programming or rely on features that are not available in tile programs, e.g. our atomic types that require `asm`.

Disable those header tests that fail currently
@miscco miscco force-pushed the basic_tile_support branch from 7135d16 to cf6e804 Compare April 20, 2026 08:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

3 participants