{"action":"created","issue":{"url":"https://api.github.com/repos/NFFT/nfft/issues/75","repository_url":"https://api.github.com/repos/NFFT/nfft","labels_url":"https://api.github.com/repos/NFFT/nfft/issues/75/labels{/name}","comments_url":"https://api.github.com/repos/NFFT/nfft/issues/75/comments","events_url":"https://api.github.com/repos/NFFT/nfft/issues/75/events","html_url":"https://github.com/NFFT/nfft/issues/75","id":317961994,"number":75,"title":"Request: possibly replace FFTW with CUFFT","user":{"login":"fbergama","id":5987529,"avatar_url":"https://avatars3.githubusercontent.com/u/5987529?v=4","gravatar_id":"","url":"https://api.github.com/users/fbergama","html_url":"https://github.com/fbergama","followers_url":"https://api.github.com/users/fbergama/followers","following_url":"https://api.github.com/users/fbergama/following{/other_user}","gists_url":"https://api.github.com/users/fbergama/gists{/gist_id}","starred_url":"https://api.github.com/users/fbergama/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fbergama/subscriptions","organizations_url":"https://api.github.com/users/fbergama/orgs","repos_url":"https://api.github.com/users/fbergama/repos","events_url":"https://api.github.com/users/fbergama/events{/privacy}","received_events_url":"https://api.github.com/users/fbergama/received_events","type":"User","site_admin":false},"labels":[{"id":320571865,"url":"https://api.github.com/repos/NFFT/nfft/labels/question","name":"question","color":"cc317c","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-04-26T10:08:23Z","updated_at":"2018-04-26T20:12:51Z","closed_at":null,"author_association":"NONE","body":"I'm not sure if this would provide a real benefit in terms of processing speed, but the idea of replacing FFTW with the CUDA-compabible implementation CUFFT is somehow appealing.\r\n\r\nI've tried to replace the #include< fftw3.h> with #include< cufftw.h >  but the compilation fails because CUFFT do not support double precision. Is there a way to disable long doubles via configure script? \r\n"},"comment":{"url":"https://api.github.com/repos/NFFT/nfft/issues/comments/384774212","html_url":"https://github.com/NFFT/nfft/issues/75#issuecomment-384774212","issue_url":"https://api.github.com/repos/NFFT/nfft/issues/75","id":384774212,"user":{"login":"tvolkmer","id":9266461,"avatar_url":"https://avatars0.githubusercontent.com/u/9266461?v=4","gravatar_id":"","url":"https://api.github.com/users/tvolkmer","html_url":"https://github.com/tvolkmer","followers_url":"https://api.github.com/users/tvolkmer/followers","following_url":"https://api.github.com/users/tvolkmer/following{/other_user}","gists_url":"https://api.github.com/users/tvolkmer/gists{/gist_id}","starred_url":"https://api.github.com/users/tvolkmer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tvolkmer/subscriptions","organizations_url":"https://api.github.com/users/tvolkmer/orgs","repos_url":"https://api.github.com/users/tvolkmer/repos","events_url":"https://api.github.com/users/tvolkmer/events{/privacy}","received_events_url":"https://api.github.com/users/tvolkmer/received_events","type":"User","site_admin":false},"created_at":"2018-04-26T20:12:51Z","updated_at":"2018-04-26T20:12:51Z","author_association":"CONTRIBUTOR","body":"I'm sorry, we do not support CUFFT and we currently do not plan to support this in the near future.\r\n\r\nThe FFTW-compatible interface of CUFFT does not implement all definitions and features of FFTW3 as far as I see.\r\n\r\nSome last hints. Maybe it works after following these steps, maybe not:\r\n- In `m4/ax_lib_fftw3.m4` around line 76 replace the line\r\n`AC_SEARCH_LIBS([fftw${PREC_SUFFIX}_execute], [fftw3${PREC_SUFFIX} fftw3${PREC_SUFFIX}-3], [ax_lib_fftw3=yes], [ax_lib_fftw3=no], [-lm])`\r\nby\r\n`AC_SEARCH_LIBS([fftw${PREC_SUFFIX}_execute], [cufftw], [ax_lib_fftw3=yes], [ax_lib_fftw3=no], [-lm])`\r\n- Run `./bootstrap.sh`\r\n- Edit `include/nfft3.h`:\r\n   - Replace the include `fftw3.h` by `cufftw.h`\r\n   - Remove all lines containing the string `LONG_DOUBLE`\r\n   - Insert after `#define NFFT_CONCAT(prefix, name) prefix ## name`:\r\n```\r\n#define FFTW_CONCAT(prefix, name) prefix ## name\r\n#define FFTW_MANGLE_DOUBLE(name) FFTW_CONCAT(fftw_, name)\r\n#define FFTW_MANGLE_FLOAT(name) FFTW_CONCAT(fftwf_, name)\r\ntypedef enum fftw_r2r_kind_do_not_use_me {\r\n     FFTW_R2HC=0, FFTW_HC2R=1, FFTW_DHT=2,\r\n     FFTW_REDFT00=3, FFTW_REDFT01=4, FFTW_REDFT10=5, FFTW_REDFT11=6,\r\n     FFTW_RODFT00=7, FFTW_RODFT01=8, FFTW_RODFT10=9, FFTW_RODFT11=10\r\n} fftwf_r2r_kind, fftw_r2r_kind;\r\n```\r\n- Edit `include/infft.h`: Replace the include `fftw3.h` by `cufftw.h`\r\n- Run `./configure` with your desired flags **without** `--enable-openmp`"}}
{"actor":{"display_login":"tvolkmer"}}