[Mlir-commits] [mlir] Reimplementing target description concept using DLTI attribute (PR #92138)

Niranjan Hasabnis llvmlistbot at llvm.org
Thu May 30 00:02:18 PDT 2024


================
@@ -194,6 +194,162 @@ def DataLayoutSpecInterface : AttrInterface<"DataLayoutSpecInterface"> {
   }];
 }
 
+def TargetDeviceDescSpecInterface : AttrInterface<"TargetDeviceDescSpecInterface"> {
+  let cppNamespace = "::mlir";
+
+  let description = [{
+    Attribute interface describing a target device description specification.
+
+    A target device description specification is a list of device properties (key)
+    and their values for a specific device. The device is identified using "device_id"
+    (as a key and ui32 value) and "device_type" key which must have a string value.
+    Both "device_id" and "device_type" are mandatory keys. As an example, L1 cache
+    size could be a device property, and its value would be a device specific size.
+
+    A target device description specification is attached to a module as a module level
+    attribute.
----------------
nhasabni wrote:

Can you elaborate on this scenario a bit more? Our thought process currently is that the system desc/device desc would contain properties of the underlying hardware (and hence would suffice to be at the module level). Current implementation is not supporting the idea of cost model (or in other words, the heuristics used by compiler passes). Given that which types of properties would be specialized at a function level?

https://github.com/llvm/llvm-project/pull/92138


More information about the Mlir-commits mailing list