{ inputs.jungle.url = "git+https://jungle.bsc.es/git/rarias/jungle"; outputs = { self, jungle }: let nixpkgs = jungle.inputs.nixpkgs; customOverlay = (final: prev: { # Build blis for Fox architecture and without OpenMP amd-blis = (prev.amd-blis.override { withOpenMP = false; withArchitecture = "zen4"; }).overrideAttrs (old: { hardeningDisable = [ "all" ]; }); # Disable OpenMP in flame amd-libflame = (prev.amd-libflame.override { withOpenMP = false; }).overrideAttrs (old: { hardeningDisable = [ "all" ]; }); # Build bench6 with blis bench6 = prev.bench6.overrideAttrs (old: { buildInputs = with final; [ bigotes openmp openmpv nanos6 nodes nosv mpi tampi ovni amd-blis amd-libflame ]; cmakeFlags = (old.cmakeFlags or []) ++ [ "-DCBLAS_INCLUDE_DIR=${final.amd-blis}/include/blis" "-DLAPACKE_INCLUDE_DIR=${final.amd-libflame}/include" "-DLAPACKE_LIBRARY=${final.amd-libflame}/lib/liblapacke.so.3" ]; }); }); pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ jungle.outputs.bscOverlay customOverlay ]; }; in { devShells.x86_64-linux.default = pkgs.mkShell { pname = "devshell"; packages = with pkgs; [ bench6 bigotes ministat ]; }; packages.x86_64-linux.bench6 = pkgs.bench6; }; }