Configuration¶

pip install gpuNUFFT

cmake: /home/home/miniconda3/envs/tensor/lib/libstdc++.so.6: version `GLIBCXX_3.4.32' not found

find /usr/lib/x86_64-linux-gnu/ -name "libstdc++.so.6"
cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ~/miniconda3/envs/tensor/lib/

NameError: name 'NonCartesianFFT' is not defined

sudo apt install libnfft3-dev
pip install pynfft2
ldd /home/home/miniconda3/envs/tensor/lib/python3.11/site-packages/gpuNUFFT.so

/bin/bash: /home/home/miniconda3/envs/tensor/lib/libtinfo.so.6: no version information available (required by /bin/bash)
linux-vdso.so.1 (0x00007ffcfbde1000)
libcufft.so.11 => /usr/local/cuda-12.6/lib64/libcufft.so.11 (0x00007f2a47800000)
libcublas.so.12 => /usr/local/cuda-12.6/lib64/libcublas.so.12 (0x00007f2a40e00000)
libcurand.so.10 => /usr/local/cuda-12.6/lib64/libcurand.so.10 (0x00007f2a3a800000)
libstdc++.so.6 => /home/home/miniconda3/envs/tensor/lib/libstdc++.so.6 (0x00007f2a3a582000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2a587a2000)
libgcc_s.so.1 => /home/home/miniconda3/envs/tensor/lib/libgcc_s.so.1 (0x00007f2a58786000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2a3a370000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2a58b9a000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2a58781000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2a5877c000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f2a58777000)
libcublasLt.so.12 => /usr/local/cuda-12.6/lib64/libcublasLt.so.12 (0x00007f2a18a00000)

conda install -c conda-forge ncurses

linux-vdso.so.1 (0x00007ffeb25d0000)
libcufft.so.11 => /usr/local/cuda-12.6/lib64/libcufft.so.11 (0x00007f491e000000)
libcublas.so.12 => /usr/local/cuda-12.6/lib64/libcublas.so.12 (0x00007f4917600000)
libcurand.so.10 => /usr/local/cuda-12.6/lib64/libcurand.so.10 (0x00007f4911000000)
libstdc++.so.6 => /home/home/miniconda3/envs/tensor/lib/libstdc++.so.6 (0x00007f4910d82000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4917517000)
libgcc_s.so.1 => /home/home/miniconda3/envs/tensor/lib/libgcc_s.so.1 (0x00007f492eeff000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4910b70000)
/lib64/ld-linux-x86-64.so.2 (0x00007f492f22f000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f492eefa000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f492eef5000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f492eef0000)
libcublasLt.so.12 => /usr/local/cuda-12.6/lib64/libcublasLt.so.12 (0x00007f48ef200000)

pip uninstall gpuNUFFT
pip install mri-nufft[gpunufft] scikit-image fastmri
In [164]:
!pip show mri-nufft
Name: mri-nufft
Version: 1.1.1
Summary: MRI Non-Cartesian Fourier Operators with multiple computation backends.
Home-page: 
Author: 
Author-email: Pierre-antoine Comby <pierre-antoine.comby@crans.org>
License: 
Location: /home/home/miniconda3/envs/tensor/lib/python3.11/site-packages
Requires: matplotlib, numpy, scipy, tqdm
Required-by: pysap-mri
In [165]:
! ldconfig -p | grep cuda
	libnvrtc.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvrtc.so.12
	libnvrtc.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvrtc.so
	libnvrtc-builtins.so.12.6 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvrtc-builtins.so.12.6
	libnvrtc-builtins.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvrtc-builtins.so
	libnvonnxparser.so.10 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvonnxparser.so.10
	libnvonnxparser.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvonnxparser.so
	libnvjpeg.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvjpeg.so.12
	libnvjpeg.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvjpeg.so
	libnvinfer_vc_plugin.so.10 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvinfer_vc_plugin.so.10
	libnvinfer_vc_plugin.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvinfer_vc_plugin.so
	libnvinfer_plugin.so.10 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvinfer_plugin.so.10
	libnvinfer_plugin.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvinfer_plugin.so
	libnvinfer_lean.so.10 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvinfer_lean.so.10
	libnvinfer_lean.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvinfer_lean.so
	libnvinfer_dispatch.so.10 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvinfer_dispatch.so.10
	libnvinfer_dispatch.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvinfer_dispatch.so
	libnvinfer.so.10 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvinfer.so.10
	libnvinfer.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvinfer.so
	libnvfatbin.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvfatbin.so.12
	libnvfatbin.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvfatbin.so
	libnvblas.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvblas.so.12
	libnvblas.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvblas.so
	libnvToolsExt.so.1 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvToolsExt.so.1
	libnvToolsExt.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvToolsExt.so
	libnvJitLink.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvJitLink.so.12
	libnvJitLink.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnvJitLink.so
	libnpps.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnpps.so.12
	libnpps.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnpps.so
	libnppitc.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppitc.so.12
	libnppitc.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppitc.so
	libnppisu.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppisu.so.12
	libnppisu.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppisu.so
	libnppist.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppist.so.12
	libnppist.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppist.so
	libnppim.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppim.so.12
	libnppim.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppim.so
	libnppig.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppig.so.12
	libnppig.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppig.so
	libnppif.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppif.so.12
	libnppif.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppif.so
	libnppidei.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppidei.so.12
	libnppidei.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppidei.so
	libnppicc.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppicc.so.12
	libnppicc.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppicc.so
	libnppial.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppial.so.12
	libnppial.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppial.so
	libnppc.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppc.so.12
	libnppc.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppc.so
	libicudata.so.74 (libc6,x86-64) => /lib/x86_64-linux-gnu/libicudata.so.74
	libcusparse.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcusparse.so.12
	libcusparse.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcusparse.so
	libcusolverMg.so.11 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcusolverMg.so.11
	libcusolverMg.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcusolverMg.so
	libcusolver.so.11 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcusolver.so.11
	libcusolver.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcusolver.so
	libcurand.so.10 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcurand.so.10
	libcurand.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcurand.so
	libcuinj64.so.12.6 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcuinj64.so.12.6
	libcuinj64.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcuinj64.so
	libcufile_rdma.so.1 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcufile_rdma.so.1
	libcufile_rdma.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcufile_rdma.so
	libcufile.so.0 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcufile.so.0
	libcufile.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcufile.so
	libcufftw.so.11 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcufftw.so.11
	libcufftw.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcufftw.so
	libcufft.so.11 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcufft.so.11
	libcufft.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcufft.so
	libcudnn_ops.so.9 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcudnn_ops.so.9
	libcudnn_heuristic.so.9 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcudnn_heuristic.so.9
	libcudnn_graph.so.9 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcudnn_graph.so.9
	libcudnn_engines_runtime_compiled.so.9 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcudnn_engines_runtime_compiled.so.9
	libcudnn_engines_precompiled.so.9 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcudnn_engines_precompiled.so.9
	libcudnn_cnn.so.9 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcudnn_cnn.so.9
	libcudnn_adv.so.9 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcudnn_adv.so.9
	libcudnn.so.9 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcudnn.so.9
	libcudart.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcudart.so.12
	libcudart.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcudart.so
	libcudadebugger.so.1 (libc6,x86-64) => /usr/lib/wsl/lib/libcudadebugger.so.1
	libcuda.so.1 (libc6,x86-64) => /usr/lib/wsl/lib/libcuda.so.1
	libcublasLt.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcublasLt.so.12
	libcublasLt.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcublasLt.so
	libcublas.so.12 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcublas.so.12
	libcublas.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libcublas.so
	libaccinj64.so.12.6 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libaccinj64.so.12.6
	libaccinj64.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libaccinj64.so
	libOpenCL.so.1 (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libOpenCL.so.1
	libOpenCL.so (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/libOpenCL.so
	do_not_link_against_nvinfer_builder_resource_win (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/do_not_link_against_nvinfer_builder_resource_win
	do_not_link_against_nvinfer_builder_resource (libc6,x86-64) => /usr/local/cuda-12.6/targets/x86_64-linux/lib/do_not_link_against_nvinfer_builder_resource
sudo nano ~/.bashrc

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.6/targets/x86_64-linux/lib/stubs
In [166]:
!pip freeze  # 查看已安装的库及版本
absl-py==2.1.0
aiohappyeyeballs==2.4.6
aiohttp==3.11.13
aiosignal==1.3.2
anyio==4.8.0
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
astropy==7.0.1
astropy-iers-data==0.2025.2.24.0.34.4
asttokens==3.0.0
astunparse==1.6.3
async-lru==2.0.4
attrs==25.1.0
babel==2.17.0
beautifulsoup4==4.13.3
bleach==6.2.0
brainweb-dl @ git+https://github.com/paquiteau/brainweb-dl.git@2efc9f7ae78cdb76ff4b80e903d625f4407a085e
certifi==2025.1.31
cffi==1.17.1
charset-normalizer==3.4.1
comm==0.2.2
contourpy==1.3.1
cupy-cuda12x==13.3.0
cycler==0.12.1
debugpy==1.8.12
decorator==5.2.1
defusedxml==0.7.1
executing==2.2.0
fastjsonschema==2.21.1
fastmri==0.3.0
fastrlock==0.8.3
filelock==3.16.1
finufft==2.3.1
flatbuffers==25.2.10
fonttools==4.56.0
fqdn==1.5.1
frozenlist==1.5.0
fsspec==2024.10.0
gast==0.6.0
google-pasta==0.2.0
gpuNUFFT==0.9.0
grpcio==1.70.0
h11==0.14.0
h5py==3.13.0
httpcore==1.0.7
httpx==0.28.1
idna==3.10
imageio==2.37.0
importlib_metadata==8.6.1
importlib_resources==6.5.2
ipykernel==6.29.5
ipython==8.32.0
isoduration==20.11.0
jedi==0.19.2
Jinja2==3.1.4
joblib==1.4.2
json5==0.10.0
jsonpointer==3.0.0
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
jupyter==1.1.1
jupyter-console==6.6.3
jupyter-events==0.12.0
jupyter-lsp==2.2.5
jupyter_client==8.6.3
jupyter_core==5.7.2
jupyter_server==2.15.0
jupyter_server_terminals==0.5.3
jupyterlab==4.3.5
jupyterlab_pygments==0.3.0
jupyterlab_server==2.27.3
jupyterlab_widgets==3.0.13
keras==3.8.0
kiwisolver==1.4.8
lazy_loader==0.4
libclang==18.1.1
lightning-utilities==0.12.0
Markdown==3.7
markdown-it-py==3.0.0
MarkupSafe==3.0.2
matplotlib==3.10.0
matplotlib-inline==0.1.7
mdurl==0.1.2
mistune==3.1.2
ml-dtypes==0.4.1
modopt==1.7.2
mpmath==1.3.0
mri-nufft==1.1.1
multidict==6.1.0
namex==0.0.8
nbclient==0.10.2
nbconvert==7.16.6
nbformat==5.10.4
nest-asyncio==1.6.0
networkx==3.4.2
nibabel==5.3.2
notebook==7.3.2
notebook_shim==0.2.4
numpy==1.26.4
nvidia-cublas-cu12==12.6.4.1
nvidia-cuda-cupti-cu12==12.6.80
nvidia-cuda-nvcc-cu12==12.5.82
nvidia-cuda-nvrtc-cu12==12.6.77
nvidia-cuda-runtime-cu12==12.6.77
nvidia-cudnn-cu12==9.5.1.17
nvidia-cufft-cu12==11.3.0.4
nvidia-cufile-cu12==1.11.1.6
nvidia-curand-cu12==10.3.7.77
nvidia-cusolver-cu12==11.7.1.2
nvidia-cusparse-cu12==12.5.4.2
nvidia-cusparselt-cu12==0.6.3
nvidia-nccl-cu12==2.25.1
nvidia-nvjitlink-cu12==12.6.85
nvidia-nvtx-cu12==12.6.77
opt_einsum==3.4.0
optree==0.14.0
overrides==7.7.0
packaging==24.2
pandas==2.2.3
pandocfilters==1.5.1
parso==0.8.4
pexpect==4.9.0
pillow==11.0.0
platformdirs==4.3.6
progressbar2==4.5.0
prometheus_client==0.21.1
prompt_toolkit==3.0.50
propcache==0.3.0
protobuf==5.29.3
psutil==7.0.0
ptyprocess==0.7.0
pure_eval==0.2.3
pybind11==2.13.6
pycparser==2.22
pyerfa==2.0.1.5
Pygments==2.19.1
pyNFFT2==1.4.3
pyparsing==3.2.1
pysap-mri @ git+https://github.com/CEA-COSMIC/pysap-mri.git@367ca7302986965c650fb8261dbae5b791864f69
python-dateutil==2.9.0.post0
python-json-logger==3.2.1
python-PySAP @ git+https://github.com/CEA-COSMIC/pysap.git@1cfe7fe5196b9ffdda0eafcbc509e69fcd72c4fb
python-utils==3.9.1
pytorch-lightning==2.5.0.post0
pytorch-triton==3.2.0+git4b3bb1f8
pytz==2025.1
PyWavelets==1.8.0
PyYAML==6.0.2
pyzmq==26.2.1
referencing==0.36.2
requests==2.32.3
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rich==13.9.4
rpds-py==0.23.1
runstats==2.0.0
scikit-image==0.25.2
scikit-learn==1.6.1
scipy==1.15.2
Send2Trash==1.8.3
six==1.17.0
sniffio==1.3.1
soupsieve==2.6
stack-data==0.6.3
sympy==1.13.3
tensorboard==2.18.0
tensorboard-data-server==0.7.2
tensorflow==2.18.0
tensorflow-io-gcs-filesystem==0.37.1
termcolor==2.5.0
terminado==0.18.1
threadpoolctl==3.5.0
tifffile==2025.2.18
tinycss2==1.4.0
torch==2.7.0.dev20250224+cu126
torchaudio==2.6.0.dev20250224+cu126
torchmetrics==1.6.1
torchvision==0.22.0.dev20250224+cu126
tornado==6.4.2
tqdm==4.67.1
traitlets==5.14.3
types-python-dateutil==2.9.0.20241206
typing_extensions==4.12.2
tzdata==2025.1
uri-template==1.3.0
urllib3==2.3.0
wcwidth==0.2.13
webcolors==24.11.1
webencodings==0.5.1
websocket-client==1.8.0
Werkzeug==3.1.3
widgetsnbextension==4.0.13
wrapt==1.17.2
yarl==1.18.3
zipp==3.21.0
In [167]:
!nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Tue_Oct_29_23:50:19_PDT_2024
Cuda compilation tools, release 12.6, V12.6.85
Build cuda_12.6.r12.6/compiler.35059454_0
In [168]:
from mri.operators import NonCartesianFFT
import numpy as np

# 假设您已经有了合适的输入 kspace 数据,smaps 等
fourier_op_sense = NonCartesianFFT(
    samples=kspace_loc,
    shape=image.shape,
    n_coils=cartesian_ref_image.shape[0],
    smaps=Smaps,
    implementation='gpuNUFFT',  # 使用 GPU 后端
)

print(fourier_op_sense)
<mri.operators.fourier.non_cartesian.NonCartesianFFT object at 0x7fa51013d310>
/home/home/miniconda3/envs/tensor/lib/python3.11/site-packages/mrinufft/operators/interfaces/gpunufft.py:146: UserWarning: no pinning provided, pinning existing smaps now.
  warnings.warn("no pinning provided, pinning existing smaps now.")
In [169]:
import os
print(os.environ.get('CUDA_HOME'))
/usr/local/cuda-12.6
In [170]:
import pysap

from mri.operators import NonCartesianFFT, WaveletUD2, WaveletN
from mri.operators.utils import convert_locations_to_mask, \
    gridded_inverse_fourier_transform_nd
from mri.reconstructors import SingleChannelReconstructor
from pysap.data import get_sample_data

# Third party import
from modopt.math.metrics import ssim
from modopt.opt.linear import Identity
from modopt.opt.proximity import SparseThreshold
import numpy as np
import matplotlib.pyplot as plt

Configuration¶

In [183]:
!nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Tue_Oct_29_23:50:19_PDT_2024
Cuda compilation tools, release 12.6, V12.6.85
Build cuda_12.6.r12.6/compiler.35059454_0
In [184]:
import tensorflow as tf
print(tf.__version__)  # 查看 TensorFlow 版本
print(tf.config.list_physical_devices('GPU'))  # 查看 GPU 设备
2.18.0
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
In [185]:
import torch
print(torch.__version__)  # 查看 PyTorch 版本
print(torch.cuda.is_available())  # 查看是否有 GPU 可用
print(torch.cuda.get_device_name(0))  # 查看使用的 GPU 名称
print(torch.version.cuda)  # 查看 CUDA 版本
2.7.0.dev20250224+cu126
True
NVIDIA T1200 Laptop GPU
12.6