ifsheldon/stannum

Memory and Performance issue of Taichi

ifsheldon opened this issue · 4 comments

With the current Taichi (v0.9.1 - 1.2.1), calling Tube N times will result in N^2 time complexity because when creating a field Taichi need to inject kernel information into a field which leads to memory movement which is O(M) where M is the number of existing fields. The complexity is simply 1+2+3+....+N = O(N^2). This is not our fault. And Taichi developers are fixing it, although it takes quite some time.

In the forward-only computation, this can be resolved by eagerly destroying fields and SNodeTree, which is included in stannum=0.6.2.

related Taichi issue.

The Taichi issue is closed. Looking forward to Taichi new release!

The new release of Taichi 1.1.3 includes the PR for performance improvement, so this issue is resolved.

Reopen this because Taichi still has the problem on other backends (Vulkan and Metal) while the problem was fixed on CPU and CUDA backends.

See this issue.