Recent Releases of babelviscofdtd
babelviscofdtd - Support in Rayleigh module in ARM64 Metal of macOS Monterey and up
- Jupyter Notebook
Published by spichardo almost 2 years ago
babelviscofdtd - Fix PML issue on one of the boundaries when using Metal backend
- 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.
- Jupyter Notebook
Published by spichardo about 2 years ago
babelviscofdtd - Finally, R1.0.0 is reached
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.
- Jupyter Notebook
Published by spichardo about 3 years ago
babelviscofdtd - List GPU devices
Add functions to list devices supported by computing backends
- Jupyter Notebook
Published by spichardo over 3 years ago
babelviscofdtd - Fixing issue of mapping of properties
Fix an issue with the mapping of unique values when attenuation is used. It could cause some divisions by zero
- Jupyter Notebook
Published by spichardo over 3 years ago
babelviscofdtd - Small fix to add missing entry in MANIFEST.in
A CMakeLists.txt file was missing
- Jupyter Notebook
Published by spichardo over 3 years ago
babelviscofdtd - A lot of code simplification
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.
- Jupyter Notebook
Published by spichardo over 3 years ago
babelviscofdtd - Replace MTLPP C++ wrapper with Swift
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.
- Jupyter Notebook
Published by spichardo over 3 years ago
babelviscofdtd - Make OpenMP for X64 experimental
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 BABELMACOPENMP_X64 option enabled. OpenMP remains turned on by default for ARM64 (M1 and M2 processors), and Linux and Windows systems.
- Jupyter Notebook
Published by spichardo over 3 years ago
babelviscofdtd - Small fix for OpenCL in X86-64 in Mac
Small fix for OpenCL execution in X8664 for MacOS. During the tests with Metal some kernels were renamed, and the version for X8664 for Mac was missed to be updated for that kernel renaming.
- Jupyter Notebook
Published by spichardo over 3 years ago
babelviscofdtd - 0.9.6-1
Fixed bug with domain size calculations in CUDA when no mini kernels are used (the default mode for CUDA)
- Jupyter Notebook
Published by spichardo about 4 years ago
babelviscofdtd - Improved Metal performance
Thanks to some exchanges with the Apple Engineers in their Developers forums, some refined implementation of the main kernels was done where the computations are split in "mini-kernels". All Metal-based tests showed an increase in performance.
- Jupyter Notebook
Published by spichardo about 4 years ago
babelviscofdtd - Improved operation and support for package distribution
- This is the first one to be distributed through package distribution
- Added capabilities to provide user-specified dimensions of blocks for computations for fine-tuning of performance
- Jupyter Notebook
Published by spichardo about 4 years ago
babelviscofdtd - Improved Metal and OpenCL support
Metal now supports large domain simulations and OpenCL is now supported across all OSs.
- Jupyter Notebook
Published by spichardo over 4 years ago
babelviscofdtd - Add GPU-accelerated Rayleigh integral as a tool
In v0.9.2 Rayleigh integral was added a tool (see tutorial Tutorial Notebooks\Tools -1 - Rayleigh Integral.ipynb). This will be useful to combine models that include large volumes of water as Rayleigh integral benefits considerably of a GPU and the model is hyperparallel. The tool has support for 3 GPU backends: CUDA for Windows and Linux, and Metal and OpenCL for MacOS.
Given the simplicity of the kernel, for the Rayleigh integral we use pycuda and pyopencl to compile the kernel directly in the Python library. For Metal, a wrapper written in Swift language is compiled during the installation.
- Jupyter Notebook
Published by spichardo over 4 years ago
babelviscofdtd - Pressure calculations integrated
In principle, the pressure is often calculated via acoustic models, but it is possible to calculate the pressure in the viscoelastic models as a byproduct of the particle velocity. In our old analysis, we did this offline but it was not hard to add those calculations directly in the library,
- Jupyter Notebook
Published by spichardo about 5 years ago
babelviscofdtd - Very first public stable release - reissuing after detecting a basic compilation error
First public release
- Jupyter Notebook
Published by spichardo about 5 years ago