欢迎访问深圳市中小企业公共服务平台电子信息窗口
科技巨头“组局”对抗英伟达,CUDA平台为何这么强?
2024-04-12 来源:贤集网
1131

关键词: AMD 英伟达 芯片

Nvidia 之所以如此成功,要归功于一套名为CUDA的强大专有软件,它使人工智能科学家能够访问 GPU 中的所有硬件功能。英特尔正在与包括谷歌在内的其他芯片和软件巨头合作,构建非专有的开放软件,使软件公司能够轻松更换芯片提供商。


科技巨头组局,对抗英伟达

据报道,由英特尔、谷歌、Arm、高通、三星和其他科技公司组成的一个组织正在开发一个开源软件生态系统,以防止人工智能开发人员被“套牢”在英伟达的专有技术中。



这个联合项目名为UXL,旨在创建一个开放源代码的人工智能硬软件生态系统,将允许开发人员的代码在任何硬件上和任何芯片上运行。该项目将在今年上半年确定技术规格,并且其技术细节应该会在今年下半年达到“成熟”状态,不过UXL尚未给出最终发布的目标。

据悉,该项目将包含由英特尔开发的OneAPI开放标准,该标准旨在消除将开发人员捆绑在特定架构上的特定编码语言、代码库和其他工具等门槛。

高通人工智能和机器学习负责人Vinesh Sukumar在接受采访时表示,“我们实际上是在向开发人员展示如何从英伟达平台迁移出去,提供多元化的运算平台。”

谷歌高性能计算总监兼首席技术专家Bill Magro认为,“这是关于在机器学习框架的背景下,我们如何创建一个开放的生态系统,促进生产力和硬件选择。”

UXL表示,虽然该项目最初的目标是为人工智能应用和高性能计算应用提供更多选择,为其平台赢得大量开发者,但从长远来看,UXL的最终目标是支持英伟达的硬件和代码。

当被问及开源和风险投资软件正努力打破英伟达在人工智能领域的主导地位时,英伟达高管Ian Buck在一份声明中回应道,“世界正在加速发展。加速计算的新想法来自整个生态系统,这将有助于推进人工智能和加速计算所能实现的范围。”

对此,金融和战略咨询公司D2D Advisory的首席执行官Jay Goldberg指出,英伟达在AI领域的软硬件地位目前来看很难撼动,“重要的是,人们已经使用CUDA 15年了,他们围绕CUDA编写代码、优化工作。”


CUDA到底是什么?

CUDA,全称Compute Unified Device Architecture(统一计算设备架构),是由NVIDIA开发的一种技术,让我们能够利用显卡(也就是GPU)来进行大规模的计算。通常,GPU是用来处理电脑游戏中的图形和影像的,但CUDA让它能够做更多,比如科学计算、深度学习等。



核心技术与特点

1. 并行计算模型


CUDA基于单指令多数据流(SIMD)和多线程并行处理架构,允许程序员定义并行执行的“线程块”(thread blocks),每个线程块又包含多个线程。这些线程在GPU的流处理器(Streaming Multiprocessors, SMs)上并行执行,从而实现大规模并发计算。


2. 虚拟指令集与编程接口

CUDA提供了直接访问GPU虚拟指令集的途径,以及一组高级编程接口(Application Programming Interface, API),如cudaMalloc()、cudaMemcpy()、cudaLaunchKernel()等,使得开发者可以便捷地管理GPU内存、执行数据传输以及启动并行计算内核(kernel)。


3. 编译器与编程语言支持

CUDA配备了一个C/C++编译器,允许程序员使用扩展后的C/C++语法编写GPU代码(通常称为CUDA C/C++)。此外,CUDA还支持其他编程语言,如Fortran、Python、Java等,通过相应的语言绑定或接口实现对GPU的编程。


4. 库与工具链

CUDA附带一系列丰富的库,如 cuBLAS(基础线性代数子程序库)、cuDNN(深度神经网络库)、cuFFT(快速傅里叶变换库)等,封装了针对特定计算任务优化的算法,极大地简化了开发过程。完整的CUDA工具链还包括性能分析工具(如nvprof/nvvp)、调试器(Nsight Systems/Debugger)以及样例代码和教程,为开发者提供了全面的支持环境。


CUDA有哪些作用?

科学研究:在物理、化学、生物等领域,CUDA能够加速复杂的模拟和计算过程。比如,模拟宇宙的起源、分析大量的基因序列等。

深度学习:深度学习需要处理大量的数据和复杂的计算。使用CUDA,训练神经网络的时间可以从几周缩短到几小时。

图像处理:从电影的特效制作到医学图像的分析,CUDA能够加速图像处理的过程,让复杂的图像分析变得更加快速和准确。

金融分析:在金融领域,CUDA被用来加速风险分析、市场模拟等计算密集型任务,帮助分析师更快地做出决策等等。



CUDA的优势

高效的并行计算能力:CUDA能够让成千上万的GPU核心同时工作,大幅提高计算速度。

广泛的应用场景:从科学研究到商业分析,CUDA的应用几乎遍及所有需要大量计算的领域。

强大的生态支持:NVIDIA提供了丰富的文档、教程和工具,让开发者更容易地开发基于CUDA的应用。


护城河难跨

CUDA之所以能成为英伟达的护城河,正是因为其庞大的GPU软件计算生态。

你可以把他理解成GPU的Windows系统,虽然有Linux这样的替代品,但因为多年以来构成起来的生态以及用户粘性,很少会有科技企业会放弃这个编程语言从头训练AI产品。

从本质上讲,是否使用CUDA,还是取决于任务的需求。对于较小的AI设备的话,工程师确实可以使用其他开发工具替代CUDA。

但涉及到大公司的企业级任务,包括AI大模型、自动驾驶模型,CUDA凭借自身出色的速度以及可扩展性,始终是大公司的首选解决方案。

长期来看,虽然其他厂商也会推荐新的AI芯片以及非CUDA标准,但想要完全取代英伟达芯片并不现实。

另外,英伟达自身也意识到CUDA的地位可能在下滑。因此在今年GTC大会之前,开始禁止第三方硬件兼容CUDA。

在过去,英特尔、AMD等公司会参与ZLUDA这样的第三方项目,国产厂商也有类似的兼容方案,这些非英伟达GPU可以直接兼容CUDA接口,从而直接运行CUDA 程序。

但现在来看,英伟达希望再度加固CUDA系统的垄断,客户要么重新选一个生态系统,要么继续使用英伟达的产品。

虽然竞争对手们一直在“炮轰”英伟达的 CUDA,不少人都认为开源软件开发框架会比CUDA更高效地使用。

但奈何英特尔、AMD等芯片厂商在硬件层面都很难追上英伟达,更不要说带着第三方开发者们放弃目前最好用的AI训练生态。

我们可以说UXL基金会的愿景很好,但想要取代CUDA,现在看起来似乎还挺遥远的。