主要观点总结
本文主要介绍了DeepSeek团队在AI开发上的重大突破,他们通过针对英伟达GPU的类汇编级别PTX编程,实现了高性能的AI模型训练。该团队在短短两个月内在2,048个H800 GPU集群上训练出6710亿参数的MoE语言模型,效率比顶尖AI高出10倍。这项突破引发了行业内的广泛关注,对市场造成了显著冲击,引发了关于CUDA是否仍必要的讨论。
关键观点总结
关键观点1: DeepSeek团队的突破
DeepSeek团队通过大量细粒度优化和使用英伟达类汇编级别的PTX编程,在GPU性能上实现了极致发挥,训练出高效AI模型。
关键观点2: PTX编程的特点
PTX是英伟达GPU的一种中间指令集架构,位于高级GPU编程语言(如CUDA)和低级机器代码之间,能实现细粒度优化,如寄存器分配和线程调整。
关键观点3: CUDA与PTX的关系与挑战
虽然CUDA是主流的GPU编程语言,但DeepSeek通过PTX编程实现了更高级别的优化。然而,使用PTX编程的复杂性和维护难度较高,需要深厚的专业知识和经验。
关键观点4: 行业反响与影响
DeepSeek的突破引发了行业内的广泛关注,部分投资者认为新模型可能影响高性能硬件需求,但行业资深人士认为AI应用能充分利用计算能力。该突破也揭示了前沿LLM开发的新方向和技术潜力。
关键观点5: 推荐与编哥的经验分享
文章推荐DeepSeek的案例及相关技术细节,并分享了编哥作为资深程序员的经验和观点,鼓励读者根据自身情况选择是否深入学习PTX编程。
正文
【导读】DeepSeek模型开发竟绕过了CUDA?最新爆料称,DeepSeek团队走了一条不寻常的路——针对英伟达GPU低级汇编语言PTX进行优化实现最大性能。业界人士纷纷表示,CUDA护城河不存在了?
原本DeepSeek低成本训出的R1,就已经让整个硅谷和华尔街为之虎躯一震。而现在又曝出,打造这款超级AI,竟连CUDA也不需要了?根据外媒的报道,他们在短短两个月时间,在2,048个H800 GPU集群上,训出6710亿参数的MoE语言模型,比顶尖AI效率高出10倍。这项突破不是用CUDA实现的,而是通过大量细粒度优化以及使用英伟达的类汇编级别的PTX(并行线程执行)编程。这则消息一出,再次掀翻AI圈,网友对其策略纷纷表示震惊:「在这个世界上,如果有哪群人会疯狂到说出『CUDA太慢了!干脆直接写PTX吧!』这种话,绝对就是那些前量化交易员了。」还有人表示,如果DeepSeek开源了CUDA替代品,这将意味着什么?英伟达PTX(并行线程执行)是专门为其GPU设计的中间指令集架构,位于高级GPU编程语言(如CUDA C/C++或其他语言前端)和低级机器代码(流处理汇编或SASS)之间。PTX是一种接近底层的指令集架构,将GPU呈现为数据并行计算设备,因此能够实现寄存器分配、线程/线程束级别调整等细粒度优化,这些是CUDA C/C++等语言无法实现的。当PTX转换为SASS后,就会针对特定代的英伟达GPU进行优化。在训练V3模型时,DeepSeek对英伟达H800 GPU进行了重新配置:在132个流处理器多核中,划分出20个用于服务器间通信,主要用于数据压缩和解压缩,以突破处理器的连接限制、提升事务处理速度。
为了最大化性能,DeepSeek还通过额外的细粒度线程/线程束级别调整,实现了先进的流水线算法。这些优化远超常规CUDA开发水平,但维护难度极高。然而,这种级别的优化恰恰充分展现DeepSeek团队的卓越技术实力。
这是因为,在全球GPU短缺和美国限制的双重压力下,DeepSeek等公司不得不寻求创新解决方案。有开发者认为,「底层GPU编程才是正确的方向。优化得越多,就越能降低成本,或在不增加额外支出的情况下,提高可用于其他方面进步的性能预算」。这一突破对市场造成了显著冲击,部分投资者认为新模型对高性能硬件的需求将会降低,可能会影响英伟达等公司的销售业绩。然而,包括英特尔前掌门人Pat Gelsinger等在内的行业资深人士认为,AI应用能够充分利用一切可用的计算能力。对于DeepSeek的这一突破,Gelsinger将其视为在大众市场中,为各类低成本设备植入AI能力的新途径。
那么,DeepSeek的出现是否意味着前沿LLM的开发,不再需要大规模GPU集群?谷歌、OpenAI、Meta和xAI在计算资源上的巨额投资是否最终将付诸东流?AI开发者们的普遍共识并非如此。不过可以确定的是,在数据处理和算法优化方面仍有巨大潜力可以挖掘,未来必将涌现出更多创新的优化方法。随着DeepSeek的V3模型开源,其技术报告中详细披露了相关细节。该报告记录了DeepSeek进行的深度底层优化。简而言之,其优化程度可以概括为「他们从底层重新构建了整个系统」。如上所述,在使用H800 GPU训练V3时,DeepSeek对GPU核心计算单元(流处理器多核,简称SM)进行了定制化改造以满足特定需求。在全部132个SM中,他们专门划分出20个用于处理服务器间通信任务,而非计算任务。这种定制化工作是在PTX(并行线程执行)层面进行的,这是英伟达GPU的低级指令集。PTX运行在接近汇编语言的层面,能够实现寄存器分配和线程/线程束级别调整等细粒度优化。然而,这种精细的控制既复杂又难以维护。这也是为什么开发者通常会选择使用CUDA这类高级编程语言,因为它们能为大多数并行编程任务提供充分的性能优化,无需进行底层优化。但是,当需要将GPU资源效能发挥到极致并实现特殊优化需求时,开发者就不得不求助于PTX。虽然但是,技术壁垒依然还在
对此 ,网友Ian Cutress表示:「Deepseek对于PTX的使用,并不会消除CUDA的技术壁垒。」CUDA是一种高级语言。它使代码库的开发和与英伟达GPU的接口变得更简单,同时还支持快速迭代开发。CUDA可以通过微调底层代码(即PTX)来优化性能,而且基础库都已经完备。目前绝大多数生产级的软件都是基于CUDA构建的。PTX更类似于可以直接理解的GPU汇编语言。它工作在底层,允许进行微观层面的优化。如果选择使用PTX编程,就意味着上文提到的那些已经建好的CUDA库,都不能用了。这是一项极其繁琐的任务,需要对硬件和运行问题有深厚的专业知识。但如果开发者充分了解自己在做什么,确实可以在运行时获得更好的性能和优化效果。那些希望从计算负载中提升额外10-20%性能或功耗效率的开发者,比如在云端部署模型并销售token服务的企业,确实都已经将优化从CUDA层面深入到了PTX层面。他们愿意投入时间是因为,从长远来看这种投入是值得的。需要注意的是,PTX通常是针对特定硬件型号优化的,除非专门编写适配逻辑,否则很难在不同硬件间移植。除此之外,手动调优计算内核也需要极大的毅力、勇气,还得有保持冷静的特殊能力,因为程序可能每运行5000个周期就会出现一次内存访问错误。当然,对于确实需要使用PTX的场景,以及那些收到足够报酬来处理这些问题的开发者,我们表示充分的理解和尊重。至于其他开发者,继续使用CUDA或其他基于CUDA的高级变体(或MLIR)才是明智的选择。https://www.tomshardware.com/tech-industry/artificial-intelligence/deepseeks-ai-breakthrough-bypasses-industry-standard-cuda-uses-assembly-like-ptx-programming-insteadhttps://x.com/Jukanlosreve/status/1883304958432624881https://x.com/IanCutress/status/1884374138787357068您好啊!我是编哥,10年老码农。待过跨国公司,国内大厂,创业小厂,国企。受够了国企的恶心职场氛围,出来创业,现在是团队负责人。当了多年的职场老黄牛,也在毕业第二年就担任过项目负责人,创业后事务更杂乱。程序员各种坑都躺过来。如果您的程序员生涯、职场上有疑惑,可以添加编哥微信聊聊,老人的经验或许对你有启发:
加我请注明来源“公众号”,坑位有限,谢谢
如果觉得有帮助,可以点“在看”或转发
让更多小伙伴看见~ ღ( ´・ᴗ・` )