diff options
author | Marcin Junczys-Dowmunt <marcinjd@microsoft.com> | 2021-04-21 08:13:58 +0300 |
---|---|---|
committer | Marcin Junczys-Dowmunt <marcinjd@microsoft.com> | 2021-04-21 08:13:58 +0300 |
commit | 309bd748ab06283343711e06399472f3d279e1b6 (patch) | |
tree | 9119b8297309b0b4468b8608bdbd4fa4274fdb72 | |
parent | 3e51ff387232f1096e9560980f0115ac734224f5 (diff) | |
parent | bb6092da2b89c3882aa256480cef13081fd6f50f (diff) |
Merge branch 'master' of github.com:marian-nmt/marian-dev into pmaster
-rw-r--r-- | CHANGELOG.md | 1 | ||||
-rw-r--r-- | src/tensors/allocator.h | 5 | ||||
-rw-r--r-- | src/tensors/device.h | 5 |
3 files changed, 7 insertions, 4 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 752847e1..dafb1ae2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Dynamic gradient-scaling with `--dynamic-gradient-scaling`. - Add unit tests for binary files. - Fix compilation with OMP +- Compute aligned memory sizes using exact sizing ### Fixed - Missing depth-scaling in transformer FFN diff --git a/src/tensors/allocator.h b/src/tensors/allocator.h index 9dc44f58..1844be14 100644 --- a/src/tensors/allocator.h +++ b/src/tensors/allocator.h @@ -175,8 +175,9 @@ public: reserve(bytes); } - size_t alignedSize(size_t size) { - return (size_t)(ceil(size / (double)alignment_) * alignment_); + size_t alignedSize(size_t size) const { + size_t over = size + alignment_ - 1; + return over - (over % alignment_); } void throwAtReallocation(bool throwRealloc) { throw_ = throwRealloc; } diff --git a/src/tensors/device.h b/src/tensors/device.h index 0be6c076..5fe3c1fb 100644 --- a/src/tensors/device.h +++ b/src/tensors/device.h @@ -15,8 +15,9 @@ protected: size_t size_{0}; size_t alignment_; - size_t align(size_t size) { - return (size_t)(ceil(size / (float)alignment_) * alignment_); + size_t align(size_t size) const { + size_t over = size + alignment_ - 1; + return over - (over % alignment_); } public: |