BlochSolver is a fast 3D MRI simulator accelerated by graphics processor units (GPUs).

The structure of BlochSolver is shown below.

BlochSolver requires a numerical phantom, system parameter maps, and a pulse sequence.

The numerical phantom consists of a proton density map, T1 map, T2 map, diffusion coefficient map, etc.

System parameter maps consist of B0 map (inhomogeneity or resonance frequency map), B1 map (transmission and reception), gradient field map (nonlinearity). 

The pulse  sequence can be developed using Python pulse sequence development kit (Python PSDK) described in this website.

 

The biggest advantage of this simulator is the calculation speed [1].

 

The processing speed was measured using two GPUs (GTX 1080 x 2, 2,560 cores x 2) and two Xeon CPUs (E5-2699v3, 18 cores x 2). For Xeon programming, AVX2 streaming SIMD Extension was used. The pulse sequence was RF spoiled gradient echo sequence with 256 x 256 x 32 voxels (65 subvoxels for readout direction) and 52,202,496 isochromats were used for the simulation. The actual calculation time was 157.469 s and 2161.409 s for GPUs and CPUs (with AVX2) [1].

GPU (GTX 1080, NVIDIA)          CPU (Xeon E5-2699v3, Intel)

Gaming laptop PCs are useful devices for BlochSolver:

Reference

[1] Kose R, Kose K. BlochSolver: A GPU-optimized fast 3D MRI simulator for experimentally compatible pulse sequences. J Magn Reson 2017;281:51-65.