In addition to the CPU (central processing unit), another important component of the System On a Chip (SoC) is the Graphical Processing Unit (GPU), commonly known as the GPU. Everyone may know that playing 3D games is indispensable, but it may not be clear what role it will play. This time we will unveil the mystery of the GPU.
The GPU is designed to quickly perform certain types of mathematical operations, especially for floating-point, vector, and matrix calculations. It converts information from 3D models to 2D representations, while adding different textures and shadow effects, so the GPU is in hardware. It is also a special existence.
The 3D model consists of many small triangles defining the vertices of each triangle through the X, Y, and Z coordinates. In actual processing, the vertices of the small triangles will coincide with each other. If a complex model consists of 500 small triangles, the number of vertices that need to be defined finally does not have as many as 1,500. To present an abstract 3D model, three elements are indispensable: displacement, rotation (three axes), and scaling, all of which are collectively referred to as transformation. The best way to handle transformations is to use 4x4 matrices in order not to fall into complicated and complex mathematical operations.
From 3D modeling to the final display on the screen, the GPU renders the scene using pipelining. Earlier the pipeline operation was fixed and no changes were made. The entire operation started by reading the vertex data of the triangle. After the GPU processed it, it entered the frame buffer and was ready to send it to the monitor. The GPU can also perform certain special effects on the scene, but these are all fixed by engineers and offer few options.
While Android is still in its infancy, desktop-grade GPUs can begin to program pipelined operations. With the introduction of the OpenGL ES 2.0 standard, mobile GPUs are also beginning to support programmable operations. These programmable sections are called shaders. The most important shaders are vertex shaders and Fragment shader. The vertex shader is called once for each vertex, so the vertex shader needs to be called three times when rendering a triangle, and the fragment shader, we can simply think of each fragment as every pixel on the screen. So each pixel fragment shader is called once.
The two shaders serve different roles. The vertex shader is mainly responsible for transforming the 3D model's data into real-world locations and texture maps or light sources, and then transforming. The fragment shader is used to set each pixel. Related colors. A simple explanation: The vertex shader handles vertex-related information. The fragment shader handles the color information of the screen.
Carefully observe that you will notice that the processing of each vertex is independent of each other, as is the processing of each fragment, which means that the GPU can run the shader in parallel. In fact, the GPU does this, and most mobile GPUs do. There are multiple shader cores (a separate unit of programmable execution shader functionality called the shader core), and GPU vendors claim that marketing for shader calls is better than home.
Take ARM's Mali GPU as an example. The x in MPx of the GPU name suffix of the series represents the number of shader cores, and the Mali T880 MP12 represents 12 shader cores. Each core has a complicated pipeline, which means that each time a shader operation is completed, a new operation instruction will be issued immediately. At the same time, there is more than one arithmetic unit in the core, so multiple operations can be completed in the same time. ARM Mali GPUs (including the Mali T600, T700, and T800 series) can issue one instruction per clock cycle in each pipeline, so a typical shader core can issue 4 instructions in parallel, and the Mali GPU currently supports up to 16 cores. This means that up to 64 instructions can be issued in parallel.
All of this means that the GPU is a way of working with large amounts of data in parallel, very different from the CPU, not the usual sequential operation. But this is only a minor issue, and the serious fact is that the programmable shader core represents that each core's actual performance is no longer set by the GPU engineer, but depends on the app developer. Then a poor quality shader code can make the GPU's performance drop straight. Fortunately, most 3D game developers understand this and will optimize the shader operation.
Graphic translation is compiled from Android Authority because of the limited level of translators.
Lynx Box M13
Installation Guide>>Huawei Glory Box Pro
Installation Guide>>Millet box 3
Installation Guide>>Infinik i9
Installation Guide>>KKTV
Installation Guide>>Letv TV S50 Air
Installation Guide>>Incremental Encoder is commonly used, and Absolute Encoder is used if there are strict requirements on position and zero position. Servo system should be analyzed in detail, depending on the application situation. Commonly used incremental encoder for speed measurement, which can be used for infinite accumulation measurement; Absolute encoder is used for position measurement, and the position is unique (single or multiple turns). Finally, it depends on the application situation and the purpose and requirements to be realized.
Incremental Linear Encoders,Linear Optical Encoder,Linear Position Encoder,Encoder Bearing Tester
Yuheng Optics Co., Ltd.(Changchun) , https://www.yhenoptics.com