Giter Club home page Giter Club logo

Comments (14)

Mic92 avatar Mic92 commented on September 15, 2024 2

https://nix.dev/manual/nix/2.23/command-ref/conf-file.html#conf-narinfo-cache-negative-ttl I would expect this setting would be used for caching cache status. You can check 'nix-build -vvvvv --dry-run' to debug in nix if this is the case.

from evanix.

sinanmohd avatar sinanmohd commented on September 15, 2024 1

i tried running evanix & nix-eval-jobs on https://github.com/ggerganov/llama.cpp

$ time evanix --dry-run --system x86_64-linux --flake --max-build 555 --pipelined=false --solver-report .#packages

real    0m15.625s
user    0m0.001s
sys     0m0.004s

$ time nix-eval-jobs --force-recurse --flake .#packages

real    0m15.877s
user    0m7.297s
sys     0m3.474s

the time taken should not vary that much

from evanix.

sinanmohd avatar sinanmohd commented on September 15, 2024 1

master without locality check (all drvs need to built)

$ time evanix --flake .#legacyPackages.x86_64-linux --dry-run --max-build 2147483647

real    5m35.859s
user    0m2.344s
sys     0m0.923s

from evanix.

sinanmohd avatar sinanmohd commented on September 15, 2024 1

So when you say "without locality check (all drvs need to built)" you mean cost=(1, 1, ..., 1) without zeros?

yes

from evanix.

sinanmohd avatar sinanmohd commented on September 15, 2024

the 6s nix-eval-jobs eval is probably because of only evaluating #packages.x86_64-linux
nix-eval-jobs --flake .#packages.x86_64-linux

you can get a similar performance from evanix with
evanix --dry-run --flake .#packages.x86_64-linux

where as --system x86_64-linux still evaluates everything in #packages and drops derivations with mismatched system

from evanix.

SomeoneSerge avatar SomeoneSerge commented on September 15, 2024

Running on Nixpkgs:

git rev-parse HEAD
504ca45f5c2342f36c33312be19921077f38679etime nix run github:sinanmohd/evanix -- --system x86_64-linux --flake .#legacyPackages.x86_64-linux --dry-run --max-build 50000 > evanix.stdout 2>evanix.stderr
real    263m52.738s
user    0m7.048s
sys     0m17.988s

Nix-eval-jobs finishes in just over 3 minutes:

nix develop github:sinanmohd/evanix --command -- time nix-eval-jobs --flake .#legacyPackages.x86_64-linux >nix-eval-jobs.stdout 2>nix-eval-jobs.stderrtail nix-eval-jobs.stderr  -n2
200.85 user 88.72 system 9:02.31 elapsed 53% CPU (0avgtext+0avgdata 4434872maxresident)k
447568inputs+253408outputs (1major+12985415minor)pagefaults 0swaps

from evanix.

sinanmohd avatar sinanmohd commented on September 15, 2024

master without locality check (all drvs need to built)

$ time evanix --flake .#legacyPackages.x86_64-linux --dry-run --max-build 2147483647
real    17m9.733s
user    14m35.086s
sys     0m1.427s

nix-eval-jobs


$ time nix-eval-jobs --flake .#legacyPackages.x86_64-linux
real    5m20.245s
user    3m11.060s
sys     1m11.604s

from evanix.

SomeoneSerge avatar SomeoneSerge commented on September 15, 2024

without locality check (all drvs need to built)

How do you turn this mode on/off? WHen you turn this on, does any selection algorithm run at all (e.g. the way I imagine this is you'd compute the full closure, and generate an all-1s "value" vector)?

from evanix.

sinanmohd avatar sinanmohd commented on September 15, 2024

the solver is still in use here, i used to have a patch on git stash
now you can use --cache-status=false on master

from evanix.

SomeoneSerge avatar SomeoneSerge commented on September 15, 2024

the solver is still in use here, i used to have a patch on git stash

👍🏻 but what are the inputs to the solver?

from evanix.

sinanmohd avatar sinanmohd commented on September 15, 2024

yes, if you mean cost vector by value. cache locality check sets cost to 0 for substituter cached derivatives.
but we entirely remove locally cached dependencies from the DAG.

from evanix.

SomeoneSerge avatar SomeoneSerge commented on September 15, 2024

So when you say "without locality check (all drvs need to built)" you mean cost=(1, 1, ..., 1) without zeros?

from evanix.

SomeoneSerge avatar SomeoneSerge commented on September 15, 2024

Btw, could you open an issue upstream (nix-eval-jobs) about --check-cache-status and include a reproducer, demonstrating the overhead present on the second and further runs? This might even be an issue with CppNix...

from evanix.

sinanmohd avatar sinanmohd commented on September 15, 2024

from evanix.

Related Issues (7)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.