CUDA
CUDA(Compute Unified Device Architecture)是由NVIDIA推出的通用并行计算架构,提供了直接访问GPU虚拟指令集和并行计算单元的软件层。
它可以配合使用C、C++和Fortran等高级编程语言进行GPU应用程序的开发,并且兼容多种操作系统。
CUDA仅可以应用于NVIDIA的GPU硬件平台。
CUDA SDK包含针对NVIDIA GPU的编译器,数学库和调试优化工具。
CUDA的处理流程如下:
- 从主存储器中拷贝数据到GPU的存储空间。
- CPU发送控制指令指挥GUP运作。
- GPU的各个核开始并行运算。
- 从GUP存储空间拷贝运算结果到主存储器。
OpenCL
OpenCL(Open Computing Language,开放计算语言)是面向由CPU、GPU和其它处理器(如DSPs、FPGAs、ASICs)组合构成的计算机进行编程的行业标准框架。
OpenCL是由用于编写kernels(在OpenCL设备上运行的函数)的语言(基于C99)和一组用于定义并控制平台的API组成,提供了基于任务分区和数据分区的并行计算机制。
详细内容请参见“【20小时系列 - 学会OpenCL - 01】初识OpenCL https://blog.youkuaiyun.com/jiang