• Lei Wang's avatar
    [Layout] Enhance Free Layout Inference (#1375) · 6654064d
    Lei Wang authored
    * [Refactor] Update condition for benchmarking in example_gemv.py and simplify cached library path handling in sparse.py
    
    * [Enhancement] Extend support for float8 data types in GEMM operations
    
    - Updated GEMM operations to recognize additional float8 data types: `float8_e4m3fn` and `float8_e5m2fnuz`.
    - Refactored condition checks in `checkWgmma` methods to simplify float8 type handling.
    - Adjusted test cases to ensure compatibility with the new float8 types in tile language examples.
    
    * lint fix
    
    * [Enhancement] Add injective layout detection and exception handling
    
    - Introduced `DetectInjective` method in `FragmentNode` to check for injective layouts.
    - Added `LoopLayoutInjectiveException` to handle errors related to non-injective layouts.
    - Updated `InferLayout` methods in `ParallelOpNode` to utilize injective checks and log relevant information.
    - Refactored layout inference queue management to use `std::deque` for improved performance and added prioritization logic for buffer layouts.
    
    * remove debug print
    
    * remove debug print
    
    * remove debug print
    
    * minor layout fix
    
    * fix for T.view
    
    * [Enhancement] Improve injective layout detection in FragmentNode
    
    - Updated the `DetectInjective` method to handle symbolic dimensions more effectively by introducing a mechanism to collect symbolic shapes and adjust the detection level accordingly.
    - Added logging for cases where the layout detection falls back to NoCheck due to symbolic dimensions.
    - Minor update to the test file to include the tilelang testing module.
    
    * [Refactor] Simplify layout inference for bulk copy operations
    
    - Removed unnecessary conditions for bulk load/store operations in the layout inference logic.
    - Streamlined the handling of layout application for bulk copy instances to enhance clarity and maintainability.
    
    * remove debug print
    
    * [Enhancement] Introduce layout-related exceptions and improve error handling
    
    - Added `LayoutConflictException` and `LoopLayoutInjectiveException` classes for better exception management in layout operations.
    - Updated `InferLayout` method in `ParallelOpNode` to throw `LoopLayoutInjectiveException` with detailed error information when injective layout checks fail.
    - Removed redundant exception class definitions from `parallel.h` to streamline code organization.
    6654064d
layout.cc 30.3 KB