-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Closed
Labels
Description
Current TVM is not supporting mixture texture and buffer. This pattern is essential to obtain state-of-art performance on iOS device, and potentially better OpenGL backend for legacy devices.
A potential solution is providing extra device hints, eg:
a = tvm.placeholder((32,), name="a", storage_dev="2d_texture")
b = tvm.placeholder((32,), name="b", storage_dev="buffer")
In lowering process, some extra work is required I think:
- We need a pass to infer output storage dev for each node
- We need special data access lowing rule for texture, especially different layout of texture (1D/2D texture)
- We need modify codegen
- We need to modify runtime, to support NDArray laying on texture memory.
Once we support 2D texture, I think we are able to achieve state-of-art performance on iOS, and OpenGL.
ajtulloch, kazimuth and amaliujia