macOS 15 Sequoia: nested virtualization for M3+ Macs

Discussion in 'Parallels Desktop on a Mac with Apple silicon' started by Sven G, Jun 19, 2024.

  1. AndreasK27

    AndreasK27 Junior Member

    Messages:
    18
    Your WSL --version has nothing to do with it still just being WSL1 - it's not WSL2 (my Surface Laoptop 7 with WSL2 shows the same WSL --version information as my M2 MacBook Air / macOS 15.1 / Parallels 20 with WSL1). The differentiation between WSL1 and WSL2 is shown in wsl -l -v.
     
  2. AndreasK27

    AndreasK27 Junior Member

    Messages:
    18
    I really hope, that Parallels 20 manages to run nested Hypervisors in Windows for ARM (WSL2, WSLg, docker,...) on M3+ / Sequoia. I'm waiting for it in order to upgrade my MacBook Air to an M4 MacBook Pro (probably a 32 or 64GB Pro) and to get rid of my interim Surface Laptop 7 Windows-Dev machine (Windows on ARM, WSL2,...). To me the Snapdragon X has been a bit of a disappointment - its CPUs are fast/nice, but its GPU and NPU are pretty unusable for open source apps. With Macs I can at least use the GPUs for llama.cpp/ollama/..., even if the ANE is still a black-box. And the M4 Pro will have 2x the memory-bandwidth/max.-size/GPU.
     
  3. JamesF23

    JamesF23 Member

    Messages:
    37
    I have the M2 Ultra.
     
  4. JamesF23

    JamesF23 Member

    Messages:
    37
    This was the first time that I actually got WSL working in the first place, so I am not all that practiced in using that software on Windows. I primarily set it up so that I could help students with configuring the software on their machine. We are only working in the command line so WSL 1 was sufficient. Of course in Windows 11 24H2 it does have the virtual machine feature turned on, for whatever that is worth. If it was production work,I would just use an actual Ubuntu virtual machine instead of WSL.
     
  5. AndreasK27

    AndreasK27 Junior Member

    Messages:
    18
    For me, WSL1 always worked fine on Windows for ARM. But Windows . This thread is about nested hypervisors. Windows without its own hypervisor-features is castrated, this is not about just a separate Ubuntu VM in Parallels (which is easy). Its about the hypervisor-based security features in Windows, VSCode WSL2 integration,... This is e.g. why I still have a separate physical Windows machine (nowadays a Surface Laptop 7), but I want to get rid of it and upgrade my M2 MacBook Air to an M4 Pro MacBook Pro instead of my current 2 machines.

    Also the performance of WSL1 is bad. Here a comparison of llama.cpp llama-2 CPU-only on the M2 (4 p-cores) vs. Snapdragon X Elite (12 cores). M2 running Windows in Parallels and Ubuntu native in Parallels and in WSL1, Snapdragon running Ubuntu in WSL2.

    TLDR: WSL2/Ubuntu runs as fast as native Windows on e.g. the Snapdragon, Parallels has massive performance impatcs. Windows+WSL1 being the worst impact.

    llama-bench numbers run as in llama.cpp github issue #4167, but with current version of llama.cpp:
    | model | size | params | backend | ngl/CPU | test | t/s |
    | M2, MacOS 15.1 native -------- | ---------: | ---------: | ---------- | ------: | ------------: | -------------------: |
    | llama 7B Q4_0 | 3.56 GiB | 6.74 B | Metal,BLAS | 0 / 4 | pp512 | 58.12 ± 2.41 |
    | llama 7B Q4_0 | 3.56 GiB | 6.74 B | Metal,BLAS | 0 / 4 | tg128 | 14.99 ± 0.14 |
    | M2, MacOS 15.1, Parallels 20.1.1, Ubuntu 24.04.1 ------: | ---------- | ------: | ------------: | -------------------: |
    | llama 7B Q4_0 | 3.56 GiB | 6.74 B | CPU | 4 | pp512 | 22.60 ± 0.58 |
    | llama 7B Q4_0 | 3.56 GiB | 6.74 B | CPU | 4 | tg128 | 11.20 ± 0.92 |
    | M2, MacOS 15.1, Parallels 20.1.1, Windows 11 24H2 -----: | ---------- | ------: | ------------: | -------------------: |
    | llama 7B Q4_0 | 3.56 GiB | 6.74 B | CPU | 4 | pp512 | 22.18 ± 0.50 |
    | llama 7B Q4_0 | 3.56 GiB | 6.74 B | CPU | 4 | tg128 | 12.40 ± 0.32 |
    | M2, MacOS 15.1, Parallels 20.1.1, Windows 11 24H2, WSL1, Ubuntu 24.04 | ------: | ------------: | -------------------: |
    | llama 7B Q4_0 | 3.56 GiB | 6.74 B | CPU | 4 | pp512 | 9.39 ± 0.36 |
    | llama 7B Q4_0 | 3.56 GiB | 6.74 B | CPU | 4 | tg128 | 6.33 ± 0.68 |
    | Snapdragon X Elite, Windows 11 24H2 ------: | ---------: | ---------- | ------: | ------------: | -------------------: |
    | llama 7B Q4_0 | 3.56 GiB | 6.74 B | CPU | 12 | pp512 | 63.53 ± 6.79 |
    | llama 7B Q4_0 | 3.56 GiB | 6.74 B | CPU | 12 | tg128 | 20.60 ± 2.40 |
    | Snapdragon X Elite, Windows 11 24H2, WSL2, Ubuntu 24.01 | ---------- | ------: | ------------: | -------------------: |
    | llama 7B Q4_0 | 3.56 GiB | 6.74 B | CPU | 12 | pp512 | 61.75 ± 8.94 |
    | llama 7B Q4_0 | 3.56 GiB | 6.74 B | CPU | 12 | tg128 | 21.48 ± 3.99 |
     
  6. Krystian1

    Krystian1 Bit poster

    Messages:
    1
    The absence of this feature is as well stopping me from buying Parallels and a MacBook itself. Would be great if there was a possibility to get any feedback from Parallels itself regarding the timeline/plans of implementing this.
     
  7. JamesF23

    JamesF23 Member

    Messages:
    37
    Interesting, but I have never actually heard anyone using WSL in production workflows. Of course compiling large language models is hardly production workflows. The snapdragon chips were designed to be placed in servers originally. All virtualization would have performance impacts. For the students to compile c++ code on WSL 1 is sufficient for them to test the code before removing into the school provided servers before submitting the assignments. My most used application in Windows is Windows update as I have shifted all of my primary work using native macOS. Artificial Intelligence is currently a parlor trick and most of the models have most probably fed fiction so we cannot currently rely them providing correct answers, just inferences based on the faulty data fed to the models.
     
  8. JamesF23

    JamesF23 Member

    Messages:
    37
    Well you will have to stick to inferior Windows machines. I am happy that I upgraded from Windows long ago. Today I keep Windows around primarily to verify tasks can be run on student's Windows computers and Windows Update.
     

Share This Page