CUDA 是 NVIDIA 发明的一种并行计算平台。它通过利用图形处理器 (GPU) 的处理能力,可大幅提升计算性能,通过这个技术,用户可利用NVIDIA的GPU进行图像处理之外的运算。简单来说,程序员平时如果不使用特定框架都是针对CPU进行编程的。2006年,英伟达发布了CUDA,它提供了GPU编程的简易接口,程序员可以基于CUDA编译基于GPU的应用程序,利用GPU的并行计算能力更高效的解决复杂计算难题,其在GPU编程领域的革命性不亚于C、Python、PHP等高等编程语言的发明。现在主流的深度学习框架大多都基于CUDA进行GPU加速运算。从硬件角度看,英伟达会经常宣传自家显卡拥有的CUDA Core数量。CUDA Core其实就是英伟达的流处理器,从字面上就能看出该核心主要针对深度学习中的Tensor计算设计.
随着人工智能产业爆炸式增长,导致计算复杂化和算力不足,CPU并行计算能力远不如GPU,使得GPU在通用计算领域逐渐领先,为了进一步专注通用计算,GPGPU便应运而生。GPGPU与CUDA之间关系十分密切。GPGPU其实是去掉了图形显示功能的GPU,它将全部能力都投入到通用计算上,CUDA的出现让GPU真正实现更广泛的通用计算。CUDA与GPGPU也直接推动了AI与深度学习的发展与产业革命。
譬如笔者的这款英伟达2019年发布的GTX1660(已经是烂大街的产品了),内置CUDA核心1408,足以应付小型的参数量在千万级别的语音/图像等领域的深度学习训练任务.在同等规模模型训练场景下,比目前最先进的CPU要快上至少5倍以上.
根据目前笔者了解的情况,2023年英伟达发布的40系列GPU,CUDA核心已经接近一万.
当我们了解了CUDA是怎么回事,也就方便解释为什么国产GPU需要兼容CUDA。
国产GPU兼容CUDA可以同时继承英伟达打造好的软件生态以适配主流深度学习框架,也有更多资料可供学习,这对于蹒跚起步的国产GPU行业来说,减轻了不少开发难度,也降低了推广压力,可这实现起来绝非易事.
原因如下:
从开发角度分析,业内GPU工程师称目前GPU市场可以笼统的分成两大块,分别是计算和渲染。目前国内GPU厂商通常专注于计算方面即GPGPU的研发。
国内GPU厂商若无法做到与英伟达的架构、封装技术、驱动优化等都保持完全一致,CUDA生态就一定不会完美适配其GPU。
CUDA本身涵盖了多个技术领域,其后续更新都与英伟达自家GPU高度绑定,即使全部开源,第三方厂家也难以完美移植到自家GPU上。
此外,CUDA也并不是一成不变的。每进行一次GPU的迭代,CUDA架构就会发生很大变化。国产GPU如果完全基于CUDA生态进行开发,那它的硬件更新将完全绑定英伟达的开发进程,这样就会永远慢人一步.
不过业内开发者也不用悲观。因为CUDA本质是一个计算架构,它并不需要英伟达的完全授权。我们可以参考英伟达的有力竞争者AMD。AMD基于开源生态OpenCL开发,与CUDA相比,其开发函数甚至可以进行直接替换。国内GPU厂家或许可以参考AMD发展模式,前期借鉴可以是后期创新的基础。
写在最后
CUDA作为英伟达垄断GPU领域的关键力量,是国产厂商绕不过去的一道坎。CUDA在诞生之初,为人们在深度学习与AI领域立下汗马功劳,但如果它被用来钳制新力量的发展,CUDA也将成为英伟达的马奇诺防线。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。