Add binding for spread and interpolate, and also maybe support density estimator #378
Replies: 8 comments 1 reply
-
@wendazhou is writing a faster spreader as a separate repo, which we hope to then use in finufft. But for now if you work in C++ you can already call anything in libfinufft.so, looking in the finufft::spreadinterp namespace. You could easily write a Py wrapper to them. But writing wrappers exposing them cleanly from all 5 languages is not worth it for us yet. |
Beta Was this translation helpful? Give feedback.
-
If I do happen to write the interface for python, can I make a PR? |
Beta Was this translation helpful? Give feedback.
-
Hi @chaithyagr , As Alex mentioned, I am in the process of finishing up a standalone spreading package which should be significantly more performant (making use of explicit vectorization) and flexible (e.g. user configurable polynomial weights, spreading to both real-valued and complex-valued targets etc.) and an initial version should be available next week. I will probably have some rudimentary python bindings by then. Did you have a specific application / problem in mind? I can try to check if your usage would fit within the API of that package, and modify the API if necessary. |
Beta Was this translation helpful? Give feedback.
-
Hi @wendazhou , I have made my PR, the uses of it is in mri-nufft, which is applied specifically for MRI, and to estimate the Density compensators. |
Beta Was this translation helpful? Give feedback.
-
Updates:
|
Beta Was this translation helpful? Give feedback.
-
Please see detailed response #308 (comment) |
Beta Was this translation helpful? Give feedback.
-
yeah, check out
https://github.com/wendazhou/finufft/tree/optim-spread
(stale)
@blackwer is exploring this now in:
https://github.com/blackwer/finufft/tree/wenda-optim-spread
Enjoy! The main issues are that only a few-percent performance gains tend
to result in the overall finufft, even if the spreader is 50% faster.
Partly to do with sorting.
If you have ideas re simd/HPC sorting libs, let us know. All of this will
be a matter of balancing perf vs maintainability/simplicity.
Best, Alex
…On Thu, Nov 30, 2023 at 4:39 AM Chaithya G R ***@***.***> wrote:
Thank you for the updates @ahbarnett <https://github.com/ahbarnett> for
the updates. Is there a published work regarding the more performant
spreader / interpolator. Is it possible to gain access to a WIP repository
if one exists for it?
—
Reply to this email directly, view it on GitHub
<#378 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACNZRSWVYAYOFKD4JGHHRATYHBH4VAVCNFSM6AAAAABAA3Y5AKVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM3TOMJVGM2DI>
.
You are receiving this because you were mentioned.Message ID:
***@***.***
com>
--
*-------------------------------------------------------------------~^`^~._.~'
|\ Alex Barnett Center for Computational Mathematics, Flatiron Institute
| \ http://users.flatironinstitute.org/~ahb 646-876-5942
|
Beta Was this translation helpful? Give feedback.
-
This is now completed in #564 . Closing here. |
Beta Was this translation helpful? Give feedback.
-
The spread and interpolate are equally important kernels and it will be nice to have them exposed also.
Additionally, it would help to have density compensation estimators in place.
Most are implemented in
tensorflow-nufft
andtensorflow-mri
already (although these features are not limited to MRI)Beta Was this translation helpful? Give feedback.
All reactions