* [experimental] add a draft gemm_sp
* [3rdparty] bump cutlass to v3.9.3
* [lint] run format.sh
* [chore] rebase
* [chore] use abs path
* [gemm_sp] add metadata layout
* [ci] add more example
* [lint] run format.sh
* [chore] polish
* [chore] move gemm_sp to experimental
* [chore] polish
* [lint] run format.sh
* [Enhancement] Improve bulk copy handling and update GEMM sparse tensor test
* Added a warning log for unsupported non-swizzled global layouts in the bulk copy operation, ensuring fallback to normal copy.
* Refactored the GEMM sparse tensor test by removing unnecessary imports and simplifying the kernel compilation process.
* Updated the test to directly call the `run_gemm_sp` function, enhancing clarity and functionality.
* Implement Test
* [Enhancement] Update GEMM SP and SM89 templates for improved functionality
* Refactored GEMM SP computation to enhance warp partitioning logic, ensuring compatibility with Hopper architecture.
* Updated layout inference to support new WGMMA conditions and improved error messaging for unsupported targets.
* Modified SM89 templates to utilize new MMA atom structures, enhancing performance and compatibility with fp8 types.
* Added conditional inclusion for GEMM SP header based on CUDA architecture version.
* lint fix
* [gemm_sp] support more layout and data types
* Enhancement: sync T.gemm_sp's layout inference with T.gemm
* Enhancement: support more block_k in compress util
* [Enhancement] enable block_k=64
* [Lint] run format.sh
* [Enhancement] compressor support more dtype
* Enhancement: enable block_K=32
* [Lint] format.sh
* [Fixbug] fix shape
* Refactor: sync gemm
* [Enhancement] enable transpose
* [Enhancement] enable fp8_e4m3
* [Enhancement] enable int8
* [Lint] run format.sh
* [Benchmark] add gemm_sp benchmark
* [Example] fix 256 threads hang
* [CI] fix ci
* [Chore] resolve gemini feedback
* [Benchmark] increase search space
* [Lint] format
* [CI] skip sparse tensor core related tests as only sm90 is supported
* [CI] pass local run
* Update gemm_sm89.h
* lint fix
* lint fix
* [Enhancement] Add support for sparse GEMM and initialize CUDA architecture flags
- Introduced a new boolean flag `enable_sparse_gemm_` to control the inclusion of sparse GEMM functionality in CUDA code generation.
- Updated the `Finish` method to conditionally include the sparse GEMM header based on the new flag.
- Implemented logic in `VisitStmt_` to enable sparse GEMM when the corresponding external call is detected.
- Added a function to initialize the `TORCH_CUDA_ARCH_LIST` environment variable based on the target compute version, enhancing compatibility with PyTorch.
- Refactored the initialization function into the appropriate module and ensured it is called in the sparse utilities module.
* Update test_compress_utils.py
---------
Co-authored-by: LeiWang1999 <leiwang1999@outlook.com>
Co-authored-by: Lei Wang <34334180+LeiWang1999@users.noreply.github.com>
- Added a line break in `quickstart.py` for better readability.
- Simplified the JIT kernel compilation in `quickstart.py` by removing the unused execution backend option.
- Modified `example_elementwise_add.py` to disable cache for `tilelang` and optimized the element-wise addition kernel by utilizing shared memory for input tensors, improving performance.
- Updated default values for matrix dimensions and block sizes in the argument parser to enhance usability.
* [Example] Update kernel compilation in examples to use @tilelang.jit
- Refactored multiple examples to eliminate the use of `tilelang.compile` for kernel creation, directly invoking the functions instead.
- Added `@tilelang.jit` decorators with appropriate output indices to enhance performance and maintainability.
- Improved code clarity by simplifying the kernel invocation process across various examples, ensuring consistency in how kernels are defined and executed.
* format
* Update example_tilelang_sparse_gqa_decode_varlen_indice.py
* Update example_dequant_gemm_fine_grained.py
* Update example_gemm_autotune.py
---------
Co-authored-by: Lei Wang <34334180+LeiWang1999@users.noreply.github.com>
* [Enhancement] Add commit ID to versioning and improve logging initialization
* Updated `get_tilelang_version` to include an optional commit ID in the version string.
* Enhanced the `TileLangBuilPydCommand` to write the version with commit ID to the VERSION file during the build process.
* Introduced a new function `get_git_commit_id` in `version.py` to retrieve the current git commit hash.
* Refactored logger initialization in `autotuner/__init__.py` to ensure handlers are set up only once, improving performance and clarity.
* Minor fixes in `flatten_buffer.cc` and `kernel_cache.py` for better handling of versioning and logging.
* [Refactor] Enhance AutoTuner and JITKernel for improved performance and caching
* Refactored the AutoTuner class to include new methods for setting compilation and profiling arguments, enhancing configurability.
* Introduced caching mechanisms for tuning results, allowing for faster retrieval of previously computed configurations.
* Updated JITKernel to store tuning results, including latency and configuration details, improving the kernel's performance tracking.
* Added new methods for generating cache keys and saving/loading results to/from disk, streamlining the tuning process.
* Enhanced the overall structure and readability of the autotuning logic, ensuring better maintainability and clarity.
* Minor adjustments in related modules to support the new caching and profiling features.
* [Refactor] Clean up code formatting and improve readability in AutoTuner and related modules
* Consolidated import statements and removed unnecessary line breaks for better readability.
* Standardized function argument formatting across the AutoTuner and CompileArgs classes.
* Enhanced consistency in the use of whitespace and indentation throughout the codebase.
* Minor adjustments in the Profiler and JITKernel classes to improve clarity and maintainability.
* Ensured that all changes adhere to the project's coding style guidelines.
* [Refactor] Remove redundant type hints in AutoTuner modules
* Simplified import statements in `__init__.py` and `param.py` by removing unnecessary duplicate type hints for `Any`.
* Improved code readability and maintainability by streamlining type imports across the AutoTuner module.
* [Refactor] Update AutoTuner configuration for improved profiling and target detection
* Enhanced the AutoTuner configuration across multiple examples by adding `set_profile_args` to better manage profiling settings.
* Standardized the use of `target="auto"` in compile arguments to ensure automatic target detection.
* Removed redundant target specifications in certain instances to streamline the configuration process.
* Improved overall clarity and maintainability of the autotuning logic in various example scripts.
* [Refactor] Simplify code formatting and improve readability in example scripts
* Consolidated function argument formatting in `benchmark_mla_decode_amd_tilelang.py`, `example_elementwise_add.py`, and `performance.py` for better clarity.
* Removed unnecessary line breaks and standardized argument placement across multiple files.
* Enhanced overall code readability and maintainability in autotuning examples and performance scripts.
* [Refactor] Update JIT decorator usage across multiple files
* Removed redundant parameters from the JIT decorator in various benchmark and example scripts, simplifying the code.
* Standardized the import of the JIT decorator from `tilelang`, enhancing consistency across the codebase.
* Improved overall readability and maintainability by consolidating import statements and cleaning up function definitions.
* [Refactor] Standardize JIT decorator formatting across benchmark and example scripts
* Simplified the formatting of the JIT decorator in multiple files by removing unnecessary line breaks.
* Enhanced code readability and consistency in the usage of the JIT decorator across benchmark and example scripts.
* Improved overall maintainability by ensuring uniformity in function definitions and decorator usage.