Three Aspects to See the Differences Between GPU and CPU Rendering(2)

2. The Magic Inside of CPU and GPU

The above picture origins from the NVIDIA CUDA document. The green color represents computing units, orange-red color represents storage units, and the orange color represents control units.

The GPU employs a large number of computing units and an extremely long pipeline, with only a very simple Cache-free control logic is required. But CPU is occupied by a large amount of Cache, with complex control logic functionality and lots of optimization circuits. Compare to GPU, CPU’s computing power is only a small part of it.

And that’s most of the GPU's work look like, large work load of computation, less technique but more repetitive computing required. Just like when you have a task of doing the number calculation within 100 for a hundred million times, probably the best way is to hire dozens of elementary school students and divide the task, since the task only involve repetitive work instead of highly-skills requiring. But CPU is like a prestigious professor, who is proficient in high-level of math field, his ability equals to 20 elementary students, he gets higher paid, of course. But who would you hire if you are Fox Conn’s recruiting officer? GPU is like that, accumulates simple computing units to complete a large number of computing tasks, while based on the premise that the tasks of student A and student B is not dependent on each other. Many problems involving large numbers of computing have such characteristics, such as deciphering passwords, mining, and many graphics calculations. These calculations can be decomposed into multiple identical simple tasks. Each task can be assigned to an elementary school student. But there are still some tasks that involve the issue of "cloud." For example, when you go to a blind date, it takes both of the parties’ willingness to continue for further development. There's no way to go further like getting married when at least one of you are against this. And CPU usually takes care of more complicated issue like this.

Usually we can use GPU to solve the issue if it’s possible. Use the previous analogy, the speed of the GPU's computing depends on the quantity of students are employed, while the CPU's speed of operation depends on the quality the professor is employed. Professor's ability to handle complex tasks can squash students, but for less complex tasks with more workload required, one professor still can not compete with dozens of elementary students. Of course, the current GPU can also do some complicated work, which is equivalent to junior high school students’ ability. But CPU is still the brain to control GPU and assign GPU tasks with halfway done data


3. Parallel Computing

First of all, let's talk about the concept of parallel computing, which is a kind of calculation, and many of its calculation or execution processes are performed simultaneously. This type of calculation usually can divide into smaller tasks, which can then be solved at the same time. Parallel computing can co-process with CPU or the main engine, they have their own internal storage, and can even open 1000 threads at the same time.

When using the GPU to perform computing, the CPU interacts mainly with the following:

Data exchange between CPU and GPU

Data exchange on the GPU

In general, only one task can be performed on one CPU or one GPU computing core (which we usually call “core”) at the same time. With Hyper-Thread technology, one computing core may perform multiple computing tasks at the same time. (For example, for a dual-core, four-thread CPU, each computing core may perform two computing tasks at the same time without interruption.) What Hyper-thread do is usually double computing core’s logical computing functionality. We usually see that the CPU can run dozens of programs at the same time. In fact, from a microscopic point of view, these dozens of programs are still dependent and serial computing supported, such as on four-core and four-thread CPU. Only four operations can be performed at a time, and these dozens of programs can only be executed on four computing cores. However, due to the fast switching speed, what is shown on the macroscopic is the superficial fact that these programs are running “simultaneously”.

The most prominent feature of GPU is: large numbers of computing cores. The CPU's computing core is usually only four or eight, and generally does not exceed two digits. The GPU computing core for scientific computing may have more than a thousand calculation cores. Due to the huge advantage of the number of computing cores, the number of computations that the GPU can perform far outweighs the CPU. At this time, for those calculations that can be performed in parallel computing, using the advantages of the GPU can greatly improve the efficiency. Here let me explain a little bit of the task's serial computation and parallel computation. In general, serial computing is doing the calculation one by one. In parallel computing, several parallel computing is to do it simultaneously. For example, to calculate the product of real number a and vector B=[1 2 3 4], the serial calculation is to first calculate a*B[1], then calculate a*B[2], then calculate a*B[3], and finally calculate a*B[4] to get the result of a*B. The parallel calculation is to calculate a*B[1], a*B[2], a*B[3], and a*B[4] at the same time and get a *B results. If there is only one computing core, then four independent computing tasks cannot be executed in parallel computing, and can only be calculated in serial computing one by one; But if there are four computing cores, four independent computing tasks can be divided and executed on each core. That is the advantage of parallel computing. Because of this, the GPU has a large number of computing cores, and the scale of parallel computing can be very large, computing problems that can be solved by parallel computing, which showing superior performance over CPU. For example, when deciphering a password, the task is decomposed into several pieces that can be executed independently. Each piece is allocated on one GPU core, and multiple decipher tasks can be performed at the same time, thereby speeding up deciphering process.

