Technology is advancing. A year ago, I was building my new machine and researching hardware. CPU’s were a major consideration for me. What was the best gaming CPU and what was important for good performance in Second Life?
That last question is a significant point of debate in Second Life. I think it mostly comes from the lack of information about how the viewer works. In SL it seems old information hangs around forever. The viewer is changing just as technology does. Since Oz Linden’s arrival and later promotion to director (?) of Second Life development the backside of Second Life has been getting lots of attention, especially for the last year, 2016-2017
So, most of that old information is wrong. In particular, the idea of whether the viewer runs multiple threads. It does.
A thread in computer-geek-speak, is an independent task, like decompressing an image. Other independent tasks would be retrieving the image via download or finding it in the cache.
A CPU can run a single task. We now put multiple CPU’s, called cores, in a single CPU CHIP. So, a single CPU chip is really multiple CPU’s and can run multiple tasks in parallel.
Intel has been steadily improving their ability to task switch. A CPU must pull program instructions and data from computer memory. To speed things up there are subsystems that set up program instruction cues and data cues. What Intel calls hyperthreading is the highly optimized process of switching out data and program instruction cues for one task for another. The effect is a 6-core CPU can perform as if it were a 12-core CPU, almost. It is so close that for most purposes we consider it as 12-core.
Recently (Oct 2017) Monty Linden, a key person in writing the code that has most of the viewer to server communication using the HTTP protocol, commented about whether or not the viewer is multi-threaded.
On 10/11/2017 at 10:07 PM, Steve Mahfouz said:
My understanding is that the official SL client is not multi-threaded, except for a texture picker? Very fuzzy on the details and very open to correction.
Never rely on second-hand information. If you’re using Windows, go grab SysInternals [System Internals] tool suite and poke around with Process Explorer. (You can also do this with MS Performance Monitor, it’s just more annoying.) Go ahead, I’ll wait here….
o |~~~|
/\_ _| |
\__`[_ |
][ \,/|___|
Okay, you’re back. 🙂 What did you see? Depending on specific build, OS, etc., there are about 20 threads in the viewer. Some rarely if ever do any work. The Main thread is generally pinned to the wall eating a full core. But enter a new area where you need to pull in new content or deal with other dynamic situations and you’ll see more activity. Peak, averaged over human-scale intervals of seconds, can be around 2.5 cores or so.
The main thread is the render engine. Monty says it is using ALL of one core’s processing power. So, when you hear someone saying the Second Life Viewer is not multi-threaded, there is a sort-of-truth in that statement, but it isn’t literally true.
Second Life is CPU the bottleneck when it comes to rendering. But, other tasks can be taken care of by other cores in the CPU without slowing the main rendering thread. You can see when the support threads get behind. Things are gray and some things are missing. The render engine did not have the textures and mesh data it needed to draw the scene but went ahead without them. Eventually, things catch up and the scene is fully rendered.
The render engine does not wait. It does what it can with what it has.
Because of the render thread being a single thread and creating a bottleneck in the CPU, it is CPU speed that is most important. The number of cores is less important. But, how few cores can we get by with?
From personal experience, when I upgraded from a Duel-Core to a Quad-Core, long ago, I got a major boost in performance. So, while a dual-core is usable, it is too few cores.
I now run with 4 cores in an i5-6600 (6th gen). While the 6600 does task switching, the Hyper-Threading – ultimate task switching, is reserved for the i7.
I overclock my CPU to 4.1GHz. There are times when I get over 150 FPS. As the Second Life servers will only ever run at 45 FPS, that 150 is a bit of overkill. If you are playing in a combat game in SL the 150 provides some advantage. Otherwise, I doubt you’ll see any difference.
Where you may see a difference from more cores is when you start streaming Second Life to YouTube or capturing video with OBS. I am getting by with 4-cores. But, to get a smooth video I need to shut down all other tasks and run just OBS and a viewer. That actually isn’t enough. I really should shut down a load of background tasks too. So, my 4-core i5-6600 isn’t enough for SL and OBS. But, it is great for just SL and my other usual suspects of running apps.
When I said I overclock my CPU at 4.1GHz I meaning I run it faster than its rated speed of 3.5GHz. The result is when running just SL and my apps I have one core that is running between 50% and 78% of capacity the other 3 are less loaded. When I add in OBS that busy core only goes up a little 1 to 4%. The other cores come up about the same. BUT… there are moments when a couple of cores hit 100% and the video stutters a bit. So, my thinking is 4-cores at 4.1GHz is the low end for good performance.
The 8Th Gen
The 8th Gen Intel CPU’s have 6 cores and are said to be able to run at 4.7Ghz and if you have good enough cooling 5GHz. The big change for 8th gen is from 4 to 6 cores and faster speeds. However, the architecture is improved.
Plus, the thread switching technology is better than the tech in the 6th and 7th gen CPU’s. Again, the Hyper-Threading is reserved for the i7’s.
The max memory speed is spec’d at 2666MHz. Word is that can be pushed faster, a lot. Faster really helps with RAM drives.
The i7-8700 CPU’s are performing just behind the AMD Ryzen 7 1700’s in some tests and ahead in some gaming benchmarks. The i7-8700 outperforms the i7-7700 by like 40%. That makes an upgrade to an 8th gen CPU a more economical performance per dollar upgrade.
So, if you are deciding between AMD and Intel, the decision comes down to whether you overclock or not. Intel is way ahead on overclocking. Otherwise, the 8700 and 1800 are close, in some cases, one is ahead and others the other.
The i3-8### 4/4-cores start at US$117-168 (Oct 2017), the i5 6/6-cores at $182-252, and the i7 6/12-cores at $303-359. I suspect the i5 will remain the best gaming CPU for the money and the most practical for Second Life. The i7 will only provide a benefit if you want to do lots of CPU intense tasks while running Second Life.
The 8th CPU’s use the FCLGA1151 socket, the part of the motherboard the CPU plugs into. This is the same socket the 6th and 7th gen CPU’s use. So, it looks possible to upgrade ONLY the CPU. But, that is not the case. To use an 8### CPU you’ll need to use the Z370 chipset, meaning a new motherboard.
Memory chips, video cards, SSD’s, and other peripherals will be re-usable. But, I’m bummed my Z170 won’t cut it. I may make my next upgrade to the 7### series.
The 8th gen CPU’s have more graphics capability. Intel is supporting 4k image streaming, think Netflix. For Second Life users this means better graphics with no graphics card, a money saver. But, using the HD Graphics processor eats system memory and cuts viewer performance significantly. We’ll learn from those taking this HD route how much as they post in the SL Forum. It is too soon to know much now
The i5-7600k can be found on eBay for US$167 and up with the average around $200-250. Expect that to drop in the coming weeks as more people move to upgrade to 8th gen CPU’s and sell their old CPU’s. So, for $20± you could have an 8th gen over a 7th gen.
The i7-7700k can be found for US$180, but that low a price is rare. The average looks to be $250 to <$300. I expect these to come down too.
As usual, buy as fast and as much CPU as you can afford. Also, I would still get a separate GPU, again, as fast and as much as is affordable….due to the advent of VR apps using HMD’s (which will soon be wireless), and all the peripheral processes that will be needed with those apps.
Great work!
I’ve always wanted to get a small Single board computer work, maybe on LINUX, that can get on Second Life.
It wold act as a long term SL presence, almost like a scripted agent.
It would operate a avatar, object or both.
The main reason I want to do this is to create what I call a “SL to RL” bridge.
For example, if I press a button in RL, it causes an action in SL and vice versa.
A condition happens in SL, such as a door opening, it will turn on a light in Rl.