bh107/bohrium
Automatic parallelization of Python/NumPy, C, and C++ codes on Linux and MacOSX
23 Releases
Latest: 7y ago
v0.11.0Latest
📋 Changes
- Introducing a new Python package, ``bh107``, which is a pure Python front-end that imitate NumPy.
v0.10.2
📋 Changes
- User kernels https://bohrium.readthedocs.io/users/python/index.html#userkernel
- Extended the C++ interface significantly https://bohrium.readthedocs.io/users/cpp.html
v0.10.1
📋 Changes
- Separation of the versions of Bohrium and Bohrium API.
- Simplified how to choose where the OpenCL backend should run.
- Set `BH_OPENCL_DEVICE_NUMBER` to the device number you want.
- Run `python -m bohrium_api --info` to see all available devices (and their numbers).
v0.10.0
📋 Changes
- Major code clean up
- Divided the Python fronted (bridge) into two parts: `bohrium_api` and `bohrium`.
- Added wheel packages with Python3.7
v0.9.2
📋 Changes
- Implement some GPU optimizations
- Dynamic views is changed (@skjoenberg):
- Now the sliding view information is transferred to the cxx bridge right after the view is flushed, instead of right after indexing. The sliding view information is now stored in a Python object called dynamic_view_info.
- Sliding views now allow changes to shape between iterations
- Sliding views now support broadcasting
- Sliding views now support nesting sliding views (such as a=[i:i+5], b=a[i])
- Iterators can now be in grids corresponding to nested loops. The iterators can not be mixed when indexing into the same dimension.
- Temporary arrays now inherit the dynamic changes of the views involved in the operation
v0.9.1
📋 Changes
- Implemented a malloc cache, which should speedup most applications
- Implemented lossy channels in the Proxy VEM
- Implemented `hstack()` and friends
v0.9.0
📋 Changes
- Now do_while() loop, and the new for_loop() supports sliding views (@skjoenberg): http://bohrium.readthedocs.io/users/python/index.html#sliding-views-between-iterations
- Building PyPI `manylinux1` packages for Python 2.7, 3.4, 3.5, and 3.6
- Building PyPI packages for Python 2.7 and 3.6 on Mac OSX 10.12 and 10.13
- The homebrew package is now deprecated
- Re-implemented signal handling -- we now use [libsigsegv](https://www.gnu.org/software/libsigsegv/).
v0.8.10
📋 Changes
- Now Bohrium will clean up the cache folder so that total number of cache files is less than 50000 files by default.
- Bohrium now has a `do_while()` function to replace Python for and while loop for better performance: http://bohrium.readthedocs.io/users/python/index.html#accelerate-loops
- Added Bohrium pip packages
- Fixed `np.mean()`
- Re-written the C/Python API
v0.8.9
📋 Changes
- Now backends cache the JIT code generation, which should speedup the execution with small data sets (see #436).
v0.8.8
📋 Changes
- Implemented a proxy component, which makes it possible to send array operations to a backend server over TCP/IP.
- `convolve()` and `correlate()` now works on pure numpy arrays as well as bohrium array.
- Now using a simpler fuser in special cases, which significantly reduce the fusion overhead (issue #425).
v0.8.7
📋 Changes
- `clang` can now use OpenMP with latest version of CMake
- `clang` will run with `-O3` when executing kernels
- Removed the `BH_SYNC` byte code
v0.8.6
📋 Changes
- Implemented interoperability (see http://bohrium.readthedocs.io/users/python/index.html#interoperability)
- Cython interoperability
- PyOpenCL interoperability
- PyCUDA interoperability
- Implemented `numpy.bincount()` using Cython, PyOpenCL, and PyCUDA
- Implemented Nd `convolve()` and `correlate()` (by @Thunderl3ear)
v0.8.5
Removed the NumCIL frontend and updated the docs
v0.8.4
📋 Changes
- Re-implementation of the C++ frontend
- Implemented profile context in Python e.g.:
- Implemented `correlate()` and `convolve()` (by Thorbjørn Koch)
- Implemented `argmin()` and `argmax()` for 1d arrays
v0.8.3
📋 Changes
- Fixed a `lib64` issue (#317)
- Fixed a `numpy.matlib` issue (#319)
- Henceforth, the VERSION file has to be manually updated when creating new releases
v0.8.2
📋 Changes
- Fixed a fatal bug when the version consist of three components.
- Fixed a segfault on shutdown when using OpenMP (@mfherbst)
v0.8.1
📋 Changes
- Added a CUDA backend (experimental)
- Added a VERSION file
- Clean up and Bug fixes
v0.8
📋 Changes
- Added support of fancy indexing of multi dimension arrays
- Fixed BLAS & LAPACK dependencies in the Conda build (@dionhaefner)
- Added Ubuntu 17.04 package build
- Now `bohrium.where()` handles `NaN` values (@dionhaefner)
- Fixed the CG solver see #311 (@dionhaefner)
v0.7
📋 Changes
- Fixed signed integer division so it matches Python/NumPy
- Added a TDMA solver (by @dionhaefner)
- Fixed many bugs and added python tests to verify the fixes
- Added support of `np.take()` and `np.put()`
- Added support of fancy indexing of vectors such as `a[[3,2,1]] = a[[1,2,5]]`
- Added OpenMP and OpenCL implementation of *some* LAPACK functions (as extension methods)
- Added Conjugate gradient
- Removed dependency of Cheetah
- + 1 more
v0.6
📋 Changes
- Fully MacOS support (both OpenMP and OpenCL)
- Conda/Anaconda support (linux-64)
- Reduced the overhead of the fusers significantly
- Improved the compiler cache hit rate significantly
- Implemented scalar assignment to masked array e.g.: `a[a>42] = 7`
- Implemented np.where(), which can be used instead of masked array in most cases
- Implemented OpenMP and OpenCL implementation of BLAS (as extension methods)
- Fixed many bugs and added python tests to verify the fixes
v0.5
📋 Changes
- Fixed MAJOR memory leak
- Cleanup of both the OpenCL and OpenMP backend
- Fixed many bugs and added python tests to verify the fixes
Christmas Releasev0.4
📋 Changes
- Introducing two new backends: OpenMP and OpenCL.
- The OpenMP backend is now the default backend
- Python v3 support
v0.3
After almost 3000 commits, it is time for a new release :)
