Skip to content

Alias Resolve

warp can't infer type alias in parameter annotations in kernel function.

type A = int

@warp.kernel
def func(a: A): ...

In this example, A is a type alias of int, but use it to annote parameter a in kernel function func is invalid. However warp_hint let you do this:

from warp_hint import kernel 

type A = int

@kernel
def func(a: A): ...

Although most of the time you can use the older version of alias in warp:

A = int

But when it comes to generic alias:

Generic Alias Resolve

A[t] = list[t]
B[t] = t
C[k,v] = dict[k,v]
D[k] = C[k,int]
E[k,v] = C[k,D[k]]

@kernel
def func(a: A[int], ... ,e: E[int,float]): ...

warp_hint will resolve all valid generic alias for you.

warp does not support generic type in python's type system, so you can't actually use list[t] nor dict[k,v] in kernel type annotations. However, warp_hint let you use generic wrapper type.