计算着色器(Compute Shader)
2018-02-28 22:39
1101 查看
图形处理器(Graphics Processing Unit,简称GPU)每秒能够进行数以亿次的计算,目前其已成为一种性能十分惊人的器件。通常,GPU主要用来承担实时图形渲染中的海量数学运算,然而,其潜在的计算能力也可用于处理与图形无关的任务。
CUDA与OpenCL早已能够基于GPU实现并行计算,而OpenGL与DirectX也分别于OpenGL4.3与DirectX11版本后能够通过计算着色器的方式基于GPU实现并行计算。从图中可以看到,计算着色器是独立与通常的渲染管线的。
CUDA:NVIDIA推出的通用并行计算架构,该架构能够使用GPU解决复杂的计算问题。
OpenCL:针对异构系统进行并行编程的一个全新API,能够利用GPU进行并行计算。
理解CPU与GPU之间区别的一种简单方式是比较他们是如果处理任务的:
- CPU 由专为顺序串行处理而优化的几个核心组成,其需要很强的通用性来处理各种不同的数据类型,除此之外逻辑判断会引入大量的分支跳转和中断处理,使得CPU的内部结构异常复杂。
- GPU 拥有一个由数以千计的更小、更高效的核心(专为同时处理多重任务而设计)组成的大规模并行计算架构。
其中,绿色是计算单元,橙红色是存储单元,橙黄色是控制单元。
GPU采用了数量众多的计算单元和超长的流水线,但只有非常简单的逻辑控制并省去了Cache;而CPU不仅被Cache占据了大量空间,还有很复杂的控制逻辑和诸多优化电路,相比之下计算能力只是GPU很小的一部分。
CUDA与OpenCL早已能够基于GPU实现并行计算,而OpenGL与DirectX也分别于OpenGL4.3与DirectX11版本后能够通过计算着色器的方式基于GPU实现并行计算。从图中可以看到,计算着色器是独立与通常的渲染管线的。
CUDA:NVIDIA推出的通用并行计算架构,该架构能够使用GPU解决复杂的计算问题。
OpenCL:针对异构系统进行并行编程的一个全新API,能够利用GPU进行并行计算。
1. CPU与GPU
前面提到了计算着色器能够基于GPU实现并行计算,从而提升计算能力,那么GPU到底独特在哪呢?为什么又比CPU的计算速度还要快?理解CPU与GPU之间区别的一种简单方式是比较他们是如果处理任务的:
- CPU 由专为顺序串行处理而优化的几个核心组成,其需要很强的通用性来处理各种不同的数据类型,除此之外逻辑判断会引入大量的分支跳转和中断处理,使得CPU的内部结构异常复杂。
- GPU 拥有一个由数以千计的更小、更高效的核心(专为同时处理多重任务而设计)组成的大规模并行计算架构。
其中,绿色是计算单元,橙红色是存储单元,橙黄色是控制单元。
GPU采用了数量众多的计算单元和超长的流水线,但只有非常简单的逻辑控制并省去了Cache;而CPU不仅被Cache占据了大量空间,还有很复杂的控制逻辑和诸多优化电路,相比之下计算能力只是GPU很小的一部分。
相关文章推荐
- OpenGL4.3新特性: 计算着色器 Compute Shader
- 使用计算着色器(Compute Shader)模拟粒子效果【OpenGL】【GLSL】
- Directx 计算着色器(compute shader)
- DirectCompute & DirectX 11 计算着色器编程简介
- 《OpenGL编程指南(原书第8版)》——计算着色器
- DirectX11 使用计算着色器实现高斯模糊
- OpenGL ES 同样的灯光计算在顶点着色器和在片元着色器中计算有什么不同
- 使用Compute Shader加速Irradiance Environment Map的计算
- glsl 计算着色器基础 一
- 海面模拟以及渲染(计算着色器、FFT、Reflection Matrix)
- 使用Compute Shader加速Irradiance Environment Map的计算
- DirectCompute & DirectX 11 计算着色器编程简介(翻译)
- nBodyCS<I>学习笔记之计算着色器
- (转载)(官方)UE4--图像编程----着色器开发----异步计算(AsyncCompute)
- DirectCompute & DirectX 11 计算着色器编程简介(翻译)
- 使用纯C语言通过Direct3D 11的Compute Shader做通用目的计算
- glsl应用 计算着色器 之 简单的图像写入
- glsl着色器 光照和纹理计算 (有用!)
- DirectCompute & DirectX 11 计算着色器编程简介
- 计算着色器