[Mlir-commits] [mlir] 243f011 - [mlir][GPU|NVVM] Update the default SM to 7.5 (#177469)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Thu Jan 29 09:44:09 PST 2026
Author: Justin Fargnoli
Date: 2026-01-29T17:44:04Z
New Revision: 243f011577193c99358ccc4142b296d4fa80ea11
URL: https://github.com/llvm/llvm-project/commit/243f011577193c99358ccc4142b296d4fa80ea11
DIFF: https://github.com/llvm/llvm-project/commit/243f011577193c99358ccc4142b296d4fa80ea11.diff
LOG: [mlir][GPU|NVVM] Update the default SM to 7.5 (#177469)
Update MLIR's default SM to `sm_75`. This matches the behavior of
offline compilation tools in the CUDA Toolkit (`nvcc`, `ptxas`, ...) and
follows suit with 9fc5fd0ad689eed94f65b1d6d10f9c5642935e68.
Additionally, `sm_75` is the oldest GPU variant compatible with the
widest range of recent major CUDA Toolkit versions (11/12/13).
Added:
Modified:
mlir/docs/ReleaseNotes.md
mlir/include/mlir/Dialect/GPU/Pipelines/Passes.h
mlir/include/mlir/Dialect/GPU/Transforms/Passes.td
mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
Removed:
################################################################################
diff --git a/mlir/docs/ReleaseNotes.md b/mlir/docs/ReleaseNotes.md
index ab5e9adaa68bc..16b93c8909670 100644
--- a/mlir/docs/ReleaseNotes.md
+++ b/mlir/docs/ReleaseNotes.md
@@ -8,6 +8,15 @@ specifically, it is a snapshot of the MLIR development at the time of the releas
[TOC]
+## LLVM 21
+
+### GPU/NVVM Changes
+
+- The default NVVM target architecture has been changed from `sm_50` to `sm_75`.
+ `sm_75` is the oldest GPU variant compatible with the widest range of recent
+ major CUDA Toolkit versions (11/12/13). This affects the `NVVMTargetAttr`,
+ `GpuNVVMAttachTarget` pass, and the `gpu-lower-to-nvvm-pipeline`.
+
## LLVM 20
All the MLIR runners other than `mlir-cpu-runner` have been removed, as their functionality has been merged into it, and it has been renamed to `mlir-runner`.
diff --git a/mlir/include/mlir/Dialect/GPU/Pipelines/Passes.h b/mlir/include/mlir/Dialect/GPU/Pipelines/Passes.h
index 34c85de3418ec..4084d3d9ff329 100644
--- a/mlir/include/mlir/Dialect/GPU/Pipelines/Passes.h
+++ b/mlir/include/mlir/Dialect/GPU/Pipelines/Passes.h
@@ -28,7 +28,7 @@ struct GPUToNVVMPipelineOptions
llvm::cl::init("nvptx64-nvidia-cuda")};
PassOptions::Option<std::string> cubinChip{
*this, "cubin-chip", llvm::cl::desc("Chip to use to serialize to cubin."),
- llvm::cl::init("sm_50")};
+ llvm::cl::init("sm_75")};
PassOptions::Option<std::string> cubinFeatures{
*this, "cubin-features",
llvm::cl::desc("Features to use to serialize to cubin."),
diff --git a/mlir/include/mlir/Dialect/GPU/Transforms/Passes.td b/mlir/include/mlir/Dialect/GPU/Transforms/Passes.td
index 885d14cf645b1..f3c2b9ad830fb 100644
--- a/mlir/include/mlir/Dialect/GPU/Transforms/Passes.td
+++ b/mlir/include/mlir/Dialect/GPU/Transforms/Passes.td
@@ -143,7 +143,7 @@ def GpuNVVMAttachTarget: Pass<"nvvm-attach-target", ""> {
/*default=*/ "\"nvptx64-nvidia-cuda\"",
"Target triple.">,
Option<"chip", "chip", "std::string",
- /*default=*/"\"sm_50\"",
+ /*default=*/"\"sm_75\"",
"Target chip.">,
Option<"features", "features", "std::string",
/*default=*/"\"+ptx60\"",
diff --git a/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td b/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
index 37f11150ddb4a..5cd4a1af1f881 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
@@ -6465,7 +6465,7 @@ def NVVM_TargetAttr : NVVM_Attr<"NVVMTarget", "target",
let parameters = (ins
DefaultValuedParameter<"int", "2", "Optimization level to apply.">:$O,
StringRefParameter<"Target triple.", "\"nvptx64-nvidia-cuda\"">:$triple,
- StringRefParameter<"Target chip.", "\"sm_50\"">:$chip,
+ StringRefParameter<"Target chip.", "\"sm_75\"">:$chip,
StringRefParameter<"Target chip features.", "\"+ptx60\"">:$features,
OptionalParameter<"DictionaryAttr", "Target specific flags.">:$flags,
OptionalParameter<"ArrayAttr", "Files to link to the LLVM module.">:$link,
@@ -6477,7 +6477,7 @@ def NVVM_TargetAttr : NVVM_Attr<"NVVMTarget", "target",
let builders = [
AttrBuilder<(ins CArg<"int", "2">:$optLevel,
CArg<"StringRef", "\"nvptx64-nvidia-cuda\"">:$triple,
- CArg<"StringRef", "\"sm_50\"">:$chip,
+ CArg<"StringRef", "\"sm_75\"">:$chip,
CArg<"StringRef", "\"+ptx60\"">:$features,
CArg<"DictionaryAttr", "nullptr">:$targetFlags,
CArg<"ArrayAttr", "nullptr">:$linkFiles,
More information about the Mlir-commits
mailing list