Changelog
All notable
changes to the project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
For specific details see the FTorch online documentation.
Added
Changed
Removed
Removed
Fixed
Patch Releases
1.1.0 - 2026-02-26
GitHub diff with v1.0.0
Added
- Add unit testing for the Torch Model with multiple input/output tensors and batching
capabilities. #559
- Add documentation for release preparation of FTorch. #552
- Add documentation on FTorch's unit testing approach. #489
- Batching in FTorch documented, including a new worked example, in
#500.
- Add subroutine for printing parameters associated with a Torch Model
#488
- Add unit testing for the Torch Model API #496
- Provide support for using FTorch with pkg-config. #464
- Support building FTorch as a static library. #448
- Intel-ifx and Intel-ifort CI and GCC v9-13 CI. Intel CI builds OpenMPI from source to accomodate MPI integration tests #438
- Expose tensor strides via
get_stride method #416
- Remove
UNIX preprocessor variable that selected the right C-integer type for 64bit int. Use int64_t instead #416
- A new cmake option
MULTI_GPU to control the build of multi GPU integration tests in #410
- Support for AMD GPU backends (HIP) provided in
#385 and
#388.
requires_grad property hooked up to torch_tensor in #288
- MPI example added in #270
- Changelog file and guidance for versioning added in #313
- A new tensor manipulation demo was introduced in #291.
- Backpropagation implemented with
torch_tensor_backward and
torch_tensor_get_gradient in #286
- Zeroing of gradients associated with a tensor implemented in
#341.
- Exposed
retain_graph argument for torch_tensor_backward in
#342.
- Implemented
torch_tensor_zero and class method alias in
#338.
- Provided interface for
torch_tensor_from_array with default layout in
#348.
- Overload taking sum and mean of tensors in
#344.
Changed
- Improve FTorch's modularisation under the hood by breaking single Fortran file down into submodules in #508
- Example numbers were bumped to account for new worked examples in
#291 and
#500.
- Bump the minimum CMake version from 3.15 to 3.18, for consistency with what's
used in PyTorch. #491
- Significant overhaul of the online FORD documentation and reduction of content in the README
in #459
- Intel CI now uses Intel oneAPI MPI instead of OpenMPI built with Intel compilers #449
- FTorch library (
libftorch.so) produced by cmake installation now has RUNPATH that contains path to Torch library directory. Downstream targets linking against FTorch can now find the Torch dependency automatically and will compile successfully #437.
- In all
CMakeLists.txt where find_package(FTorch) was present, now using REQUIRE if not building tests to stop the cmake configuation process early for users who only wish to build examples in #434
- fortitude dependency version increased to 0.7.0
- Examples reordered to be more logical in #317
- scalar multiplication/division of tensors reworked to require the scalar to first be mapped to a
torch_tensor in #289
- The unit tests for constructing and destroying tensors were separated out in
#319
- Use interface for
torch_tensor_from_array with default layout in tests and
examples in #348.
- Error handling in
ctorch.cpp improved in #347.
Removed
torch_tensor_array_delete was removed in favour of using elemental
torch_tensor_delete instead in #545.
Users should be using the torch_delete interface so not be impacted and thus this
is not considered a breaking change.
Fixed
- Finalizer for
torch_tensors (torch_tensor_delete) was made elemental in
#545. This fixes a possible
issue whereby users could experience a memory leak if not explicitly deleting arrays
of tensors. Now, being elemental, the finalizer will get called on both single tensors
and arrays of tensors when they go out of scope. As such torch_tensor_array_delete
was removed (use torch_tensor_delete instead).
- Make input array for
torch_tensor_from_array have the pointer, contiguous
properties rather than target
#530. This change
technically breaks the API because it becomes no longer possible to pass
temporary Fortran arrays to the second argument of torch_tensor_from_array.
However, that was a bug rather than a feature, so any workflow crashes due to
this change will provide the user with information on how to remove the error.
Patch Releases
1.0.0 - 2025-03-05
Added
- First release of FTorch accompanying pulication in JOSS
- MIT License
- Notable features of the library include:
- Representation of Torch tensors and models in Fortran
- Ability to run inference of Torch models from Fortran
- Early implementation of autograd features for Torch tensors in Fortran
- Comprehensive examples suite showcasing usage
- Testing suites:
- Unit, using pFUnit
- Integration, based on examples
- Code quality and static analysis checks
- Documentation:
- README.md and associated files in repository
- Online API and comprehensive docs build using FORD