-
Notifications
You must be signed in to change notification settings - Fork 247
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Spike] Can crc use krunkit? #4233
Comments
One initial issue is containers/krunkit#8 - krunkit is currently only available on Apple Silicon machines, it's not available for Intel-based macs. |
|
@vyasgun but at least it is tried without those options? |
@praveenkumar I appreciate the initiative to create the PR for using UEFI with I have tried using the new options with If I am correct, according to the code, the device is only being added to vfkit when system mode networking is used:
Can you confirm this? And its relevance to the networking modes? Apologies if the question is too naive but there's not much documentation to follow :) |
you can remove virtio-net option because we are not allowing system-mode networking for mac and it is not even tested.
This needs some more digging to provide a better answer, but for time being (for poc) if something work without it that should be a progress (also check how podman-machine handle time sync). With all those changes are you able to run the VM with |
tmesync was due to a problem with the sleep/idle state of the VM. it might need some more investigation in general to determine if this time skewing still happens. In conclusion; leave this out for now; will need a new issue. |
podman-machine is not using Yes, I can get the krunkit process running.
|
This is when you are trying to run it directly using cli command, does it work when you change the crc code base and use krunkit binary instead vfkit? I think with cli it is expected since no ssh key is passed. |
No, it doesn't seamlessly run through CRC code base as of now which is why I am trying to figure out the required options. Except this part, the machine is in Can you still point me to the use of virtio-net and why is it only used for system mode networking? It will be helpful for me. Thanks :) |
Before migrating to vfkit we used to use the hyperkit ( https://github.com/moby/hyperkit ) as driver and it was using virtio-net but that didn't provide us way to effectively handle the vpn connections so we went with https://github.com/containers/gvisor-tap-vsock (user-mode networking) and have support for both but slowly made this as default networking solution by obsoleting virtio-net and we are not even testing it any more. More info around virtio-net : https://www.redhat.com/en/blog/introduction-virtio-networking-and-vhost-net |
To me, this machine is booted and sshd service should be running I am more interested in now if you just rename the krunkit to vfkit and try |
I was able to bring up the crc VM using the following changes: vyasgun@6eafcf6 (Please note it's just a POC with some hardcode just for testing purposes) Verifying it's using krunkit:
I also ran an InstructLab pod on CRC with the following spec and made it run some prompts by using an interactive terminal (
However,
Conclusion:According to the spike, CRC can use |
They are using https://chrony-project.org/doc/4.5/chrony.conf.html#makestep instead: |
Did you use the same yaml with podman-machine for comparison? For a start, you could ssh into the crc krunkit VM, and run an AI workload by directly using |
@cfergeau Yes, it's the same yaml. I tried running the llama.cpp code in the following ways and here are the results (For reference: ggml-org/llama.cpp#1323 (comment) has the following list which describes the parameters):
Running a podman pod directly on the system:
Running a podman pod after ssh-ing into crc VM:
Running a kubernetes pod on crc (takes much longer):
|
Could it be picking up an amd64 image instead of an arm64? This would explain the problems. |
@cfergeau The image is arm64 (i checked inside the VM)
And also inside the mistral-pod, the binary being run is built for arm64:
UpdateRunning the pod as privileged was required for accessing the gpu. Now it takes roughly the same amount of time.
|
The next steps will be documented in: #4341 |
krunkit is a drop-in replacement for vfkit from a cmdline argument point of view. podman-machine can make use of it, see https://docs.google.com/document/d/1IZCWAY5zMHqd0YlbnpGtCe7HNeWKQNHi8RuhujAJmg0/edit for some details.
Since it has additional features compared to vfkit, it would be interesting to know if crc can make use of it.
In order to test krunkit + crc, a few steps that come to mind:
checkVfkitInstalled
inpreflight_checks_darwin.go
needs to be skipped or adjusted as it contains a vfkit version check which likely won't work with krunkit (different version number). There must be acrc config set skip-xxxx
option to avoid this codeNewVfkitCache
code and related methods in cache_darwin.go will need to be changed (but I think this code won't be run during testing).The text was updated successfully, but these errors were encountered: