You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Concisely describe the proposed feature
Floating point numbers are good, but they're low effcient compared to integers, especially when it comes to atomics.
The OpenGL (mesa) backend yields 40% performance boost in mpm88.py after switching grid_v and grid_m to fixed point.
The switching process was not so intuitive, however, it would be great if users can switch it just changing a character (ti.f32 -> ti.d32).
So I would like to add built-in fixed point number support so users could switch and tune the performance without pain, just like the SNode system provide us.
Describe the solution you'd like (if any)
First, let's call fixed point number ti.d32 and ti.d64.
Based on #1905, let the primitive type of ti.d32 to be ti.i32, and the DataTypeNode should also include an extra parameter shift, e.g.:
Concisely describe the proposed feature
Floating point numbers are good, but they're low effcient compared to integers, especially when it comes to atomics.
The OpenGL (mesa) backend yields 40% performance boost in
mpm88.py
after switching grid_v and grid_m to fixed point.The switching process was not so intuitive, however, it would be great if users can switch it just changing a character (ti.f32 -> ti.d32).
So I would like to add built-in fixed point number support so users could switch and tune the performance without pain, just like the SNode system provide us.
Describe the solution you'd like (if any)
First, let's call fixed point number
ti.d32
andti.d64
.Based on #1905, let the primitive type of
ti.d32
to beti.i32
, and theDataTypeNode
should also include an extra parametershift
, e.g.:Also note that we'd demote
ti.d32
operations intoti.i32
, so that no backend maintainance would be envolved.Additional comments
Am I understanding #1095 correct?
The text was updated successfully, but these errors were encountered: