[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).
This commit is contained in:
parent
caae29c4b9
commit
243f011577
@ -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`.
|
||||
|
||||
@ -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."),
|
||||
|
||||
@ -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\"",
|
||||
|
||||
@ -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,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user