1{ inputs, ... }:
2{
3 perSystem =
4 {
5 config,
6 system,
7 lib,
8 pkgsCuda,
9 ...
10 }:
11 {
12 legacyPackages =
13 let
14 caps.llamaPackagesXavier = "7.2";
15 caps.llamaPackagesOrin = "8.7";
16 caps.llamaPackagesTX2 = "6.2";
17 caps.llamaPackagesNano = "5.3";
18
19 pkgsFor =
20 cap:
21 import inputs.nixpkgs {
22 inherit system;
23 config = {
24 cudaSupport = true;
25 cudaCapabilities = [ cap ];
26 cudaEnableForwardCompat = false;
27 inherit (pkgsCuda.config) allowUnfreePredicate;
28 };
29 };
30 in
31 builtins.mapAttrs (name: cap: (pkgsFor cap).callPackage ./scope.nix { }) caps;
32
33 packages = lib.optionalAttrs (system == "aarch64-linux") {
34 jetson-xavier = config.legacyPackages.llamaPackagesXavier.llama-cpp;
35 jetson-orin = config.legacyPackages.llamaPackagesOrin.llama-cpp;
36 jetson-nano = config.legacyPackages.llamaPackagesNano.llama-cpp;
37 };
38 };
39}