But parallel computing is not a panacea, it requires a premise that the problems can be executed in parallel computing only when they are able to be decomposing into several independent tasks, which many of them are not able to be decomposed. For example, if a problem has two steps, and the second step of the calculation depends on the result of the first step, then the two parts cannot be executed in parallel computing and can only be sequentially executed in sequence. In fact, our usual calculation tasks often have complex dependencies that can not be parallel computed. This is the big disadvantage of the GPU.

About GPU programming, there are mainly the following methods:

  

Welcome to join us

render farm free trial

Recommended reading


How to render large scenes with Redshift in Cinema 4D

2019-10-15


Arnold\ V-Ray\ Octane\ Conora\ RedShift, Which Renderer Is The Best?

2019-04-15


How to Render High-quality Images in Blender

2020-03-09


How the Redshift Proxy Renders the Subdivision

2018-12-28


China Film Administration Release New License Logo

2019-01-09


Maya 2018 Arnold's Method of Making Motion Vector Blur in AOV Channel

2018-12-26


Corona Renderer Learning - Denoising

2019-05-15


Redshift for Cinema 4D Tutorial: Interior Design Rendering

2019-10-12


Partners

Interested

What is Rendering? How to Accelerate the Rendering Speed?
What is Rendering? How to Accelerate the Rendering Speed?
In order for 3D projects to be displayed visually at all, they have to be rendered. Although this process is done by computer processors, this work step is very time-consuming due to the enormous computing power. But what exactly happens when rendering? To put it simply: A finished single image or an entire scene from moving images is calculated pixel by pixel from the raw data of a 3D model previously created in a corresponding program. In the case of moving images, one must also note that one second of the finished scene consists of several “frames”. For a movie, for example, that's 24 frames per second. And when rendering, each individual frame is calculated as a single image. The duration of the calculation of these frames are depending very much on the quality and the level of detail of the project, but above all on the set lighting conditions and the corresponding surface reflections, the given perspective and of course any errors that may be contained. In the end, the calculations are extremely complex and result from the previous work steps such as modeling, texturing, shading, lighting and animation. And so rendering is also the last big step in the implementation of a 3D project. 600 Years of rendering time for a character from "The Load of the Rings"? To give you an idea of what that means in practice: In the 2003 Oscar for the best visual effects film "The Lord of the Rings: The Two Towers", the character "Treebeard" - an animated tree creature - was in the long version can be seen for 13:45 minutes. This means that a total of 19,800 frames (i.e. single images) had to be rendered. In this figure, the calculation of a single frame took about 48 hours, which in turn means a total of 950,400 calculation hours for all frames together. That would be the equivalent of 39,600 days or over 600 years for a single computer processor. No wonder, then, that the executing VFX studio Weta Digital increased the already enormous technical equipment of around 2,250 processor cores by another 500 while production was still running. In the end, with this concentrated computing power, rendering “Treebeard” alone should have taken about 14 days. But the long version of the film lasts almost four hours and consists of a lot of animated content. It's hard to imagine how long it must have taken to render the entire movie. And mind you, this does not even include the artistic work, only the calculation is finished images. 60 Million rendering hours for the Disney film "Frozen" But whoever thinks that rendering will be accelerated by technological developments is only partially correct. Because the developing technological possibilities naturally also improve the quality of the projects. The production team of the world-famous Disney animation film "Frozen" from 2013 cope with a total of 60 million rendering hours. And although the Walt Disney Animation Studios had increased the number of processor cores from 5,300 to 30,000 within two years and thus had one of the world's largest data centres, rendering the entire film still took over 83 days with all the computing power 24 hours without a break. But Disney doesn't just work on one project, so it probably took longer. And another small comparison: Incidentally, a single supercomputer from this time would have taken more than 900 years to render the film ... These are of course examples from professional productions with the highest standards. And of course, for you and your studio, how to accelerate the rendering speed? The best cloud rendering service provider, Fox Renderfarm with enormous computing power worth choosing. Fox Renderfarm was founded in 2011 and is now the largest provider in this area in Asia. In a so-called “[render farm]( "render farm")”, many physical servers and thus computer processors are combined to form a gigantic “supercomputer”. At Fox Renderfarm, for example, there are currently over 20,000 physical servers that are currently used for rendering by over 1.5 million end-users from over 50 countries. In total, Fox Renderfarm "renders" 1 petabyte of finished graphics results per month for its customers, which corresponds to one million gigabytes. Join and try $25 free trial now!
More
2021-04-08
FGT Art 2021 January Winner Announced
FGT Art 2021 January Winner Announced
Let us introduce you to the first FGT Art of the Month 2021: Eternity (一笑一尘缘,一念一清静。)! This amazing artwork, Eternity (一笑一尘缘,一念一清静。), is created by our friend Kay John Yim, an excellent Chartered Architect based in London. The artwork also has a beautiful caption: To see a World in a Grain of Sand And a Heaven in a Wild Flower, Hold Infinity in the palm of your hand And Eternity in an hour. Who’s our next FGT Art winner? Shine your talent and win great prizes! Hit the link and know more
More
2021-02-02
3ds Max Tutorials: The Production and Sharing of "Sci-Fi Guns"(3)
3ds Max Tutorials: The Production and Sharing of "Sci-Fi Guns"(3)
The best render farm, Fox Renderfarm still shares with you the production of the work "Sci-Fi Guns" which made with software 3ds Max and Substance Painter 2019 from 3d artist Zikai Wu. And this is part three of the sharing. Texturing Next, start the texture production. First, divide the whole into several large layers, and then create a selection area based on the id map made before. First, create a layer group and add a color selection mask. Then make the texture of each part in each layer group. When making textures, my production process is to pave the color first, and then add details. First, give a basic color, then copy the layer to make the darker part, add Dirt generator to this layer, if the effect does not meet your requirements, you can modify the generator parameters and add a brush tool to draw the part you want The effect can be. I usually add the Edge generator to the bright edges to increase the volume and make the overall effect clear. For example, small white particles on part of the surface: first create a new filling layer, add a black mask to the layer, add a filling layer to the mask, then find the picture you want in the grayscale material library and drop it on top, modify the parameters to Control the particle effect. After the texture is finished, I will create a new layer on the top and add sharpening to enhance the clarity of the details. For the gun, I used some glow textures and halo effects. These halos used some basic layers, and then used a mask to draw the shape, leaving only the Emiss self-illumination, and then changed it to blue. Then duplicate this layer, and add a Blur filter on the mask, modify the blur intensity to achieve the halo effect. Other parts of the texture also use this method, and the texture is exported after production. When exporting textures, you need to pay attention to texture size, texture location, channel, and format. Rendering After the texture is produced and exported, it enters the rendering stage. We also need to export the environment map used in Substance Painter to MarmosetToolbag 3 for use. Import the low polygon and add the MarmosetToolbag 3 shader, paste the exported texture according to the channel, pay attention to the name of each channel. You need to flip the Y-axis on the normal channel, just click it. Because this also has an emissive map, you need to open the emissive channel in MarmosetToolbag 3. After the texture is the lighting, the lighting method: one main light source (warmer), one or two auxiliary lights. (Colder). The main light source is located 45 degrees above the front, and the auxiliary light is located on the side and back, which is mainly used to illuminate the dark parts and express silhouette contours. After all the settings are adjusted, you can render. Below is the final rendering effect: The above is the whole process of making this gun. In production, I keep trying to learn and find the most suitable way. I hope this tutorial can be of some help to you.
More
2021-01-19
Fackbook Customer ReviewsFoxrenderfarm

Powerful Render Farm Service

    Business Consulting

    Global Agent Contact:Gordon Shaw

    Email: gordon@foxrenderfarm.com

    Marketing Contact: Rachel Chen

    Email: rachel@foxrenderfarm.com