Skip to content

Releases: ProteusMRIgHIFU/BabelViscoFDTD

Support in Rayleigh module in ARM64 Metal of macOS Monterey and up

05 Mar 22:34
Compare
Choose a tag to compare
1.0.6

change compilation flags for ARM64 Rayleigh module to support Montere…

Fix PML issue on one of the boundaries when using Metal backend

26 Feb 21:31
Compare
Choose a tag to compare
  • Fix an issue of reflections on one of the sides of the domain when using Metal backend
  • Improve Swift Metal for Rayleigh calculations, passing scalar parameters now using an structure rather than buffers.
  • Add the possibility to limit Rayleigh calculations to only certain distance, useful when forward propagating between Rayleigh and domains that are very close to the Rayleigh source. The Rayleigh functions now accept an optional MaxDistance parameter, which is >0, limits Rayleigh calculations to be less or equal to that distance. Use this with caution.

Finally, R1.0.0 is reached

30 Jan 18:19
Compare
Choose a tag to compare

After a two-year marathon cycle of development and intense testing, and to celebrate the public release of BabelBrain into the wild, the R1.0.0 of BabelViscoFDTD is achieved. The last stretch involved mainly improving the use in Windows and Linux. PyCUDA was replaced by cupy, which helped simplify the number of GPU libraries when working with BabelBrain. A voxel-level correction coefficient for $Q$-factor attenuation was added to facilitate the study of mapping procedures for acoustic attenuation.

List GPU devices

16 Nov 20:33
Compare
Choose a tag to compare

Add functions to list devices supported by computing backends

Fixing issue of mapping of properties

08 Nov 21:51
Compare
Choose a tag to compare

Fix an issue with the mapping of unique values when attenuation is used. It could cause some divisions by zero

Small fix to add missing entry in MANIFEST.in

24 Sep 04:09
Compare
Choose a tag to compare

A CMakeLists.txt file was missing

A lot of code simplification

01 Sep 22:59
Compare
Choose a tag to compare

A lot of simplifications allowed having a much more straightforward code. Thanks to Andrew Xie (@IAmAndrewX) for a very productive summer trimming down code, replacing the old MTLPP with Swift, and making a new class arrangement for the different GPU backends. Now BabelViscoFDTD is based completely on PyOpenCL and PyCUDA for the FDTD viscoelastic solver. For Metal, the Swift-based wrapper does the interfacing. The old C extension is still around just for the OpenMP backend.

Replace MTLPP C++ wrapper with Swift

08 Jul 02:19
Compare
Choose a tag to compare

The MTLPP C++ library is now replaced by a Swift interface to access the Metal implementation for the viscoelastic FDTD solution. This will ensure using a more standard Apple development language for the future, as MTLPP is not maintained anymore. While there is a new Apple-based C++ wrapper for Metal, using Swift is still preferred as we created now a C-linking compatible library that in the future can be also used directly in Python. In the long term, we aim to eliminate the C code extension and use only Python code in tandem with pyopencl, pycuda and Metal.

Make OpenMP for X64 experimental

27 Jun 16:12
Compare
Choose a tag to compare

OpenMP for X64 in Mac is being turned back as an experimental feature as some systems are unable to run with it correctly and there is not a clear path on how to ensure this will be stable. While on our current systems we haven't had any issues, some users are having trouble just importing the library when OpenMP is enabled, so for the time being we will turn OpenMP for X64 as experimental. The feature will remain accessible if installing the library with the BABEL_MAC_OPENMP_X64 option enabled. OpenMP remains turned on by default for ARM64 (M1 and M2 processors), and Linux and Windows systems.

Small fix for OpenCL in X86-64 in Mac

16 Jun 22:47
Compare
Choose a tag to compare

Small fix for OpenCL execution in X86_64 for MacOS. During the tests with Metal some kernels were renamed, and the version for X86_64 for Mac was missed to be updated for that kernel renaming.