{"id":18108,"date":"2018-03-31T11:58:01","date_gmt":"2018-03-31T08:58:01","guid":{"rendered":"https:\/\/hgpu.org\/?p=18108"},"modified":"2018-03-31T12:08:53","modified_gmt":"2018-03-31T09:08:53","slug":"python-non-uniform-fast-fourier-transform-pynufft-an-accelerated-non-cartesian-mri-package-on-a-heterogeneous-platform-cpu-gpu","status":"publish","type":"post","link":"https:\/\/hgpu.org\/?p=18108","title":{"rendered":"Python Non-Uniform Fast Fourier Transform (PyNUFFT): An Accelerated Non-Cartesian MRI Package on a Heterogeneous Platform (CPU\/GPU)"},"content":{"rendered":"<p>A Python non-uniform fast Fourier transform (PyNUFFT) package has been developed to accelerate multidimensional non-Cartesian image reconstruction on heterogeneous platforms. Since scientific computing with Python encompasses a mature and integrated environment, the time efficiency of the NUFFT algorithm has been a major obstacle to real-time non-Cartesian image reconstruction with Python. The current PyNUFFT software enables multi-dimensional NUFFT accelerated on a heterogeneous platform, which yields an efficient solution to many non-Cartesian imaging problems. The PyNUFFT also provides several solvers, including the conjugate gradient method, l1 total variation regularized ordinary least square (L1TV-OLS), and l1 total variation regularized least absolute deviation (L1TV-LAD). Metaprogramming libraries have been employed to accelerate PyNUFFT. The PyNUFFT package has been tested on multi-core central processing units (CPUs) and graphic processing units (GPUs), with acceleration factors of 6.3-9.5x on a 32-thread CPU platform and 5.4-13x on a GPU.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Python non-uniform fast Fourier transform (PyNUFFT) package has been developed to accelerate multidimensional non-Cartesian image reconstruction on heterogeneous platforms. Since scientific computing with Python encompasses a mature and integrated environment, the time efficiency of the NUFFT algorithm has been a major obstacle to real-time non-Cartesian image reconstruction with Python. The current PyNUFFT software enables [&hellip;]<\/p>\n","protected":false},"author":351,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[36,89,33,90,3],"tags":[1787,14,207,452,1786,512,807,20,1996,1793,176,513,1740],"class_list":["post-18108","post","type-post","status-publish","format-standard","hentry","category-algorithms","category-nvidia-cuda","category-image-processing","category-opencl","category-paper","tag-algorithms","tag-cuda","tag-fft","tag-heterogeneous-systems","tag-image-processing","tag-image-reconstruction","tag-mri","tag-nvidia","tag-nvidia-geforce-gtx-965-m","tag-opencl","tag-package","tag-python","tag-tesla-k80"],"views":3267,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/18108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/users\/351"}],"replies":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=18108"}],"version-history":[{"count":1,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/18108\/revisions"}],"predecessor-version":[{"id":18111,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/18108\/revisions\/18111"}],"wp:attachment":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=18108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=18108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=18108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}