If you've been keeping up with my articles, you probably know that I think now is a terrrible time to build a PC. GPUs are in short supply and new consoles offer an unbeatable value proposition. However, if you just have to build a PC, then here is a guide on how to build something that will game at least on-par with a PS5 or Xbox Series X while not costing something outrageous. CPU - $280The AMD Ryzen 7 3700X is an octa-core processor has good single-core performance, excellent multi-core performance, and low power consumption. This will allow for stable 60fps when paired with a sufficiently powerful GPU for a given resolution. By using the same CPU as current-gen consoles, we can rest assured that we should not be CPU bound unless we are playing at low resolutions or with an extremely powerful GPU. Alternatively, a Ryzen 5 5600X is a $20 upgrade that nets you significantly improved single core performance and support for Smart Access Memory (read: minor performance boost) in exchange for being weaker overall, meaning that it may not age as well for gaming, and will not be as good at tasks such as building, video encoding, or video decoding. Most AMD Ryzen CPUs come with a decent stock cooler, so you don't have to worry about buying one. Motherboard - $150 For the motherboard, basically any B550 or X570 motherboard will work. The 3700X does not use too much power, so we don't have to worry about power delivery. Using a 500-series motherboard means you won't have to flash the bios to work with Ryzen 3000 CPUs. Additionally, you will have support for PCIe 4.0, which boasts extremely high bandwidth, enabling future GPUs to operate at maximum performance. RAM - $100Ryzen processors benefit from high-speed RAM, although there is no reason to go above DDR4-3600 due to limitations of AMD's Infinity Fabric. DDR4-3200 CL16 is the most common RAM out there, and offers good speeds a low costs. Some kits can run higher than their rated frequency, for example I run my DDR4-3200 CL16 kit at DDR4-3266 CL16, and it's rock solid. Do not get 8GB, and make sure to get dual-channel memory, as that doubles bandwidth. 16GB is enough, although if you have $50 to spare then I highly recommend upgrading to 32GB. GPU - $3-500GPU is where you have the most liberty to customize this build. The best choices include the GeForce RTX 3060, the GeForce RTX 3060 Ti, and the Radeon RX 6700XT. The two GeForce cards offer better performance in games that heavily utilize ray tracing. Additionally, they support DLSS, an Nvidia-exclusive technology which is employed by many games supporting ray tracing to offset the performance hit. The RTX 3060 Ti at $400 is more expensive but also much more powerful than the $330 RTX 3060, although it offers performance in the same league as the RTX 3070 for $100 less. The RX 6700XT is the most expensive card among those listed at $480, although tests show that it crushes the 3060 Ti and is often on par with the RTX 3070 in purely rasterized games. Another nice feature of the RX 6700XT is that it comes with 12GB of VRAM, which should aid with longevity. If you want to play the latest games in beautiful detail, go for the RTX 3060 Ti, or the RTX 3060 if money's tight. If, however, you want to play classics like The Witcher 3 or Final Fantasy XV in glorious 4K at 60fps, then the RX 6700XT will get you there. In short, if you like to play older games, or aren't that interested in ray tracing, you should get the RX 6700XT, otherwise go for the RTX 3060 or 3060 Ti. PSU - $100 Get a decent PSU, like the EVGA SuperNOVA 650 GT. You want around 650w for a GPU like the RX 6700XT, but you can get away with less for the RTX 3060 or RTX 3060 Ti. EVGA is very reliable for PSUs. You don't need to spend crazy money on a PSU, but you shouldn't cheap and buy a $40 unit. Case - $180The case is purely up to you, this is what you'll be looking at, so you don't want to get something hideous. I recommend the Corsair 760T, it has great cooling, looks sharp, and is easy to build in. The two drawbacks are that it is a little pricey, over $200 thanks to the Corsair tax, and doesn't come with tempered glass side panels. However, I've had no issues regarding rattling (aside from one fan that just needed oil), it comes with OK dust filters, and the thermals are excellent. Six drive bays is more than enough, but I've already used three of them plus an M.2 slot. Alternatively, if you want a cheaper case, the Lian Li Lancool II case comes with tempered glass side panels, metal on both the inside and outside, and has some fans for $100. The Lancool II only has 120mm fans instead of 140mm fans like the 760T and there is no room for a DVD drive. SSD - $100There are tons of SSDs out there for wildly varying prices, although you should expect to spend about $100 to get a decently sized SSD from a reputable manufacturer such as Crucial, Seagate, Inland, Western Digital, or even Samsung if you're lucky. You don't need to have the fastest SSD, even a DRAMless model will do if money's tight, but whatever you do don't get a mechanical hard drive. It isn't worth it, HDDs are slow, prone to failure, noisier, and use more power. If you need a ton of space on the cheap, get a tiny SSD and use a secondary HDD to store games, files, etc. Final price - ~$1300There you have it, a PC that balances cost and performance to deliver an excellent gaming experience. This base should serve you well whatever you want to do, whether it's esports or AAA gaming. No, you won't be able to max out everything at 4K and hit 60fps. No, you might not be able to pump out 500fps on some shooter. But, you will still be able to play at 4K if you finagle some settings, and you should be able to break 240fps playing Valorant, Minecraft, or even Fortnite if you turn down some settings. Consoles aren't often playing with max settings, but they still manage to make games look good. This PC will be in a similar situation. However, the monitor plays a significant role in making eye candy. I highly recommend a 1440p monitor with at least a 75Hz refresh rate. Happy gaming!
0 Comments
Nvidia RTX has been out for almost three years now. I've had my RTX 2080 Super for a year and a half, and now I'm going to look back on real-time ray tracing's origin story.
I jumped on the ray tracing bandwagon as a bit of an early adopter. Nvidia had introduced two new technologies, DLSS and RTX, and had released its Super cards, while AMD stuck to traditional rasterization but launched a brand-new CISC architecture, RDNA, dedicated to gaming, replacing the aging GCN architecture. I went for Team Green for the GPU, got a 2080 Super and paired it with a Ryzen 7 3800X. It was glorious to turn on ray tracing. Shadow of the Tomb Raider was one of the few games that supported ray tracing, it featured ray traced shadows and looked glorious. The details were beautiful, the lighting and shadows were lifelike, all in addition to phenomenal gameplay and setting. Minecraft showed a night and day difference, it looked like an entirely different game! The water actually refracted light so that it looked shallower than it was! Fast forward to the present day, and things are quite different. GeForce RTX GPUs have been on sale for almost three years, next-gen RTX GPUs launched, RDNA2 debuted with Ray Accelerators to support real-time ray tracing, and the PlayStation 5 and Xbox Series X|S support real-time ray tracing as well. Is ray tracing finally commonplace? Unfortunately the pandemic caused the gaming industry to explode at the same time as chip shortages due to pandemic restrictions, leading to supply severely outstripping demand. Do I think it was a good decision to buy a first-generation RTX GPU? Yes, I am so glad that I went with an RTX 20-Series GPU instead of a GTX 16-Series, GTX 10-Series, or RX 5700XT. RTX is a revolutionary technology, and in order to make it work, Nvidia had to make their cards tremendously powerful, add special RT Cores to accelerate ray tracing calculations, and on top of all that borrow Volta's Tensor Cores and create the DLSS algorithm to run on them. The RTX 20-Series GPUs are not perfect, ray tracing causes them to take a substantial performance hit, although it is definitely possible to enable at high resolutions and high settings on more powerful GPUs like RTX 2080, 2080 Super, and 2080 Ti. Even the RTX 2060 can ray trace at 4K with some settings turned down thanks to DLSS 2.0. That's right: the fight of the century! Not a fourth round of Ali-Frasier from beyond the grave, we're talking PC vs. Console! New GPUs and new consoles just dropped late last year, and now its starting to get to the point where you might be able to snag one of them soon. 6/6. PC: You can upgrade components in the futureMy RTX 2080 Super is powerful, it beats out the PS5 and goes toe-to-toe with the Xbox Series X. However, once developers start adding more visual effects such as more detailed ray tracing or hair models, you'll need more power to fully enjoy them. Unfortunately, these effects will have to be dialed back to run on old console hardware: Final Fantasy XV runs on the OG PS4 and Xbox One, but it also only runs at around 60-70 FPS at 1440p (or 4K with DLSS) with all the settings maxed out on my 2080 Super. This is how I know there must have been some cuts to make that game run on the Xbox One. Let's say my 2080 Super starts getting long in the tooth, I can swap it out for a newer card. You can't do that on a console 5/6. Console: GPUs alone cost more than a new console$400 buys you a PS5 digital edition. What GPU does that buy you? An RTX 3060 Ti if you can find one. Once you manage to get one of these, you still have to build a system around it. CPU, PSU, case, drives, motherboard, and now we're talking at least a full grand! Sure, the 3060 Ti is more powerful than the PS5, but not 2.5 times as powerful (probably not even 1.5 times). Save some money and buy a console. The Xbox Series S is even cheaper at $300. 4/6. PC: You get a PC, not just a gaming machineYou heard it your first: you do things other than gaming on your PC. WOW! Documents load quickly, quick boots, you can have lots of browser tabs running, bloatware doesn't affect you as much. These all come from generous amounts of RAM, SSDs, and powerful CPUs. Just because it's a gaming PC doesn't mean it isn't a fast work PC. Now you can comfortably abuse Chromium's tab feature (we know you do). 3/6. Console: Optimized gamesConsoles don't have Skype or Chrome running in the background. They don't have Windows Update chewing up bandwidth, disk, and RAM. Spec-wise, my PC should crush the PS5 and the Xbox Series X, thanks to the 2080 Super's Tensor Cores and superior RT Cores. However, I am not too sure this will be true for the Xbox, due its more streamlined software-hardware stack compared to Windows 10 gaming PCs. 2/6. PC: If you do any computationally-intensive programming, build immediatelyThis is the biggest surprise boon I got from my PC. It let me do AI work, heavy-duty numerical methods, and quickly build software from the source. I never could have done this stuff efficiently on the aging titan that was my Optiplex 960. For a machine built in 2008, 8GB of RAM and four cores is insane. For 2019, however, it was a little on the low end for what I wanted to do. Now I can tear through models that I wouldn't have dared run on my dinosaur. Not that they'd run without some finagling, Tensorflow requires the AVX instruction set. I admit, my example is quite extreme, AVX has been around since 2010. However, that doesn't mean the models would have run well, I multiplied my raw GPU power by approximately 35 times, and my CPU is about eight times as powerful in the best-case scenario. Single-core speeds are about 2-3 times better, which makes a massive difference when experimenting with software, as during experimentation you usually don't take the time to multi-thread. 1/6. Console: The Couch FactorYou can play video games on your couch. You can watch movies on your couch. Games, movies, on the couch. Games. Movies. Couch. Firing up a game as you sink into the cushions, hands wrapped around the controller, a device designed with a single purpose: comfortably interfacing with games. You put your feet up, and have a great time. Who would want to watch a movie on their computer? Ugh, so plebian. Real men of culture use the big screen for their motion-pictures. My Xbox 360 is still going strong in this employ (no red ring of death!) and does bang-up job playing Avatar: The Last Airbender through a 1080i projector (I know. I live in 2005).
There you have it, 3 reasons for and three against buying a console and putting off building a PC. As you can see, it depends on who you are. For programmers, a PC makes a lot of sense. For casual gamers, however, a console can't be beat in terms of convenience and the price/performance ratio. .At one point or another you may have found yourself wanting to fill in missing data points in a data set. This seems like a simple problem on the surface, but quickly gets complicated. The way to solve this problem is using interpolators. There are a variety of interpolators, but for one-dimensional data the simplest type is a polynomial interpolator. A polynomial interpolator works by taking a set of inputs and their corresponding outputs, and then generates a polynomial through them with the aim of inferring data between the points. The resulting polynomial is of order n-1, where n is the number of data points. The result always goes through the input data points, although it will not always produce a smooth or logical transition between them. This is because the "smooth transition" we are looking for is a construct made by our intuition, something a computer does not have. Here is an implementation of polynomial interpolation using Python 3 and the CuPy library. CuPy is a CUDA-accelerated subset of the Numpy library, aiding massively parallel applications. import cupy as cp #import numpy as cp # Uncomment the above line if you do not have CuPy from cp import float32 from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm import matplotlib.image as mpimg import matplotlib.pyplot as plt import matplotlib from pylab import * def Ln(x_knowns, n, x): # Our inner loop of the interpolator x_subset = cp.copy(x_knowns) temp0 = cp.subtract(x, x_subset) xn = x_knowns[n] temp1 = cp.subtract(xn, x_subset) temp1[n] = 1.0 temp2 = cp.divide(temp0, temp1) temp2[n] = 1.0 temp3 = cp.prod(temp2) return(temp3) def interpolator(x_knowns, y_knowns, x): # The outer loop aggregate = 0 for i in range(0, y_knowns.size): aggregate += y_knowns[i] * Ln(x_knowns, i, x) #print(aggregate) return aggregate def array_function(x): # Our function to generate test data, e^-(x^2) temp = cp.copy(x) temp = cp.square(temp) temp = cp.multiply(-1.0, temp) temp = cp.exp(temp) return temp # Generate test domain using linspace, 10 points mean a polynomial of order 9 x_test = cp.linspace(0, 3.1416*2, num=10, endpoint=True, dtype="float32") val_range = cp.amax(x_test) - cp.amin(x_test) val_min = cp.amin(x_test) # Fill data for plotting in between the test points, purely for visualization # Does not affect the polynomial itself x_fill = cp.linspace(val_min-1, val_min+val_range+2, num=infill_resolution, endpoint=True, dtype="float32") y_fill = [] # This is the y data used to define the interpolation polynomial y_test = array_function(x_test) # Runs the interpolator using the test data to produce higher resolution fill data for graphing purposes for i in range(0, infill_resolution): y_fill.append(interpolator(x_test, y_test, x_fill[i])) # Plots the data points interpolated about plt.scatter(x_test.get(), y_test.get()) # Plots the real function plt.plot(x_fill.get(), array_function(x_fill).get()) # Plots our interpolated guess plt.plot(x_fill.get(), y_fill) # Shows the plot plt.show() The code should produce the graph above. If you do not have a CUDA-enabled GPU, you can use Numpy instead by commenting out the first line and uncommenting the second line.
The blue line represents the real function, while the orange is the polynomial produce by interpolation. Notice that the lines match quite well between the known data points, but becomes unstable very quickly. Projecting beyond the data is actually not interpolation and is something called extrapolation, for which there are other, more effective methods than the polynomial method. Ten data points were used. The resulting polynomial of the 9th order, which is quite high. These high exponents cause instability because they grow quickly out of control. |
DanielI'm a software engineer, volunteer IT support, amateur blogger, casual gamer, and tech enthusiast. I also love cars and the great outdoors. Archives
May 2021
Categories |