feat(krz01): passthrough the nVidia Tesla K80 in ml01
This way, no need for reboot. Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
This commit is contained in:
parent
ebed6462f6
commit
8160b2762f
2 changed files with 45 additions and 17 deletions
|
@ -15,7 +15,9 @@ lib.extra.mkConfig {
|
||||||
];
|
];
|
||||||
|
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
microvm.host.enable = true;
|
microvm = {
|
||||||
|
host.enable = true;
|
||||||
|
};
|
||||||
dgn-hardware = {
|
dgn-hardware = {
|
||||||
useZfs = true;
|
useZfs = true;
|
||||||
zfsPools = [
|
zfsPools = [
|
||||||
|
|
|
@ -1,22 +1,48 @@
|
||||||
_: {
|
_: {
|
||||||
microvm.autostart = [ "ml01" ];
|
microvm.autostart = [ "ml01" ];
|
||||||
microvm.vms.ml01 = {
|
microvm.vms.ml01 = {
|
||||||
config = {
|
config =
|
||||||
networking.hostName = "ml01";
|
{ config, ... }:
|
||||||
services.ollama = {
|
{
|
||||||
enable = true;
|
nixpkgs.config.cudaSupport = true;
|
||||||
listenAddress = "0.0.0.0:11434";
|
nixpkgs.config.nvidia.acceptLicense = true;
|
||||||
sandbox = true;
|
# Tesla K80 is not supported by the latest driver.
|
||||||
acceleration = "cuda";
|
hardware.nvidia.package = config.boot.kernelPackages.nvidia_x11_legacy470;
|
||||||
|
# Don't ask.
|
||||||
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
networking.hostName = "ml01";
|
||||||
|
services.ollama = {
|
||||||
|
enable = true;
|
||||||
|
listenAddress = "0.0.0.0:11434";
|
||||||
|
sandbox = true;
|
||||||
|
acceleration = "cuda";
|
||||||
|
};
|
||||||
|
|
||||||
|
microvm = {
|
||||||
|
hypervisor = "cloud-hypervisor";
|
||||||
|
vcpu = 4;
|
||||||
|
mem = 4096;
|
||||||
|
balloonMem = 2048;
|
||||||
|
devices = [
|
||||||
|
# The nVidia Tesla K80
|
||||||
|
{
|
||||||
|
bus = "pci";
|
||||||
|
path = "0000:44:00.0";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
bus = "pci";
|
||||||
|
path = "0000:45:00.0";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
shares = [
|
||||||
|
{
|
||||||
|
source = "/nix/store";
|
||||||
|
mountPoint = "/nix/.ro-store";
|
||||||
|
tag = "ro-store";
|
||||||
|
proto = "virtiofs";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
microvm.shares = [
|
|
||||||
{
|
|
||||||
source = "/nix/store";
|
|
||||||
mountPoint = "/nix/.ro-store";
|
|
||||||
tag = "ro-store";
|
|
||||||
proto = "virtiofs";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue