flatironinstitute / cufinufft

Nonuniform fast Fourier transforms of types 1 and 2, in 1D, 2D, and 3D, on the GPU
Other
83 stars 18 forks source link

Windows version #114

Open ApplestarGY opened 3 years ago

ApplestarGY commented 3 years ago

Hi,

I was wondering if cuFINUFFT is platform neutral. If not, do you plan to develop a Windows version?

Thanks, Yuan

ahbarnett commented 3 years ago

Dear Yuan, we have not tried it on Windows. We suspect that only some changes to the Makefile are needed. You might want to look at those changes for the related FINUFFT code. I am alerting @MelodyShih @garrettwrong @JBlaschke in case they have anything to add. Best, Alex

JBlaschke commented 3 years ago

Hi @ApplestarGY, I haven't use the NVIDIA toolchain on Windows, but my assumption would be that it's not that different from the Linux toolchain (especially on if you use the Windows Subsystem for Linux). That is to say that cufinufft isn't using any library calls specific to Linux/POSIX. So if you can get the compiler to work, I doubt there would be any problems. The only place where I am a little unsure would be python -- I don't know how the python C-API works in Windows.

turbotage commented 1 year ago

@ahbarnett , @JBlaschke I guess the answer is that there is not currently any plan to deploy cuFINUFFT to Windows from your side? Even though no linux specific dependencies are used, straight up building this on Windows looks cumbersome. Perhaps easiest to rewrite to use cmake? Greatly appreciated feature request would be python wheels working on Windows 😄

JBlaschke commented 1 year ago

@turbotage -- I think you have two questions here:

  1. Do we plan to deploy this on Windows?
  2. Do we plan to include alternate build systems (e.g. cmake)?

I think these are fundamentally different. My answers would be:

  1. No. I am unaware of any HPC systems running Windows
  2. This is an interesting question. I am open to including a cmake build unless folks here have any objections. I like embracing multiple build systems for resiliency. We could add python's setuptools to the mix also. (@ahbarnett what do you think?)

@turbotage why do you think building on windows is cumbersome? The Makefile doesn't do anything fancy, like it's not running perl/bash scripts to find things, etc. So you might just set the paths for Windows + use the Nvidia compiler. Or am I missing anything?

ahbarnett commented 1 year ago

Robert Blackwell and Joakim Anden are actively merging cufinufft into the finufft (repo and common build, for now; compu kernels to be merged later). That will use cmake, building on exisintg cmake for FINUFFT (which will become the standard and the makefile become obsolete, graduallly). Look at @rblackwer PR into FINUFFT. So, stay tuned there! Hope this helps. Best, Alex

On Thu, Jan 26, 2023 at 1:51 PM Johannes Blaschke @.***> wrote:

@turbotage https://github.com/turbotage -- I think you have two questions here:

  1. Do we plan to deploy this on Windows?
  2. Do we plan to include alternate build systems (e.g. cmake)?

I think these are fundamentally different. My answers would be:

  1. No. I am unaware of any HPC systems running Windows
  2. This is an interesting question. I am open to including a cmake build unless folks here have any objections. I like embracing multiple build systems for resiliency. We could add python's setuptools to the mix also. @.*** https://github.com/ahbarnett what do you think?)

@turbotage https://github.com/turbotage why do you think building on windows is cumbersome? The Makefile doesn't do anything fancy, like it's not running perl/bash scripts to find things, etc. So you might just set the paths for Windows + use the Nvidia compiler. Or am I missing anything?

— Reply to this email directly, view it on GitHub https://github.com/flatironinstitute/cufinufft/issues/114#issuecomment-1405452516, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACNZRSX4FO5LAI3AVM3LU4TWULBUVANCNFSM5CH4AAPQ . You are receiving this because you were mentioned.Message ID: @.***>

-- *-------------------------------------------------------------------~^`^~._.~' |\ Alex Barnett Center for Computational Mathematics, Flatiron Institute | \ http://users.flatironinstitute.org/~ahb 646-876-5942

turbotage commented 1 year ago

@ahbarnett I saw it; really awesome! What is the outlook for Type 3 transforms there? There is a pull request here for it, #120.

ahbarnett commented 1 year ago

We do want to bring in this PR for type 3, but that will happen after the initial merge. For now I guess you have to try to compile that PR. Sorry, there are multiple axes here (CPU/GPU, 3 types, make/cmake, ...) and @blackwer and @janden are working on the merge. It is great to know you will be a user!