[Mlir-commits] [mlir] [MLIR][AMDGPU] Bump to COV6 (PR #133849)
Shilei Tian
llvmlistbot at llvm.org
Mon Mar 31 20:31:17 PDT 2025
https://github.com/shiltian created https://github.com/llvm/llvm-project/pull/133849
None
>From 6bae40c63eb9a02a226b54f4046fe54532ab1f10 Mon Sep 17 00:00:00 2001
From: Shilei Tian <i at tianshilei.me>
Date: Mon, 31 Mar 2025 23:28:40 -0400
Subject: [PATCH] [MLIR][AMDGPU] Bump to COV6
---
mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td | 6 +++---
mlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp | 4 ++--
mlir/lib/Target/LLVM/ROCDL/Target.cpp | 2 +-
mlir/test/Dialect/LLVMIR/rocdl.mlir | 7 +++++--
4 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td b/mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
index 8945466f5ef5b..900155c274b4d 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
@@ -680,7 +680,7 @@ def ROCDL_V2BF16Type : FixedVectorOfLengthAndType<[2], [BF16]>,
BuildableType<"::mlir::VectorType::get("
"{2},$_builder.getBF16Type())">;
-// TODO: The word and byte selectors are immarg in LLVM
+// TODO: The word and byte selectors are immarg in LLVM
// update to be attributes in MLIR
//===---------------------------------------------------------------------===//
// 16-bit float intrinsics
@@ -1129,7 +1129,7 @@ def ROCDL_TargetAttr :
StringRefParameter<"Target chip features.", "\"\"">:$features,
// Also update the default builder below and rocdl-attach-target in
// Dialect/GPU/Transforms/Passes.td .
- StringRefParameter<"ABI version.", "\"500\"">:$abi,
+ StringRefParameter<"ABI version.", "\"600\"">:$abi,
OptionalParameter<"DictionaryAttr", "Target specific flags.">:$flags,
OptionalParameter<"ArrayAttr", "Files to link to the LLVM module.">:$link
);
@@ -1141,7 +1141,7 @@ def ROCDL_TargetAttr :
CArg<"StringRef", "\"amdgcn-amd-amdhsa\"">:$triple,
CArg<"StringRef", "\"gfx900\"">:$chip,
CArg<"StringRef", "\"\"">:$features,
- CArg<"StringRef", "\"500\"">:$abiVersion,
+ CArg<"StringRef", "\"600\"">:$abiVersion,
CArg<"DictionaryAttr", "nullptr">:$targetFlags,
CArg<"ArrayAttr", "nullptr">:$linkFiles), [{
return Base::get($_ctxt, optLevel, triple, chip, features, abiVersion,
diff --git a/mlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp b/mlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp
index 0c9c61fad1363..9671afd52fa77 100644
--- a/mlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp
+++ b/mlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp
@@ -234,8 +234,8 @@ ROCDLTargetAttr::verify(function_ref<InFlightDiagnostic()> emitError,
emitError() << "The target chip cannot be empty.";
return failure();
}
- if (abiVersion != "400" && abiVersion != "500") {
- emitError() << "Invalid ABI version, it must be either `400` or `500`.";
+ if (abiVersion != "400" && abiVersion != "500" && abiVersion != "600") {
+ emitError() << "Invalid ABI version, it must be `400`, `500` or '600'.";
return failure();
}
if (files && !llvm::all_of(files, [](::mlir::Attribute attr) {
diff --git a/mlir/lib/Target/LLVM/ROCDL/Target.cpp b/mlir/lib/Target/LLVM/ROCDL/Target.cpp
index cd7a67e58d612..e7168cb32fc16 100644
--- a/mlir/lib/Target/LLVM/ROCDL/Target.cpp
+++ b/mlir/lib/Target/LLVM/ROCDL/Target.cpp
@@ -248,7 +248,7 @@ void SerializeGPUModuleBase::addControlVariables(
controlVariable->setUnnamedAddr(llvm::GlobalValue::UnnamedAddr::Local);
};
- int abi = 500;
+ int abi = 600;
abiVer.getAsInteger(0, abi);
module.addModuleFlag(llvm::Module::Error, "amdhsa_code_object_version", abi);
// Return if no device libraries are required.
diff --git a/mlir/test/Dialect/LLVMIR/rocdl.mlir b/mlir/test/Dialect/LLVMIR/rocdl.mlir
index cce2c0aee62f3..828fd58544597 100644
--- a/mlir/test/Dialect/LLVMIR/rocdl.mlir
+++ b/mlir/test/Dialect/LLVMIR/rocdl.mlir
@@ -765,8 +765,8 @@ llvm.func @rocdl_8bit_floats(%source: i32, %source_half: f16, %source_bfloat: bf
// CHECK: rocdl.cvt.f32.fp8
// CHECK: rocdl.cvt.scalef32.f32.bf8
// CHECK: rocdl.cvt.scalef32.f32.fp8
-// CHECK: rocdl.cvt.scalef32.pk.f16.bf8
-// CHECK: rocdl.cvt.scalef32.pk.f16.fp8
+// CHECK: rocdl.cvt.scalef32.pk.f16.bf8
+// CHECK: rocdl.cvt.scalef32.pk.f16.fp8
// CHECK: rocdl.cvt.scalef32.pk.bf16.bf8
// CHECK: rocdl.cvt.scalef32.pk.bf16.fp8
// CHECK: rocdl.cvt.scalef32.f16.fp8
@@ -900,3 +900,6 @@ gpu.module @module_1 [#rocdl.target<O = 1, chip = "gfx900", abi = "500", link =
gpu.module @module_2 [#rocdl.target<chip = "gfx900">, #rocdl.target<chip = "gfx90a">] {
}
+
+gpu.module @module_3 [#rocdl.target<O = 1, chip = "gfx900", abi = "600", link = ["my_device_lib.bc"], flags = {fast, daz, unsafe_math}>] {
+}
More information about the Mlir-commits
mailing list