您好,欢迎访问比特财经网!
热门搜索: BTC ETH EOS BCH
您当前位置:首页 > 商学院 > 入门

科普入门 | OpenCL和CUDA是干啥的?

2019-01-31 10:02 信息来源 : 比特财经网
在各类挖矿内核的更新通知中,我们经常可以看到某某内核支持了某型号显卡 X.XX 版本 CUDA ,某某内核又支持了某型号显卡 X.XX  版本 OpenCL 之类的消息。
 

很多矿友一头雾水,挖了这么久的矿,我咋不知道我的显卡还有这些功能呢?
 

其实没什么好奇怪的,OpenCL 和 CUDA 都是用于提升硬件运算能力的计算体系架构,它们一般被集成在硬件驱动里。
 

体系架构,通俗来说就是编程系统,它们为具有一定编程能力的用户提供抽象硬件接口(API)。
 

各行各业的程序员们可以通过编程系统内置的计算机语言输入界面来编程,开发人员通过 OpenCL 和 CUDA 编写出了各种提升硬件性能的软件(例如挖矿内核就调用了 CUDA 程序)。
 

 

也就是说,没有编程基础的普通用户很少会接触到这些东西,没印象也不奇怪。但如果用户本身是资深码农,那就厉害了。
 

只要操作得当,经过编程优化后的显卡等硬件将可以按照用户需求,在处理某些工作时获得加速,或多或少地提升工作效率。
 

CUDA 和 OpenCL 区别
 

那么 CUDA 和 OpenCL有什么区别呢? 
 

CUDA 是 Compute Unified Device Architecture 的缩写,意思是通用计算机模型,它诞生于2006年,是一种 N 卡特有的计算体系架构。
 

经过多年发展,现在的 CUDA 可支持 C 、C++ 、Java 、Python 等各类编程语言,它被广泛地运用于图形制作、科学计算、医学等领域。因为开发环境友好,从事 N 卡计算能力优化工作的程序员绝大多数都是用的 CUDA 。
 

 

OpenCL 即 Open Computing Language ,开放运算语言,由科技行业龙头苹果公司于 2008 年发布。
 

OpenCL 是首个开放式、兼容以及免费的并行开发标准,它的目的是为异构系统提供通用的统一开发平台。
 

因此,OpenCL 不仅可以在各个品牌的显卡上使用,还支持 CPU 、Cell、FPGA 、以及  DSP(数字信号处理器)等其他类型的处理器。
 

虽然 N 卡和 A 卡都支持 OpenCL ,甚至在自身编程系统中都使用了 OpenCL  编程规范。
 

但可能是没有专精于显卡领域的原因,在 N 卡性能优化方面,OpenCL 的易用性和最终提升效果都不如 N 卡专用的 CUDA。
 

N 卡用户是少了点,但是 OpenCL 在处理器的整体市场占有率还是很高的,毕竟别的硬件还需要 OpenCL 来开发它们的潜力啊。 
 

虽然 18 年 6 月份苹果公司传出消息将在自己的 MacOS 系统中逐渐淘汰  OpenCL 技术,但Khronos Group 技术团队依然还在坚持 OpenCL 的更新。
 

 

说了 N 卡,就不得不提一下它的死对头 A 卡了,其实 A 卡也有自己的计算体系架构 Stream Acceleration (流加速),但是因为对各类新技术支持不足,一直没有打造出自己的品牌效应。
 

目前 A 卡的计算能力优化程序还多是基于  OpenCL 开发的。
 

CUDA、OpenCL、Stream Acceleration 等计算体系架构不仅为显卡挖矿能力的提升做出了不小的贡献,基于这些技术开发出的各类软件也在别的行业中发光发热着,许多与计算机相关行业的工作效率提升都与这些架构有着密不可分的关系。
 

文字/魔路西
 

编辑/魔路西
 

图片/网络


比特币:www.btcmoney.cc

本文经授权发布,不代表比特财经网立场。如若转载请标注文章来源:比特财经网
分享到: