Jump to content

Hi,

 

I was wondering if there is a way to assign dedicated cpu cores to a single VM? Thinking about building a threadripper but i need to assign certain cores on one side of the cpu to remove latency. I currently am running a hyper server at home. I saw the video that you used unraid but i do not want to change what i have setup at home. Maybe a video on this if a solution is found?

 

Thank you,

 

Daniel

Link to comment
https://linustechtips.com/topic/910755-hyperv-remote-gaming/
Share on other sites

Link to post
Share on other sites

21 minutes ago, dabnielneu said:

Hi,

 

I was wondering if there is a way to assign dedicated cpu cores to a single VM? Thinking about building a threadripper but i need to assign certain cores on one side of the cpu to remove latency. I currently am running a hyper server at home. I saw the video that you used unraid but i do not want to change what i have setup at home. Maybe a video on this if a solution is found?

 

Thank you,

 

Daniel

In things like VMWare and VirtualBox you most certainly can. You can also assign memory amounts.

The bigger issue is if your system supports GPU passthrough, otherwise you're running in software GFX only and the performance is....dire.

VT-d and IOMMU are also required (typically switched on in BIOS)

NOTE: I no longer frequent this site. If you really need help, PM/DM me and my e.mail will alert me. 

Link to comment
https://linustechtips.com/topic/910755-hyperv-remote-gaming/#findComment-11186481
Share on other sites

Link to post
Share on other sites

29 minutes ago, dabnielneu said:

Hi,

 

I was wondering if there is a way to assign dedicated cpu cores to a single VM? Thinking about building a threadripper but i need to assign certain cores on one side of the cpu to remove latency. I currently am running a hyper server at home. I saw the video that you used unraid but i do not want to change what i have setup at home. Maybe a video on this if a solution is found?

 

Thank you,

 

Daniel

HyperV does not let you do this because historically the reason wanted to pin a process to a certain processor was to guarentee that different VMs wouldn’t conflict wuth one another. The HyperV answer to this desire is to set the CPU Reservation to 100%, meaning that if you assign it 4 cores, those cores are always reserved for it no matter what. Of course this doesn’t address the other reasons, like yours, that people would want to set this. If you want to read more about this, look up “HyperV CPU Affinity”.

 

The proper way to address your issue is to use NUMA. Google it if you want details, but basically NUMA allows the CPU to tell the OS which cores have direct access to which memory, and then the process scheduler and memory subsystem can take this into account while running programs.

 

The first thing you need to do is configure the CPU into NUMA mode. With basically all systems prior to Threadripper this was the default, because they were meant for servers. Threadripper runs in UMA mode by default because consumers and consumer software expects that. You can read about putting Threadripper into NUMA mode here https://www.tweaktown.com/guides/8343/look-amds-threadripper-cpu-hardware-modes/index.html

 

The second thing is to disable NUMA spanning on your HyperV install. This prevents your VMs from using memory and processor time from more than one NUMA node. Note that this is a system-wide setting, not per-VM. https://richardjgreen.net/explaining-numa-spanning-hyper-v/

Looking to buy GTX690, other multi-GPU cards, or single-slot graphics cards: 

 

Link to comment
https://linustechtips.com/topic/910755-hyperv-remote-gaming/#findComment-11186504
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×