- 18 Nov, 2025 2 commits
-
-
Chaofan Lin authored
* [BugFix] Adding extra parameters into autotune hashkey * lint * None check * check serializable
-
Yichen Yan authored
-
- 17 Nov, 2025 5 commits
-
-
Yu Cheng authored
-
Tong WU authored
[Enhancement] Keep max score attention across blocks in FlashAttention for better numerical stablity (#1269) * Implement max score retention across blocks in FlashAttention for improved stability * fix manual pipeline parameters * Update examples/flash_attention/example_gqa_fwd_varlen.py Co-authored-by:
coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix typo * more * fix a previous typo --------- Co-authored-by:
coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
-
Chaofan Lin authored
* [Docs] Improve installation guide * address comments
-
Varuna Jayasiri authored
[EXAMPLE] In the flash attention example keep the max of all blocks seen in scores_max numerical stability (#1148) * Keep the max of all blocks seen in scores_max for stability * ruff formatting
-
Kuris authored
* add typing stub for tir.ir * remove idents * minor update * [Refactor] add numpy conversion for dtype * fix lint error * remove unused np.float_ in dtype conversion * fix type in np.int_ * fix typo * minor fix * remove debug files
-
- 16 Nov, 2025 2 commits
-
-
Zhengju Tang authored
* [Example] Add page table for gqa decode * [Example] Page table for varlen decoding * [Lint] * [Refactor] Remove redundant code * [Lint] * [Lint] * [Lint]
-
Kevinzz authored
* fix nsa bwd and atomic * [Lint] * [BugFix] - New implementation for atomicMax and atomicMin using atomicCAS - PTX version atomicAdd for single 16-byte data - Modify the test cases * [Lint] --------- Co-authored-by:tzj-fxz <tzjfxz@gmail.com>
-
- 15 Nov, 2025 3 commits
-
-
Jiaxing Ding authored
-
Gabriel Wu authored
* [fix] NVRTC execution backend * [fmt] run pre-commit * [fix] coderabbit reviews * [test] add cuda-python to test dep * [fix] coderabbit reviews * [fix] CUDA 13 compatibility * [fix] sm90 * [fix] CUDA 13 compatibility * [fix] pre-commit * [fix] always use cuda::std::__atomic_ref_impl * [fix] restore to external API * Revert "[fix] restore to external API" This reverts commit 49bd875638fb631d270015f408991d38fd1e9a5d. * [fmt] use space instead tabs for py codegen * [fix] im2col API * [fix] revert atomic.h * [fix] dynamic shape * [refactor] extract common utils * [feat] support L2 persistent map * [fix] l2 persistent map * [fix] pre-commit * [fix] restore _TYPE_MAP * [fix] pre-commit * [fix] avoid duplicate TMA descs * [docs] add docstring * [fix] coderabbit * [fix] coderabbit * [fix] coderabbit * [fix] coderabbit
-
Tong WU authored
[BugFix] Refactor attention kernel to handle OOB positions by filling with `-inf` instead of clearing accumulators. (#1222) * Refactor attention kernel to handle OOB positions by filling with `-inf` instead of clearing accumulators. * lint * pre-commit * Update imports in flash attention test file to use new backward and forward examples for better clarity and consistency.
-
- 14 Nov, 2025 2 commits
-
-
Zhengju Tang authored
* [BugFix] Add autotune and exp2 for GDN kernel * [Lint] * [Lint]
-
Kuris authored
* add typing stub for tir.ir * remove idents * minor update * [Language] Add missing while statement * add test
-
- 13 Nov, 2025 6 commits
-
-
Lei Wang authored
* [Refactor] Update buffer handling in copy and atomic operations * Refactored the `copy` and `atomic_add` functions to use element-wise minimum for defining copy extents, ensuring correct handling of overlapping regions. * Updated utility functions to create `BufferLoad` instances with explicit extents, improving memory management and clarity. * Removed unused imports from `atomic.py` and `copy.py` to streamline the codebase. * Adjusted logging in `copy.cc` to provide clearer warnings for fallback scenarios in bulk copy operations. * Remove obsolete .git_commit.txt file * Add unit test for dynamic copy extent handling in TileLang * Introduced a new test file `test_tilelang_issue_1237.py` to verify that the `T.copy` function correctly manages dynamic extents during primitive function building. * The test reproduces a specific issue related to dynamic slice lengths and static buffer sizes, ensuring robustness in the handling of such scenarios. * The test does not require execution of the kernel, as building the primitive function is sufficient to validate the fix. * lint fix * fix * Revert "fix" This reverts commit 828b4c1e4de76a7d11e4d4092927303fbbe00097. * Update TVM submodule and refactor atomic and copy functions * Updated the TVM submodule to a dirty state. * Refactored `atomic_add` and `copy` functions to pass extents explicitly to the `_to_region` helper, improving clarity and correctness in handling buffer regions. * Commented out the main execution call in the test example for `cast` and added a new function call to better demonstrate the example usage. * Enhance extent handling in atomic and copy functions * Introduced `legalize_pairwise_extents` utility to align and broadcast extent lists for `atomic_add` and `copy` functions, ensuring compatibility and correctness in buffer operations. * Updated both functions to utilize the new utility, improving clarity and robustness in handling dynamic and static extents. * Added comments to clarify the extent handling logic. * Enhance `legalize_pairwise_extents` function with early-exit rule * Added an early-exit condition to the `legalize_pairwise_extents` function to return original extents if the number of non-1 dimensions in both source and destination extents is equal, improving performance by avoiding unnecessary adjustments. * Updated the function's documentation to clarify the new behavior and maintain clarity in the extent handling logic. * lint fix
-
Lei Wang authored
* fix * Refactor tensor reshaping in fp8_lighting_indexer.py - Replaced the allocation of `s_reshaped` with a reshape operation to improve clarity and performance. - Updated the logic in the computation of `s_reshaped` to utilize the reshaped tensor, enhancing the overall functionality of the attention mechanism. * Refactor analyzer usage in Layout and Fragment reshaping - Consolidated analyzer logic in the `Reshape` methods of `LayoutNode` and `FragmentNode` to utilize a fallback analyzer, improving code clarity and preventing potential null dereference issues. - Updated variable binding and simplification calls to use the selected analyzer consistently, enhancing robustness in shape validation and index computation.
-
Chaofan Lin authored
-
Lei Wang authored
* [Enhancement] Add FP8 support and reproducibility in lighting indexer * Introduced a manual seed in `test_fp8_lighting_indexer` to ensure reproducible performance. * Added specializations for `cute::float_e4m3_t` and `cute::float_e5m2_t` in `gemm_mma.h` for enhanced FP8 support across multiple CUDA architectures, ensuring compatibility and improved functionality.ix * Fix typos in `fp8_lighting_indexer.py` and improve formatting in `gemm_mma.h` * Corrected a typo in the comment for `test_fp8_lighting_indexer` to enhance clarity. * Reformatted lines in `gemm_mma.h` for better readability by aligning template specializations across multiple CUDA architectures. * test fix * bug fix
-
Lei Wang authored
* Deleted the LoopVectorizeDynamic implementation from the transform module. * Removed associated references in the phase and initialization files to streamline the codebase. * This change simplifies the transformation pipeline by eliminating unused functionality. Co-authored-by:Zhiwen Mo <zm125@ic.ac.uk>
-
Jiaxing Ding authored
-
- 12 Nov, 2025 8 commits
-
-
pengxin99 authored
* Fix division by zero in RMS normalization * Fix rsqrt calculation to avoid division by zero
-
Lei Wang authored
* Add correctness evaluation script for GEMM v2 - Introduced a new Python script `correctness_evaluation_tcgen05.py` for testing the correctness of GEMM v2 implementations using pytest. - Implemented matrix multiplication and compilation checks, along with parameterized tests for various input configurations. - Enhanced the testing framework to validate GEMM operations with different data types and configurations, ensuring robustness in the implementation. - Updated logging in `legalize_negative_index.cc` to reduce verbosity by changing from WARNING to DLOG. - Adjusted assertions in `tcgen05_macro_generator.py` to accommodate new warp size requirements for improved performance. - Removed unused variable in `gemm_tcgen05.py` to streamline the codebase. * lint fix --------- Co-authored-by:Zhiwen Mo <zm125@ic.ac.uk>
-
Lei Wang authored
* Update layout handling and introduce reshape functionality - Updated the `LayoutNode` class to include a new `Reshape` method, allowing for dynamic reshaping of layouts based on input shapes. - Enhanced the `OutputShape` method to provide better handling of cases where the analyzer cannot form an `IntervalSet`, implementing fallback mechanisms to ensure safe extents. - Refactored the `ReduceOpNode` to utilize `BufferRegion` for improved memory handling during reduction operations. - Added tests for reshaping functionality and layout transformations to ensure correctness and performance in various scenarios. * lint fix * Revert tvm submodule pointer to 1815c3e0b6ec4ead36370bbd1562025d8529017c; keep src unchanged * Update tvm submodule to commit f0bbd3bf741413c35c389ba5dedd5be206000ad1 * Update tvm submodule to commit f0bbd3bf741413c35c389ba5dedd5be206000ad1 * remove useless prove * remove comment --------- Co-authored-by:tilelang-bot <bot@tilelang>
-
Kuris authored
* add typing stub for tir.ir * remove idents * minor update
-
LJC00118 authored
-
Lei Wang authored
* Add kernel selection option for GEMM v1 in environment settings - Introduced `TILELANG_USE_GEMM_V1` environment variable to control the selection of GEMM version. - Added `use_gemm_v1` method in the `Environment` class to determine if GEMM v1 should be used based on the environment variable. - Updated GEMM function assignment to default to v2, allowing for v1 to be forced via the new environment variable. * bug fix * Add kernel selection option for GEMM in environment settings - Introduced `TILELANG_USE_GEMM_V1` environment variable to allow users to select between GEMM v1 and v2 implementations. - Updated `gemm` function to default to v2 but switch to v1 if the environment variable is set to a truthy value. - Added a method `use_gemm_v1` in the `Environment` class to facilitate this selection based on the environment variable. * Refactor GEMM macro generator to use BufferRegion instead of Buffer - Updated `wgmma` a...
-
Kuris authored
-
Lei Wang authored
* Introduced a new issue template for planning releases, including fields for version, milestone, scope, tasks, readiness checks, and additional notes. * This template aims to streamline the release planning process and ensure all necessary information is captured for each release.
-
- 11 Nov, 2025 5 commits
-
-
Lei Wang authored
* Added new type mappings for int8, uint8, int16, uint16, int64, uint64, float64, bool, and uchar to the TLCPUSourceWrapper class. * Updated the initialization function to use a common format for the CPU backend, ensuring consistency and improved error handling with the addition of get_last_error(). * Refactored the get_cpu_init_func method to return the updated initialization function, enhancing clarity and maintainability.
-
Lei Wang authored
* Introduced a new function, _compute_version, to determine the package version with a clear preference order, enhancing version management. * The function checks for a VERSION file in the source checkout, falls back to importlib.metadata for installed distributions, and defaults to a development version if all else fails. * Updated the __version__ variable assignment to utilize the new function, improving clarity and maintainability of version handling. Co-authored-by:Zhiwen Mo <zm125@ic.ac.uk>
-
Lei Wang authored
* fix * Fix logging level in LayoutNode::InverseWithLevel method from WARNING to DLOG for symbolic layout fallback. * lint fix --------- Co-authored-by:Zhiwen Mo <zm125@ic.ac.uk>
-
Lei Wang authored
* [Enhancement] Add thread count validation for ReduceOp fragment layout inference * Introduced a check to ensure that the thread count is divisible by the replicate extent during layout inference in ReduceOpNode. This validation prevents layout inference failures and provides detailed error messages to guide users in resolving issues related to thread block sizes and fragment layouts. * Updated tests to remove unsupported configurations that could lead to layout inference errors, ensuring more robust testing scenarios. * lint fix
-
Zhengju Tang authored
* [Example] Add GQA varlen decoding kernel with logits return * [Example] Support Sink for GQA varlen decoding * [Example] Add for no-varlen support * [Tune] Add high performance logits saving * [Lint] * [Lint] * [Rename]
-
- 10 Nov, 2025 6 commits
-
-
Lei Wang authored
* [Refactor] Update ReduceOpNode to use absolute values in Max computation and remove unused shared memory reduction logic * Changed Max computation for AbsMax type to use absolute values of lhs and rhs. * Removed unused shared memory reduction logic and related checks for buffer dimensions and thread extents, simplifying the Lower method. * Added a fatal log for unsupported buffer scope reductions. * reduce fix * [Fix] Update type check for eval value in Builder class * Changed the type check for eval values to raise a TypeError for unsupported types, specifically excluding instances of tvm.tir.Buffer. This improves error handling and clarity in the Builder class.
-
Lei Wang authored
* [Enhancement] Improve iterator handling in layout utilities and parallel operations * Added a new function, DivideUnusedIterators, to detect per-iterator gaps in fused index expressions, enhancing the accuracy of unused iterator detection. * Updated CompleteBufferFragment to prefer direct inversion for bijective index mappings and introduced a fallback mechanism for non-bijective cases, improving layout inversion robustness. * Added a new test for layout inference in fused kernels to ensure correct compilation and execution without layout inversion failures. * lint fix
-
Lei Wang authored
* Added logging and exception handling for layout errors in InverseWithLevel method. * Replaced direct error check with a throw statement to enhance error reporting and debugging capabilities.
-
Lei Wang authored
* [Enhancement] Add NVCC support for PTX and SASS generation in TileLang * Introduced functions to compile CUDA C++ source to PTX and SASS formats, enhancing the ability to generate intermediate representations for CUDA kernels. * Added default compile options for NVCC, including paths for TileLang templates, CUTLASS, and CUDA includes. * Implemented methods to export and display generated PTX and SASS code, improving usability for developers working with CUDA targets. * Updated JITKernel class to integrate new NVCC functionalities for PTX and SASS handling, ensuring compatibility with existing workflows. * [Fix] Improve error handling in get_sass_from_source function * Added contextlib to suppress exceptions when removing temporary files, enhancing robustness. * Fixed formatting of error message for clarity when CUDA tools are not found, ensuring better user feedback. * [Enhancement] Preserve user flags in NVCC compile options * Updated the default_compile_options function to preserve user-specified compile flags, including repeated tokens, by utilizing shlex for proper tokenization. * This enhancement improves the flexibility and accuracy of NVCC compile options, ensuring that all user inputs are correctly handled.
-
Yichen Yan authored
-
Kuris authored
* Fix Buffer re-import typo in tilelang.langugage * fix lint error
-
- 09 Nov, 2025 1 commit
-
-
Lei Wang authored
* [Enhancement] Introduce LetWrapper for handling loop variable substitutions in pipeline rewriting * Added LetWrapper struct to encapsulate variable and value pairs for loop variable substitutions. * Updated PipelineRewriter to accept a vector of LetWrapper instances, allowing for proper handling of Let statements that depend on the pipeline loop variable. * Enhanced the BuildPipeline method to incorporate LetWrapper instances into rewritten blocks, ensuring correct substitutions during pipeline execution. * Refactored logic for processing Let statements to differentiate between those that use the loop variable and those that do not, improving the flexibility of the pipeline transformation. * Refactor lambda expression for clarity in loop variable usage check in inject_pipeline.cc * [Test] Add regression test for loop variable handling in kernel compilation * Introduced a new test case to verify correct handling of loop variables in the kernel compilation process, addressing a regression issue with InjectSoftwarePipeline. * The test ensures that the loop variable is not left as a free variable, which previously caused failures in MakePackedAPI. * Configurations are set to disable warp specialization and TMA lowering to align with the original issue reproduction. * Remove unused import in regression test for loop variable handling in kernel compilation
-