Context:
Pytorch has some bugs related to setting values for tensors to scalars when using torch.use_deterministic_algorithms(True) that were only addressed in most recent Pytorch versions. See:
The scalar attribution in beam_search.forward would throw:
RuntimeError: linearIndex.numel()*sliceSize*nElemBefore == value.numel()INTERNAL ASSERT FAILED at "/pytorch/aten/src/ATen/native/cuda/Indexing.cu":250, please report a bug to PyTorch. number of flattened indices did not match number of elements in the value tensor31
when running with torch.use_deterministic_algorithms(True).
The change in the PR did not have any changes in performance, but works around the 2 bugs mentioned above.
Testing done:
Ran with a custom model, using torch.use_deterministic_algorithms(True)
Pull Request Checklist
[x] Changes are complete (if posting work-in-progress code, prefix your pull request title with '[WIP]'
until you can check this box.
[x] Unit tests pass (pytest)
[x] Were system tests modified? If so did you run these at least 5 times to account for the variation across runs?
[x] System tests pass (pytest test/system)
[x] Passed code style checking (./style-check.sh)
[x] You have considered writing a test
[x] Updated major/minor version in sockeye/__init__.py. Major version bump if this is a backwards incompatible change.
[x] Updated CHANGELOG.md
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Context: Pytorch has some bugs related to setting values for tensors to scalars when using torch.use_deterministic_algorithms(True) that were only addressed in most recent Pytorch versions. See:
The scalar attribution in beam_search.forward would throw:
when running with torch.use_deterministic_algorithms(True).
The change in the PR did not have any changes in performance, but works around the 2 bugs mentioned above.
Testing done:
torch.use_deterministic_algorithms(True)
Pull Request Checklist
pytest
)pytest test/system
)./style-check.sh
)sockeye/__init__.py
. Major version bump if this is a backwards incompatible change.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.