[llvm] [flang][cuda][rt] Canonicalize block size values (PR #164321)
Valentin Clement バレンタイン クレメン via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 20 14:10:38 PDT 2025
https://github.com/clementval created https://github.com/llvm/llvm-project/pull/164321
Set block size x and y to 1024 if the given value is higher. Set block z to 64 if the given value is higher.
>From 0644ad28b0d6b48ded929db19e6985a17f5109ac Mon Sep 17 00:00:00 2001
From: Valentin Clement <clementval at gmail.com>
Date: Mon, 20 Oct 2025 14:08:01 -0700
Subject: [PATCH] [flang][cuda][rt] Canonicalize block size values
---
flang-rt/lib/cuda/kernel.cpp | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/flang-rt/lib/cuda/kernel.cpp b/flang-rt/lib/cuda/kernel.cpp
index e299a114ed7eb..c52d039ce1075 100644
--- a/flang-rt/lib/cuda/kernel.cpp
+++ b/flang-rt/lib/cuda/kernel.cpp
@@ -23,9 +23,9 @@ void RTDEF(CUFLaunchKernel)(const void *kernel, intptr_t gridX, intptr_t gridY,
gridDim.y = gridY;
gridDim.z = gridZ;
dim3 blockDim;
- blockDim.x = blockX;
- blockDim.y = blockY;
- blockDim.z = blockZ;
+ blockDim.x = blockX > 1024 ? 1024 : blockX;
+ blockDim.y = blockY > 1024 ? 1024 : blockY;
+ blockDim.z = blockZ > 64 ? 64 : blockZ;
unsigned nbNegGridDim{0};
if (gridX < 0) {
++nbNegGridDim;
@@ -88,9 +88,9 @@ void RTDEF(CUFLaunchClusterKernel)(const void *kernel, intptr_t clusterX,
config.gridDim.x = gridX;
config.gridDim.y = gridY;
config.gridDim.z = gridZ;
- config.blockDim.x = blockX;
- config.blockDim.y = blockY;
- config.blockDim.z = blockZ;
+ config.blockDim.x = blockX > 1024 ? 1024 : blockX;
+ config.blockDim.y = blockY > 1024 ? 1024 : blockY;
+ config.blockDim.z = blockZ > 64 ? 64 : blockZ;
unsigned nbNegGridDim{0};
if (gridX < 0) {
++nbNegGridDim;
@@ -165,9 +165,9 @@ void RTDEF(CUFLaunchCooperativeKernel)(const void *kernel, intptr_t gridX,
gridDim.y = gridY;
gridDim.z = gridZ;
dim3 blockDim;
- blockDim.x = blockX;
- blockDim.y = blockY;
- blockDim.z = blockZ;
+ blockDim.x = blockX > 1024 ? 1024 : blockX;
+ blockDim.y = blockY > 1024 ? 1024 : blockY;
+ blockDim.z = blockZ > 64 ? 64 : blockZ;
unsigned nbNegGridDim{0};
if (gridX < 0) {
++nbNegGridDim;
More information about the llvm-commits
mailing list