Pytorch takes a while to compile (> 30 minutes) and is wildly computationally intensive. For developers, this is a huge pain-point.
While the nix philosophy is all about reproducibility, maybe it's okay if we ease up on that promise for developers by using cached versions of pytorch. It's a fairly popular library, so perhaps justifiable?
Managed through Git Submodules (this introduces operational burden for developers)
2. Download Pre-builts
It's also possible for us to define the torch derivations locally in nix/pkgs and just pull pre-built versions from urls. This is described in post /#24 in Improving NixOS data science infrastructure
Pytorch takes a while to compile (> 30 minutes) and is wildly computationally intensive. For developers, this is a huge pain-point.
While the nix philosophy is all about reproducibility, maybe it's okay if we ease up on that promise for developers by using cached versions of pytorch. It's a fairly popular library, so perhaps justifiable?
Here are a few (non-exhaustive) options:
1. Use PytorchWorld
One approach is to use PyTorchWorld: Nix scripts for pytorch related libraries
Advantages:
Disadvantages:
2. Download Pre-builts
It's also possible for us to define the torch derivations locally in
nix/pkgs
and just pull pre-built versions from urls. This is described in post /#24 in Improving NixOS data science infrastructureAdvantages:
Disadvantages
I'm actually leaning towards option 2.