Spaces:
Build error
Build error
| { inputs, ... }: | |
| { | |
| # The _module.args definitions are passed on to modules as arguments. E.g. | |
| # the module `{ pkgs ... }: { /* config */ }` implicitly uses | |
| # `_module.args.pkgs` (defined in this case by flake-parts). | |
| perSystem = | |
| { system, ... }: | |
| { | |
| _module.args = { | |
| # Note: bringing up https://zimbatm.com/notes/1000-instances-of-nixpkgs | |
| # again, the below creates several nixpkgs instances which the | |
| # flake-centric CLI will be forced to evaluate e.g. on `nix flake show`. | |
| # | |
| # This is currently "slow" and "expensive", on a certain scale. | |
| # This also isn't "right" in that this hinders dependency injection at | |
| # the level of flake inputs. This might get removed in the foreseeable | |
| # future. | |
| # | |
| # Note that you can use these expressions without Nix | |
| # (`pkgs.callPackage ./devops/nix/scope.nix { }` is the entry point). | |
| pkgsCuda = import inputs.nixpkgs { | |
| inherit system; | |
| # Ensure dependencies use CUDA consistently (e.g. that openmpi, ucc, | |
| # and ucx are built with CUDA support) | |
| config.cudaSupport = true; | |
| config.allowUnfreePredicate = | |
| p: | |
| builtins.all ( | |
| license: | |
| license.free | |
| || builtins.elem license.shortName [ | |
| "CUDA EULA" | |
| "cuDNN EULA" | |
| ] | |
| ) (p.meta.licenses or [ p.meta.license ]); | |
| }; | |
| # Ensure dependencies use ROCm consistently | |
| pkgsRocm = import inputs.nixpkgs { | |
| inherit system; | |
| config.rocmSupport = true; | |
| }; | |
| }; | |
| }; | |
| } | |