Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/marian-nmt/marian.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Junczys-Dowmunt <marcinjd@microsoft.com>2021-04-21 08:13:58 +0300
committerMarcin Junczys-Dowmunt <marcinjd@microsoft.com>2021-04-21 08:13:58 +0300
commit309bd748ab06283343711e06399472f3d279e1b6 (patch)
tree9119b8297309b0b4468b8608bdbd4fa4274fdb72
parent3e51ff387232f1096e9560980f0115ac734224f5 (diff)
parentbb6092da2b89c3882aa256480cef13081fd6f50f (diff)
Merge branch 'master' of github.com:marian-nmt/marian-dev into pmaster
-rw-r--r--CHANGELOG.md1
-rw-r--r--src/tensors/allocator.h5
-rw-r--r--src/tensors/device.h5
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: