Pointer SNode in metal?

I started using the Metal backend (v0.6.6). It’s a :racing_car:!

For MPM, however, not having pointer SNodes prevents the code for running. Is there a plan for implementing them soon, or should I just rewrite my way around?
thank you!

1 Like

Hi Roberto,

Metal author here, thank you for the support! :slight_smile:

For Metal, things are a bit different in that we are still trying to figure out a best way to do memory allocation inside the kernels. I wonder if you could try bitmasked instead of pointer? The only difference between these two are, bitmasked pre-allocates enough memory to hold exactly the number of elements you would specify at compile time, and uses one bit per element to mark its activeness.

If this workaround doesn’t work for you (e.g. memory limitation: having a bitmasked of n=1000, with each element being super large is probably unrealistic. On the other hand, this is fine for pointer because memory are dynamically allocated), then I’m afraid that Metal doesn’t yet have the proper data structure to support this use case, sorry about that… But we would also prioritize the support for other sparse data structures…


1 Like