CUDA全名叫Compute Unified Device Architecture,说白了就是一套让程序员更好用英伟达GPU的编程工具。在讲CUDA之前,我得先说说什么是“编程模型”。其实很简单,就是给程序员定的一套规则,按着这套规则写程序,就能更高效地用硬件干活。不同的场景、不同的硬件条件、不同的任务环境下,不同的编程模型的效果是不同的。
我们来举个餐馆的例子来形象化解释不同的编程模型。如何运营一个餐馆就可以分成不同的模式。在传统餐馆中,运营模式通常是:服务员接单→交给后厨→厨师按顺序做菜→上菜。这就像程序里的顺序执行,一步一步来,很清晰,但当任务量大时,例如饭点高峰期,就容易因为某一步骤的延迟而导致整体效率下降。这种餐馆模式就像程序设计中的顺序编程模型。在顺序编程中,程序按照严格的步骤依次执行,上一任务完成后下一任务才能开始。这种方式逻辑直观、适合小规模的任务,但当面对大规模或高度复杂的任务时,效率会显得不足。
另外一种餐馆的模式叫做多厨房并行模式。在面对大型活动,例如音乐节、体育赛事、公司年会时,传统餐馆的模式显然不够用。这时,管理团队通常会采用多厨房并行模式。每个厨房负责处理订单中的某一部分,比如凉菜由厨房A负责,热菜由厨房B负责,甜点由厨房C负责。各个厨房彼此独立,可以同时处理订单的不同部分,最终将所有完成的菜品汇总到中央区域,再统一交给顾客。这种方法充分利用了多个厨房的并行性,在整体上显著缩短了服务时间。这种多厨房协同模式,就类似于程序设计中的并行编程模型。
英伟达的GPU硬件采用的就是这种并行编程模型。因为英伟达的GPU里有大量的流处理器(Streaming Processor, SP),每个都能独立工作,就像有很多个小厨房。而且GPU主要处理的是图像渲染、科学计算这些容易并行的任务。所以并行编程模型特别适合GPU,CUDA就是专门为这个设计的。CUDA不仅是一套编程规则,它还把复杂的底层操作给包装起来了。以前用GPU,程序员得自己管显存、调度线程,特别麻烦。有了CUDA,这些复杂的事情系统自动帮你搞定,你只需要专心想“我要做什么”,而不用操心“怎么做”。
做个类比。就像一台高端相机,硬件很牛,但要用好它,你得懂光圈、快门、ISO这些专业知识,知道各种专业参数怎么调,门槛太高。所以厂商搞了“智能场景模式”——比如运动模式、夜景模式等等,普通人一键就能拍出好照片。CUDA就是GPU的“智能场景模式”。它提供了丰富的工具,让开发者无需专门研究GPU架构,也能高效完成自己的编程任务。而且,CUDA支持流行的编程语言,例如C、C++、Python、MATLAB等,让科学家和工程师不用成为硬件专家,就能用上GPU的强大计算能力。
有个很形象的比方可以形容CUDA:理解CUDA的方式就是,你拥有一张视频游戏显卡,但它上面配备了一个开关,CUDA就是这个开关,你只需要轻拨一下,就可以实现你想要的功能。然而,CUDA虽然强大,但代价也是巨大的。G80是英伟达第一款支持CUDA的GPU。为了开发这款芯片,英伟达花了整整4年时间,成本高达4.75亿美元,占了那4年总研发预算的三分之一。要知道,以前每代GeForce芯片开发周期才1年。
这还只是“一个”支持CUDA的GPU。当时英伟达内部争论激烈:是不是所有GPU都要支持CUDA?最初的计划是只在高端科学和技术工作站显卡上支持CUDA,但黄仁勋坚持要在全产品线推广,包括游戏用的GeForce系列。黄仁勋告诉CUDA团队:“我们应该把这项技术推向所有领域,让它成为基础性技术。”因为他有一个想法:使用CUDA的人越多,这项技术成为标准的速度就越快,就越有可能找到新的应用。
这项决策虽然战略意义深远,但却在短期内带来了高昂的代价。为了让所有显卡支持CUDA,英伟达不得不承担巨大的成本压力。在2008至2010年间,英伟达的毛利率从45.6%降至35.4%。再加上2008年的全球金融危机,英伟达面临了巨大的商业冲击,其股价在短短一年多时间内暴跌了80%。
投资者们开始抱怨英伟达持续投资CUDA并无财务意义。有人批评说:“英伟达在这个新的芯片架构上投入了大量资金,耗费了数十亿美元,却瞄准了学术和科学计算这一偏门领域,而当时这并非一个大市场——远不及他们投入的数十亿美元。”
例如,当时英伟达费尽心思地寻找那些真正需要这种强大性能的用户。马萨诸塞州全科医院的研究人员曾致信英伟达,建议为他们的乳腺X光扫描仪进行升级。黄仁勋邀请这家医院参与CUDA的初步测试,在一个试点项目中投入了数百万美元,但最终仅售出两块显卡。更糟糕的是,CUDA软件下载量持续下滑,至2012年降至最低点,新安装量仅10万次出头。
2013年初,很多投资分析师认为,如果英伟达停止在CUDA上烧钱,股价才会涨,甚至有人开始质疑黄仁勋继续当CEO是否合适。
英伟达的显卡就像是一把锤子,原来是用来敲钉子。然而,英伟达并不满足自己的锤子只能敲钉子,他们希望这把锤子能够在更多领域发挥作用。为此,他们对这把锤子进行了全面改造,不仅让它的结构更加灵活,还为这个锤子开发了一套使用方法,帮助使用者更高效地操控这把锤子。
但是,他们拿着这把锤子到处向人推销,却发现没人对这把锤子感兴趣。直到有一天他们来到了一家门口,门牌上写着六个字:深度神经网络。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.