I created a standalone qube to install all of my CAD softwares like FreeCAD, KiCAD, Elmer, Salome Meca, etc. The qube is given 32000 MB max memory and 12 VCPUs. However, the interface with those software is extremely laggy, which makes them unusable at all.
The CPU usage of KiCAD when I was just moving cursor in the schematic editor of a new project was around 500% with 9% of memory usage. It’s much worse when I was trying to deal with complex structures in FreeCAD.
My first guess is due to the graphics. It tries to use CPU to do all rendering jobs instead of GPU. However, KiCAD should not be that bad with only CPU rendering as it works perfectly fine on a standalone low-end machine with only an integrated GPU and about 24GB ram.
What are your thoughts? How should I solve this issue?
Well KiCAD works much better when I switched everything to “fallback” graphics so it’s indeed the graphics issue. FreeCAD might be the similar issue. However, I think I might want to do GPU passthrough for this qube for heavy graphics jobs.
There is no GPU support in qubes. All rendering is done through the video driver llvmpipe which uses CPU to renders GPU stuff, it’s extremely inefficient as you can guess.
GPU passthrough can be done using a second GPU, it’s a complex setup though, there is no easy setup yet. Once you get it to work, it can break anytime after a dom0 or qube templte update, so I would not rely on this for your daily job.
Qubes OS seems not a good system for CAD work but using another computer to do this job would make my setup a bit more complex. I think just using CPU for CAD work is fine for now.
I do remember Qubes OS features a “GUI domain” concept. However, it’s extremely hard to setup and I have never made it work properly. And I do not know whether the GUI domain can use the dedicated GPU to accelerate graphics.
I tried to setup GPU passthrough with this standalone qube but it crashes my entire laptop as soon as the qube is started. I would consider this as a serious bug and unable to report it as I cannot find the log for the crash somehow.
GUI domain is only used to reduce dom0 attack surface by doing the window management display in a dedicated qube, it is not meant to improve the GPU performance of qubes.
I hope the next version would contain a native GUI domain support with Global Qubes Settings as the concept is definitely much better than the current GUI system IMO.
It is such a waste to have a GPU not really used while it’s in the laptop for a higher price. I hope I can find a way to utilise it to maximise the hardware potential.
I would install a OS for your CAD Applications on another drive (internal or USB) and boot it on demand instead of qubes when you want to do CAD… I wouldn’t torture the CPU with that kind of stuff