Tabby: bump 0.7.0 -> 0.8.3 and add systemd service - #292873
Conversation
|
@sersorrel I was able to test the rocm support on my local workstation, still pinging you if you'd like to test as well. |
|
@happysalada ready for review |
happysalada
left a comment
There was a problem hiding this comment.
This is looking good, thank you !
I have a couple of questions / comments
There was a problem hiding this comment.
Would you mind if we took the defaults from config.supportCuda and supportRocm. I dont think we need to have this manually configurable. If the user has cuda enabled use cuda should be the easy default.
There was a problem hiding this comment.
Yep, I think that makes sense, will fix this
There was a problem hiding this comment.
I added some defaulting of the acceleration type in the presence of either rocmSupport or cudaSupport on nixpkgs.config. Even with that defaulting I have left acceleration as a service and package configuration value to handle the case when both of the above are present, as we can't make a clear decision and we do have to pick a single option. See this comment I've added to the code where the llama-cpp package is overriden.
274d9b9#diff-abdbe2b562428d2ed485d33ee478cf9e126faae74d5cc60b48284c7c254ddf33R86
keysmashes
left a comment
There was a problem hiding this comment.
Looks good! I built with nix-build -E 'with import ./. {}; tabby.override { acceleration = "rocm"; }', and ./result/bin/tabby serve --model TabbyML/StarCoder-1B --device rocm appeared to work fine.
What's the purpose of the modelDownload config? I didn't explicitly run tabby download, it just downloaded it automatically.
Yep, I can remove this extra configuration. I started using tabby before June 1, 2023 when they added this commit[1], didn't realize |
|
This looks good to me, happy to leave this open 1 more day to give some more time to other people to take a look. |
de11n
left a comment
There was a problem hiding this comment.
Extremely well done! A few small comments.
There was a problem hiding this comment.
It feels backward to mention NixOS module configuration in the warning of a specific package. Perhaps this validation deserves to be in the module instead. A shorter, less-verbose warning could be here instead.
There was a problem hiding this comment.
Yeah that makes sense, I'll move this around
There was a problem hiding this comment.
Looks better. Thanks. It looks like you have a trailing whitespace somewhere, causing the CI to fail.
|
pkgs/by-name/ta/tabby/package.nix: |
|
I just noticed the darwin x86_64 build is broken. Would you mind marking the build as broken for that platform ? |
|
Alright, little searching I found this #140325 for reference on how to mark the package as broken which I think points to it being a boolean flag in the meta object. I don't have hardware to test linux-aarch64, but I will soon as that's what I'd like to try and run this on at work. |
- Added support for AMD ROCm accleration - Added support for Darwin Aarch64 Metal acceleration https://github.com/TabbyML/tabby/releases/tag/v0.8.3
- Enable tabby to run as a systemd service - Document standard tabby configuration
|
Fixed commits to follow https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#commit-conventions |
|
Perfect thanks ! I plan on merging this when i go home today. |
Description of changes
Upgraded to upstream 0.8.3 release
Added support for rocm AMD acceleration.
Both tests used the new systemd service to run tabby
Dynamic Linking w/ llama-cpp
I was having compile errors with the vendored copy of llama-cpp that tabbyml was statically compiling, so I switched to dynamic linking with the llama-cpp that is within nixpkgs.
Systemd service
Example of the configuration required here.
https://github.com/ghthor/shrc/blob/18109599c526e580e54b11a16b6c1ef017777918/nix/cryptnix/configuration.nix#L434
Using the service makes it easy to enable a specific type of acceleration.
Things done
nix.conf? (See Nix manual)sandbox = relaxedsandbox = truenix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)Add a 👍 reaction to pull requests you find important.