Comments (14)
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.
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.
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.
So when you say "without locality check (all drvs need to built)" you mean
cost=(1, 1, ..., 1)
without zeros?
yes
from evanix.
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.
Running on Nixpkgs:
❯ git rev-parse HEAD
504ca45f5c2342f36c33312be19921077f38679e
❯ time 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.stderr
❯ tail 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.
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.
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.
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.
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.
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.
So when you say "without locality check (all drvs need to built)" you mean cost=(1, 1, ..., 1)
without zeros?
from evanix.
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.
from evanix.
Related Issues (7)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from evanix.