[Mlir-commits] [mlir] [mlir][xegpu] Improve XeGPU op verification logic for SIMT flavor and update tests. (PR #127920)

Charitha Saumya llvmlistbot at llvm.org
Fri Feb 21 10:02:45 PST 2025


================
@@ -276,14 +280,13 @@ LogicalResult TensorDescType::verify(
     if (scatterAttr) {
       // Validate subgroup mapping rules for scattered tensors.
       // A work-item's slice of the tensor with shape [sg_size] or
-      // [sg_size, chunk_size] will be [1] or [1, chunks_size] respectively,
-      // the mapping should reflect that.
+      // [sg_size, chunk_size] will be [1] or [1, 32/element_ty_bit_width]
+      // respectively, the mapping should reflect that.
       if (wiData[0] != 1)
         return emitError()
                << "cannot map over non-contiguous scattered row elements";
 
-      unsigned chunkSize = scatterAttr.getChunkSize().getInt();
-      if (wiData[1] != chunkSize)
+      if (wiData[1] != (32 / elementType.getIntOrFloatBitWidth()))
----------------
charithaintc wrote:

> So, I'm not sure what I'm missing. Shouldn't we verify both `chunk_size` vs `wi_data` and 32-bit alignment?

Yes you are right. I think we missed some of the checks. chunk_size should be a multiple of packing factor (32/dtype_bit_width) and it should be equal to the second dim of the scatter tensor_desc shape. I have updated with appropriate checks. 


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


More information about the Mlir-commits mailing list