标签云
10GE/25GE交换机 既可满足政府 机构及党政部门系统的需求 企业级全闪存储阵列 128口万兆交换机 台式工作站 楼道交换机 以太网交换机 适用于对信息安全要求较高的处理型需求 26口交换机 下一代防火墙 存储操作系统 VPN路由器 5RU网关 敏捷交换机 数据库一体机服务器 视频解码服务器 16RU路由器 高性能服务器 双路服务器 8卡GPU服务器 千百兆组合交换机 12口工业交换机 双路刀片服务器 2UR路由器 1U路由器 2U双路服务器 企业级服务器 6U双路服务器 高性能防火墙 安全易用交换机 网管交换机 高温服务器 1U双路机架服务器 48口万兆交换机 也可轻松应对各种商用办公环境。 导轨交换机 AI处理器 多节点服务器 混合闪存存储系统 入门级全闪存存储系统 监控交换机 poe千兆交换机 42口万兆交换机 兼容全国产系列软件 虚拟化交换机 T级防火墙 3090 应用防火墙 24口千兆交换机 二层工业交换机 企业存储 26口安防交换机 9口千兆交换机 3U机架服务器 八路服务器 远程管理交换机 安全交换机 智能路由器 分布式虚拟交换机 IT核心业务
GPU是什么,或者大家或许还不清楚,但基本上都与它有过接触,比如玩 3D 游戏少不了GPU的运算,但具体发挥什么作用也许说不清楚,林海天成科技就来揭开 GPU 的神秘面纱。
GPU 专门用于快速完成一些特定类型的数学运算,特别是对于浮点、矢量和矩阵的计算,能将 3D 模型的信息转换为 2D 表示,同时添加不同的纹理和阴影效果,所以 GPU 在硬件里也是比较特殊的存在。
目前GPU已经不再局限于3D图形处理了,GPU通用计算技术发展已经引起业界不少的关注,事实也证明在浮点运算、并行计算等部分计算方面,GPU可以提供数十倍乃至于上百倍于CPU的性能。
3D 模型是由许许多多小三角形组成的,通过 X、Y、Z 坐标定义每个三角形的顶点。实际处理中,小三角形的顶点会相互重合,如果一个复杂的模型由 500 个小三角形组成,最后需要定义的顶点数并没有 1500 个那么多。而要将一个抽象的 3D 模型展现出来,三种要素不可缺少:位移、旋转(三轴)和缩放,所有这些操作统称为转换(transformation)。为了不陷入复杂繁琐的数学运算,处理转换(transformation)最佳的方式就是运用 4x4 的矩阵。
从 3D 建模到最终显示在屏幕上,GPU 渲染场景使用的是流水线操作。早些时候流水线操作是固定不能作任何改动的,整个操作由读取三角形的顶点数据开始,接着 GPU 处理完后进入帧缓冲区(frame buffer),准备发送给显示器。GPU 也能对场景进行某些特定效果的处理,不过这些都是由工程师设计固定好的,能提供的选项很少。
可编程着色器(Programmable shaders)
在 Android 仍在萌芽之时,桌面级的 GPU 就开始可以对流水线部分的操作进行编程。随着 OpenGL ES 2.0 标准的推出,移动版的 GPU 也开始支持可编程操作,这些可编程的部分被称作着色器(shaders),最重要的两个着色器是顶点着色器(vertex shader)和片段着色器(fragment shader)。每个顶点都会调用一次顶点着色器,所以在渲染一个三角形时顶点着色器需要被调用三次;而片段着色器,我们可以简单的将每个片段(fragment)想象成屏幕上的每一个像素点,因此每生成一个像素片段着色器就被会调用一次。
两个着色器充当不同的角色,顶点着色器主要负责将 3D 模型的数据转化为现实世界中的位置以及纹理贴图或者光源,再进行转换(transformation);片段着色器则用于为每个像素设置相关的颜色。简单一点的说明:顶点着色器就是处理顶点相关的信息,片段着色器就是处理画面的颜色信息。
仔细观察你会注意到每个顶点的处理都是相互独立的,同样每个片段的处理也是如此,这意味着 GPU 能够并行运行着色器,事实上 GPU 也是这么干的,绝大多数的移动 GPU 都有多个着色器核心(可编程执行着色器功能的独立单元称之为着色器核心),至于 GPU 厂商宣称对于着色器调用优于别家则属于市场营销的问题了。
以 ARM 的 Mali GPU 为例,其系列 GPU 名称后缀的“MPx”中的 x 代表有多少个着色器核心,Mali T880 MP12 就代表有 12 个着色器核心。每一个核心里面都有一条复杂的流水线,代表着每完成一个着色器操作,新的操作指令就会立刻发出,同时核心里面不止一个算术单元,所以在相同的时间内能完成多个操作。ARM Mali GPU(包括 Mali T600、T700 和 T800 系列)能在每一条流水线每个时钟周期发出一条指令,所以一个典型的着色器核心能并行发出 4 条指令,Mali GPU 目前最高支持 16 个核心,也就是说可以并行发出最多 64 条指令。
所有的一切意味着 GPU 是并行处理大量数据的工作方式,与 CPU 非常不同,不是一般的顺序操作。但这只是一个小问题,严峻的事实在于可编程的着色器核心代表着每个核心的实际表现不再由 GPU 工程师设定好,而是取决于 app 开发者。于是一个质量较差的着色器代码能让 GPU 的表现直线下降,幸运的是大多数的 3D 游戏开发者都明白这个道理,会为着色器运行做最佳的优化。
目前GPU已经不再局限于3D图形处理了,GPU通用计算技术发展已经引起业界不少的关注,事实也证明在浮点运算、并行计算等部分计算方面,GPU可以提供数十倍乃至于上百倍于CPU的性能,联系电话
微信扫一扫