|
{ inputs, ... }: |
|
{ |
|
perSystem = |
|
{ |
|
config, |
|
system, |
|
lib, |
|
pkgsCuda, |
|
... |
|
}: |
|
{ |
|
legacyPackages = |
|
let |
|
caps.llamaPackagesXavier = "7.2"; |
|
caps.llamaPackagesOrin = "8.7"; |
|
caps.llamaPackagesTX2 = "6.2"; |
|
caps.llamaPackagesNano = "5.3"; |
|
|
|
pkgsFor = |
|
cap: |
|
import inputs.nixpkgs { |
|
inherit system; |
|
config = { |
|
cudaSupport = true; |
|
cudaCapabilities = [ cap ]; |
|
cudaEnableForwardCompat = false; |
|
inherit (pkgsCuda.config) allowUnfreePredicate; |
|
}; |
|
}; |
|
in |
|
builtins.mapAttrs (name: cap: (pkgsFor cap).callPackage ./scope.nix { }) caps; |
|
|
|
packages = lib.optionalAttrs (system == "aarch64-linux") { |
|
jetson-xavier = config.legacyPackages.llamaPackagesXavier.llama-cpp; |
|
jetson-orin = config.legacyPackages.llamaPackagesOrin.llama-cpp; |
|
jetson-nano = config.legacyPackages.llamaPackagesNano.llama-cpp; |
|
}; |
|
}; |
|
} |
|
|