|
1 | 1 | Stan Math Library Release Notes
|
2 | 2 | ======================================================================
|
3 | 3 |
|
| 4 | +v2.19.0 (20 Mar 2019) |
| 5 | +====================================================================== |
| 6 | +Slow to arrive, but fast to compute: Stan has GPU support! |
| 7 | + |
| 8 | +Stan 2.19 brings GPU-optimized computation to Stan users. The first supported |
| 9 | +function is Cholesky decomposition, the main bottleneck of many common |
| 10 | +statistical models. Activating GPU support is easy - only a few lines are added |
| 11 | +to the configuration and no changes have to be made to the Stan model. Cholesky |
| 12 | +decompositions of larger matrices (including their gradients, when dealing with |
| 13 | +parameters) are then automatically transferred to the GPU with speedups ranging |
| 14 | +from 10 to 30, depending on matrix size and GPU. |
| 15 | + |
| 16 | +Other GPU-optimized matrix algebra primitives and common statistical models are |
| 17 | +soon to follow: matrix multiplication, lower triangular inverse, |
| 18 | +eigendecomposition, GP covariance functions and several GLMs. The implementation |
| 19 | +is based on OpenCL, so it can be used with any GPU and GPU programming-savvy |
| 20 | +users can also add their own custom OpenCL kernels. |
| 21 | + |
| 22 | +New Features |
| 23 | +------------ |
| 24 | +- GPU |
| 25 | + - matrix multiplication (#974) |
| 26 | + - inverse of lower triangular matrix (#1028) |
| 27 | + - Operator overloading for GPU functions (#1056) |
| 28 | + - Cholesky decomposition (#1058) |
| 29 | + - specialized reverse-mode implementation for cholesky decompse (#1117) |
| 30 | +- Host doxygen API doc on https://mc-stan.org/math/ (#500) |
| 31 | +- Makefile completely rewritten (#581, #954, #1041, #1043, #1087) |
| 32 | +- Adding `beta_proportion` distribution (#1018) |
| 33 | +- adjoint vector-Jacobian product form of precomputed gradients for reverse (#876) |
| 34 | +- Add alternative inv_logit parameterization to prevent underflow (#874) |
| 35 | + |
| 36 | + |
| 37 | +Bug Fixes |
| 38 | +--------- |
| 39 | +- Improved derivative for Gamma CDF w.r.t. alpha (#525) |
| 40 | +- `value_of` incorrectly returned the wrong type (#968) |
| 41 | +- `sum` incorrectly returned the wrong type (#987) |
| 42 | +- `matrix_exp` incorrectly passed the argument by values (#769) |
| 43 | +- Unit testing with Windows on Jenkins (#1046) |
| 44 | +- `gp_cov_exp_quad` was computing the ARD mixing up rows and cols (#984) |
| 45 | +- Fixing GoodGammaP for gcc 7.3 (#1063) |
| 46 | + |
| 47 | +Other |
| 48 | +----- |
| 49 | + |
| 50 | +- Clarity on what's being tested in Math (one compiler per OS) (#943) |
| 51 | +- Updated GitHub templates (#911) |
| 52 | +- Improve ODE speed (#1049) |
| 53 | +- Fix tests for threading (#1058) |
| 54 | +- Upgrade Google Test to v1.8.1 (#1051) |
| 55 | +- Upgrade Sundials to v4.1.0 (#1097) |
| 56 | +- Matrix exponential action: |
| 57 | + - A fast implementation was implemented (#771), but it had errors (#) |
| 58 | + - Currently, a slow implementation is in the codebase. |
| 59 | +- Improve the codebase: |
| 60 | + - Code spacing (#587) |
| 61 | + - Using varidic template parameters for `return_type`, `partials_return_type`, |
| 62 | + and `include_summands` (#977) |
| 63 | + - Fixing math constants definitions for Windows (#986) |
| 64 | + - Avoid ambiguous instantiation of `math::sqrt()` by implementing for `double` |
| 65 | + and `int` (#712) |
| 66 | + - Clean up GPU code: |
| 67 | + - Seperate OpenCL kernel access into it's own class (#973) |
| 68 | + - `read_only` and `write_only` decorators in GPU kernels fail in Windows (#1034) |
| 69 | + - Fixing uninitialized values in tests: |
| 70 | + - `bernoulli_logit_glm_lpdf` test (#995) |
| 71 | + - `check_greater` test (#819) |
| 72 | + - `gp_exponential_cov_test` failing (#1150) |
| 73 | + - Updating template parameters of matern32 (#981) |
| 74 | + - Update `gp_dot_prod_cov` (#979) |
| 75 | + - Deprecating old GP covariance function names (#756) |
| 76 | + - Fixed compiler warnings in `test-headers` (#1110) |
| 77 | + - Adding required headers (#1106) |
| 78 | + - Turn test-math-dependencies warnings into failures on Jenkins (#1078) |
| 79 | + - Replace `boost::type_traits` with `std::` versions (#1126) |
| 80 | + - Fix doxygen errors (#1139)za |
| 81 | + - Clean up anaonymous namespace usage (#1006) |
| 82 | + - Setting STAN_NUM_THREADS to illegal value should produce an error (#947) |
| 83 | + |
| 84 | + |
4 | 85 | v.2.18.1 (24 December 2018)
|
5 | 86 | ======================================================================
|
6 | 87 | Bugfix release - major bug in threading where certain thread count and
|
|
0 commit comments