OpenCL学习,并简要与CUDA对比 | 您所在的位置:网站首页 › opencl和cuda是什么意思 › OpenCL学习,并简要与CUDA对比 |
一、概述
当单核处理器因为功耗和指令级并行的问题导致其性能达到瓶颈,为了提供更高性能的处理器,多核和向量化的处理器开始发展。想要充分利用多核和向量化的计算能力,必须要写向量化和多线程的代码。C语言程序扩展——CUDA、OpenCL通过层次化的线程/编程模型是的一份代码同时支持向量化和多核。目前它们已经被应用于GPU的异构计算中,其中OpenCL还支持X86 CPU、ARM和部分移动端的处理器。
CUDA由NVIDIA推出,成为计算统一设备架构(Computing Unified Device Architecture)。CUDA由NVIDIA一家设计,未被Intel和AMD接受,所以CUDA目前只支持NVIDIA GPU。
OpenCL称为Open Computing Language,由Apple提出,是异构平台并行编程的开放的标准,也是一个编程框架。OpenCL包含两个部分,OpenCL C语言和主机端API、硬件架构的抽象。相比与CUDA,OpenCL的优点在于可以提供一种能在不同平台移植的编程方式。
二、什么是OpenCL
OpenCL是异构并行计算程序的工业标准,其异构并行计算框架可以划分为平台模型、存储器模型、执行模型和编程模型。 1.平台模型 关于OpenCL对硬件的抽象。OpenCL的设备平台包含一个主机以及一个或多个OpenCL设备,每个OpenCL设备包含一个或多个计算单元,每个计算单元包含一个或多个处理单元。主机与OpenCL设备之间的信息传输主要通过PCIe总线。 2.执行模型主机端程序运行在主机处理器上,主机端程序一命令 |
CopyRight 2018-2019 实验室设备网 版权所有 |