Hi,
Gadgetron and the Generic_Cartesian_Grappa.xml recon chain with two-step coil compression helps me a lot. Thank you very much.
I found a problem: my Gadgetron installation compiled with MKL run in single thread mode during GenericEigenChannelGadget, and during SolveLinearSystem_Tikhonov(A, B, x, thres); for GRAPPA/SPIRiT calibration, etc, just like without MKL. If I run the coil compression gadget and grappa gadget as standalone apps, they can call multi thread MKL, and speedup the above computations a lot (e.g. Upstream CoilCompression: from 90s to 20s, Calibration: from 120s to 30s).
cmake ../ in gadgetron folder (no modification to the source code) reported that:
Armadillo is found to use long long for BLAS calls
MKL is found at /opt/intel/mkl
MKL is linked against ILP64 interface ...
-- Found MKL libraries: mkl_intel_ilp64;mkl_intel_thread;iomp5;mkl_core
-- MKL_INCLUDE_DIR: /opt/intel/mkl/include
-- MKL_LIB_DIR: /opt/intel/mkl/lib/intel64
-- MKL_COMPILER_LIB_DIR: /opt/intel/compiler/lib/intel64;/opt/intel/lib/intel64
find MKL version : 11.3.0
-- A library with BLAS API found.
-- A library with BLAS API found.
-- A library with LAPACK API found.
LAPACK Found
MKL Found, enabling MKL for mri_core gadgets.
Armadillo was installed via "sudo apt-get install libarmadillo-dev" on Ubuntu 14.04.03. No modification to /usr/include/armadillo_bits/config.hpp except enabling long long definition.
ldd libgadgetron_mricore.so also showed that MKL was linked successfully:
libmkl_intel_ilp64.so => /opt/intel/mkl/lib/intel64/libmkl_intel_ilp64.so (0x00007f9f286a2000)
libmkl_intel_thread.so => /opt/intel/mkl/lib/intel64/libmkl_intel_thread.so (0x00007f9f2734b000)
libmkl_core.so => /opt/intel/mkl/lib/intel64/libmkl_core.so (0x00007f9f25a66000)
libiomp5.so => /opt/intel/lib/intel64/libiomp5.so (0x00007f9f2c48c000)
These libraries was asked by MKL according to MKL link advisor tool.
Would you please to show me how to make sure Gadgetron run with multi threading MKL library?
Thank you.
Best wishes,
Jia Sen