Files
tilelang/testing/python/issue/test_tilelang_issue_1115.py
T
Kurisu 4ef94f2277 [Fix] fix type imcompatible error in #1115 (#1180)
* Fix incompatible floordiv in packed api

* fix lint
2025-11-04 00:38:53 +08:00

50 lines
1.4 KiB
Python

import torch
import tilelang
import tilelang.language as T
def test_int64_address():
@tilelang.jit
def set_cache_kernel(
S,
D,
pos_ty='int64',
dtype="float32",
):
@T.prim_func
def main(
pos: T
.Tensor(
[
S,
], pos_ty
), # type: ignore `TypeError: Check failed: (a.dtype() == b.dtype()) is false: mismatched types. int64 vs. int32`
value: T.Tensor([S, D], dtype), # type: ignore
cache: T.Tensor([S, D], dtype), # type: ignore
):
with T.Kernel(S, threads=128) as bx:
slot = pos[bx]
for i in T.Parallel(D):
cache[slot, i] = value[bx, i]
return main
D = 2
S = 10
cache = torch.rand((S, D), device="cuda", dtype=torch.float32)
value = torch.rand((S, D), device='cuda', dtype=torch.float32)
pos_int64 = torch.arange(S, device='cuda', dtype=torch.int64)
pos_int32 = torch.arange(S, device='cuda', dtype=torch.int32)
kernel_int64 = set_cache_kernel(S, D, 'int64')
kernel_int32 = set_cache_kernel(S, D, 'int32')
kernel_int64(pos_int64, value, cache)
torch.testing.assert_close(cache, value)
kernel_int32(pos_int32, value, cache)
torch.testing.assert_close(cache, value)
if __name__ == "__main__":
tilelang.testing.main()