FTorch

FTorch is a library for coupling PyTorch models to Fortran. This is done by interfacing Fortran with the libtorch C++ backend underlying PyTorch, via the iso_c_binding module, which has been intrinsic to Fortran since the 2003 standard. It’s an interesting project to work on, as it involves working with code in Python, C, C++, and Fortran, amongst other languages, software frameworks, and tools used for testing, linting, scripting, and documentation.

I have been a core developer of FTorch since joining the Institute of Computing for Climate Science (ICCS).

Major contributions

  • Exposition of PyTorch’s autograd module in FTorch to enable automatic differentiation of mathematical expressions involving Torch Tensors.

  • Setting up and writing unit tests using the pFUnit unit test framework.

  • Enabling running on multiple GPU devices.

Outputs

  • FTorch software description paper: [1].

Projects