Jump to content

I recently rewatched the LTT video on NDI using an intel system : 

I'm a small hobby streamer myself. I only really care about giving the best video and audio quality possible. I don't want to plug for views, I'm personally against shameless plugs so if you ask me what my channel is, I'm sorry but I won't be posting it. That being said, I currently use a two pc streaming setup. I'm running 2 Ryzen builds a 1600x for gaming and a 2400g for streaming using an elgato HD60S. 

 

I understand all the basics needs for the build but wanted to know if it's possible to do this with Threadripper, specifically Threadripper 2 when it comes out. I know not to assume that threadripper 2 will work out of the box but I'm one of those types that finds joy in the pain of troubleshooting for hours. I'm really interested in this as a downscaling project (and because I really want a threadripper build).

 

Final note, I'm not an AMD Fan Boy. I enjoy using AMD currently cause I'm poor and can afford ryzen. I wanted a threadripper build since the 1950x first showed up on the main Techtubers. Plus it will be fun to try and make it work. 

 

I'm open to criticism and suggestions. I plan on keeping this an active thread and keep things updated. I'm still doing research on unraid as of this posting and could still use some help with this whole idea. I'd like to have a solid plan of action for when I get the money for the build and for threadripper release. 

Link to comment
https://linustechtips.com/topic/939727-ndi-with-threadripper-is-it-possible/
Share on other sites

Link to post
Share on other sites

@OurFates

 

If I understand you correctly, you're currently using an external capture card to stream video from your current Ryzen 6-core machine to a ryzen 4-core machine to do video processing, right?

 

As long as you don't sacrifice on core count (which I believe will be impossible with Threadripper 2 anyway, unless they release an 8-core version which seems unlikely), you wouldn't strictly need to use a capture card or NDI at all with Threadripper. You'll be able to downsize and do both tasks on the same machine at the same or better performance as you get currently, and at less cost as you wouldn't be powering two machines. You wouldn't need to use unraid for this, at the most you'd need to set affinity between your rendering threads and your games to ensure there's no contention between the two.

Link to post
Share on other sites

@Tabs

 

You are understanding correctly. However for me this is more of a quality assurance issue. I want the best performance and quality I can muster. Like the original NDI video pointed out at around 2 minutes, I like the idea of how easy to back up each Vm would be and how any software issues would be localized to the individual VMs themselves.

I don't really want to manually set affinity like you have said.

 

Ultimately though I love the idea of NDI and the use of unraid as a storage server as well. The idea seems like it could fix a few issues I've had in the past with single pc and double pc streaming setups while also giving me the option to have my own server setup in my house as well.

Link to post
Share on other sites

8 minutes ago, OurFates said:

@Tabs

 

You are understanding correctly. However for me this is more of a quality assurance issue. I want the best performance and quality I can muster. Like the original NDI video pointed out at around 2 minutes, I like the idea of how easy to back up each Vm would be and how any software issues would be localized to the individual VMs themselves.

I don't really want to manually set affinity like you have said.

 

Ultimately though I love the idea of NDI and the use of unraid as a storage server as well. The idea seems like it could fix a few issues I've had in the past with single pc and double pc streaming setups while also giving me the option to have my own server setup in my house as well.

 

I guess the easiest way to answer your question then is to state that so long as you have at least 16 cores on your Threadripper system, you should get at least equivalent performance from your current 6+4 setup. Unraid would however not be a way to maximise your performance with Threadripper. I only mentioned affinities since it gives an easy way to separate cpu usage between tasks to ensure one doesn't swamp the other or cause contention, but messing with affinities is only an optimisation step rather than a requirement.

 

Right now your video render quality is likely limited by your local network (assuming you have 1gbps at home)  - NDI is intended to be an easy alternative to external capture devices, it's not intended to be an outright replacement. To get better quality in a virtual environment you'll want to have NDI set to use > 1gbps of bandwidth, so you're going to have to account for the amount of CPU power required for that amount of virtualised network IO. The higher you push that, the more of your performance advantage disappears to communication, so you'll need to do a huge amount of tuning of what cores are reserved for your host, and what are reserved for your rendering VM.

 

Unraid gives you the ability to compartmentalise your rendering setup, definitely. But that's almost the only outright advantage that configuration has, assuming you want it to be 100% distinct. On the flip side, you'll have to install and maintain two separate operating systems. You'll have to decide how many cores you want to assign to each task in *advance*, since they cannot be modified when the machine is running an unraid setup - unlike process affinities that can be changed on the fly. If you configure incorrectly, you're either going to bottleneck your gaming performance or bottleneck your encoding performance with no way to change the settings without rebooting into the unraid configuration manager.

 

I'm never going to recommend someone against experimenting, but I guess I just want to temper your expectations - Unraid for this kind of task will end up using a lot of processing power, require a lot of advance preparation and work to get running, will require more time on a week by week basis to maintain multiple systems, and fundamentally ends up meaning you waste performance. Virtualising two operating systems and the network between them is always going to be a higher overhead than streaming directly from your content to a render process on non-virtualised hardware. 

 

My recommendation would be to run your setup locally, ensure you use portable rendering applications and eschew virtualisation entirely - for example, portable OBS stores all of its settings and configurations locally, it never touches the registry or anything like that, so it's extremely easy to backed up and restore your configurations. If you find your game or rendering performance lacking, affinities can be changed on the fly. You can set affinities at launch using the "start" command with the /affinity option under Windows, or from any terminal under Linux with "taskset".

 

This doesn't rule out the possibility of using Unraid to partition off some cores on your Threadripper machine for a home server purpose, but you'd only need a few cores for this at most and the load would be marginal compared to video streaming and gaming, and leaves the majority of your resources for actual stressful tasks. 

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

×